From 2e56139925dbaaa70556e8d46acb9c6268b071b3 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Tue, 27 Jun 2023 15:25:52 +0800 Subject: [PATCH] feat: add env `DISABLE_CREATE_GROUP` which can control user allow create group --- client/shared/model/config.ts | 5 ++++ client/shared/utils/consts.ts | 1 + .../web/src/routes/Main/Navbar/GroupNav.tsx | 24 ++++++++++++------- server/admin/src/client/i18n.ts | 2 ++ .../admin/src/client/routes/system/index.tsx | 4 ++++ .../packages/sdk/src/services/lib/settings.ts | 1 + server/services/core/config.service.ts | 1 + server/services/core/group/group.service.ts | 7 ++++++ website/docs/deployment/environment.md | 1 + .../current/deployment/environment.md | 1 + 10 files changed, 38 insertions(+), 9 deletions(-) diff --git a/client/shared/model/config.ts b/client/shared/model/config.ts index 80ae4981..60835dc0 100644 --- a/client/shared/model/config.ts +++ b/client/shared/model/config.ts @@ -35,6 +35,11 @@ export interface GlobalConfig { * 是否禁用游客登录 */ disableGuestLogin?: boolean; + + /** + * 是否禁用创建群组功能 + */ + disableCreateGroup?: boolean; } export function getGlobalConfig(): GlobalConfig { diff --git a/client/shared/utils/consts.ts b/client/shared/utils/consts.ts index 59048c44..50fa02ae 100644 --- a/client/shared/utils/consts.ts +++ b/client/shared/utils/consts.ts @@ -24,4 +24,5 @@ export const defaultGlobalConfig: GlobalConfig = { serverName: 'Tailchat', disableUserRegister: false, disableGuestLogin: false, + disableCreateGroup: false, }; diff --git a/client/web/src/routes/Main/Navbar/GroupNav.tsx b/client/web/src/routes/Main/Navbar/GroupNav.tsx index d4c6664c..b0c4382c 100644 --- a/client/web/src/routes/Main/Navbar/GroupNav.tsx +++ b/client/web/src/routes/Main/Navbar/GroupNav.tsx @@ -7,6 +7,7 @@ import { showSuccessToasts, t, useAppSelector, + useGlobalConfigStore, useGroupAck, } from 'tailchat-shared'; import { NavbarNavItem } from './NavItem'; @@ -75,6 +76,10 @@ export const GroupNav: React.FC = React.memo(() => { openModal(); }, []); + const { disableCreateGroup } = useGlobalConfigStore((state) => ({ + disableCreateGroup: state.disableCreateGroup, + })); + return (
{Array.isArray(groups) && @@ -84,15 +89,16 @@ export const GroupNav: React.FC = React.memo(() => {
))} - {/* 创建群组 */} - - - + {!disableCreateGroup && ( + + + + )} ); }); diff --git a/server/admin/src/client/i18n.ts b/server/admin/src/client/i18n.ts index 4b4e08a2..511ca452 100644 --- a/server/admin/src/client/i18n.ts +++ b/server/admin/src/client/i18n.ts @@ -52,6 +52,7 @@ export const i18n: TushanContextProps['i18n'] = { emailVerification: 'Mandatory Email Verification', allowGuestLogin: 'Allow Guest Login', allowUserRegister: 'Allow User Register', + allowCreateGroup: 'Allow Create Group', serverName: 'Server Name', serverEntryImage: 'Server Entry Page Image', }, @@ -210,6 +211,7 @@ export const i18n: TushanContextProps['i18n'] = { emailVerification: '邮箱强制验证', allowGuestLogin: '允许访客登录', allowUserRegister: '允许用户注册', + allowCreateGroup: '允许创建群组', serverName: '服务器名', serverEntryImage: '服务器登录图', }, diff --git a/server/admin/src/client/routes/system/index.tsx b/server/admin/src/client/routes/system/index.tsx index e0e7e3f8..5520d8ba 100644 --- a/server/admin/src/client/routes/system/index.tsx +++ b/server/admin/src/client/routes/system/index.tsx @@ -116,6 +116,10 @@ export const SystemConfig: React.FC = React.memo(() => { {!config.disableUserRegister ? : } + + {!config.disableCreateGroup ? : } + + Some examples of environment variables can be seen: https://github.com/msgbyte/tailchat/blob/master/server/.env.example diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deployment/environment.md b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deployment/environment.md index 57dc9fb0..207f25a3 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deployment/environment.md +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deployment/environment.md @@ -24,6 +24,7 @@ title: 环境变量 | DISABLE_LOGGER | - | 是否禁用日志输出, 如果为 "1" 或者 "true" 则在运行中关闭日志 | | DISABLE_USER_REGISTER | - | 是否关闭用户注册功能, 如果为 "1" 或者 "true" 则关闭该功能 | | DISABLE_GUEST_LOGIN | - | 是否关闭用户游客登录功能, 如果为 "1" 或者 "true" 则关闭该功能 | +| DISABLE_CREATE_GROUP | - | 是否关闭用户创建群组功能, 如果为 "1" 或者 "true" 则关闭该功能 | > 部分环境变量示例可见: https://github.com/msgbyte/tailchat/blob/master/server/.env.example