settings: Add two realm settings to restrict direct messages.

Fixes #24467.
This commit is contained in:
Vector73
2024-07-08 22:30:08 +05:30
committed by Tim Abbott
parent 318d3e3cca
commit 6098c2cebe
45 changed files with 975 additions and 209 deletions

View File

@@ -3,6 +3,7 @@ import type {z} from "zod";
import * as blueslip from "./blueslip";
import {FoldDict} from "./fold_dict";
import * as group_permission_settings from "./group_permission_settings";
import {$t} from "./i18n";
import * as settings_config from "./settings_config";
import type {StateData, user_group_schema} from "./state_data";
import {current_user} from "./state_data";
@@ -225,6 +226,14 @@ export function is_user_in_group(user_group_id: number, user_id: number): boolea
return false;
}
function get_display_name_for_system_group_option(setting_name: string, name: string): string {
// We use a special label for the "Nobody" system group for clarity.
if (setting_name === "direct_message_permission_group" && name === "Nobody") {
return $t({defaultMessage: "Direct messages disabled"});
}
return name;
}
export function get_realm_user_groups_for_dropdown_list_widget(
setting_name: string,
setting_type: "realm" | "stream" | "group",
@@ -277,7 +286,7 @@ export function get_realm_user_groups_for_dropdown_list_widget(
throw new Error(`Unknown group name: ${group.name}`);
}
return {
name: group.display_name,
name: get_display_name_for_system_group_option(setting_name, group.display_name),
unique_id: user_group.id,
};
});