diff --git a/tools/test-js-with-node b/tools/test-js-with-node index 45d899dcf3..0170616940 100755 --- a/tools/test-js-with-node +++ b/tools/test-js-with-node @@ -91,6 +91,7 @@ EXEMPT_FILES = make_set( "web/src/gear_menu.ts", "web/src/giphy.js", "web/src/global.d.ts", + "web/src/group_permission_settings.ts", "web/src/hash_util.js", "web/src/hashchange.js", "web/src/hbs.d.ts", diff --git a/web/src/group_permission_settings.ts b/web/src/group_permission_settings.ts new file mode 100644 index 0000000000..d92da7e47c --- /dev/null +++ b/web/src/group_permission_settings.ts @@ -0,0 +1,28 @@ +type GroupPermissionSetting = { + require_system_group: boolean; + allow_internet_group: boolean; + allow_owners_group: boolean; + allow_nobody_group: boolean; +}; + +const group_permission_config_dict: Map = new Map([ + [ + "can_remove_subscribers_group", + { + require_system_group: true, + allow_internet_group: false, + allow_owners_group: false, + allow_nobody_group: false, + }, + ], +]); + +export function get_group_permission_setting_config( + setting_name: string, +): GroupPermissionSetting | undefined { + const permission_config_dict = group_permission_config_dict.get(setting_name); + if (!permission_config_dict) { + throw new Error(`Invalid setting: ${setting_name}`); + } + return permission_config_dict; +}