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