From 2aabd4cf47007010a416397d65b4d60ea866e2ea Mon Sep 17 00:00:00 2001 From: cameronvoell Date: Wed, 26 Jun 2024 16:10:08 -0700 Subject: [PATCH] feat: new update permission intent type --- proto/mls/database/intents.proto | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/proto/mls/database/intents.proto b/proto/mls/database/intents.proto index 95a3d6e..5dd0a8a 100644 --- a/proto/mls/database/intents.proto +++ b/proto/mls/database/intents.proto @@ -112,6 +112,40 @@ message UpdateAdminListsData { } } +// Type of Permission to Update +enum PermissionUpdateType { + PERMISSION_UPDATE_TYPE_UNSPECIFIED = 0; + PERMISSION_UPDATE_TYPE_ADD_MEMBER = 1; + PERMISSION_UPDATE_TYPE_REMOVE_MEMBER = 2; + PERMISSION_UPDATE_TYPE_ADD_ADMIN = 3; + PERMISSION_UPDATE_TYPE_REMOVE_ADMIN = 4; + PERMISSION_UPDATE_TYPE_UPDATE_METADATA = 5; +} + +// Permission Policy +enum PermissionPolicyOption { + PERMISSION_POLICY_OPTION_UNSPECIFIED = 0; + PERMISSION_POLICY_OPTION_ALLOW = 1; + PERMISSION_POLICY_OPTION_DENY = 2; + PERMISSION_POLICY_OPTION_ADMIN_ONLY = 3; + PERMISSION_POLICY_OPTION_SUPER_ADMIN_ONLY = 4; +} + +// The data required to update permissions +message UpdatePermissionData { + // V1 of UpdatePermissionData + message V1 { + PermissionUpdateType permission_update_type = 1; + PermissionPolicyOption permission_policy_option = 2; + // Metadata permissions update specify which field permission they are updating + optional string metadata_field_name = 3; + } + + oneof version { + V1 v1 = 1; + } +} + // Generic data-type for all post-commit actions message PostCommitAction { // An installation