Browse Source

Alerts when users are created

Shun Miyazawa 3 năm trước cách đây
mục cha
commit
56f8872b04

+ 1 - 0
packages/app/public/static/locales/en_US/translation.json

@@ -629,6 +629,7 @@
   "login": {
     "Sign in error": "Login error",
     "Registration successful": "Registration successful",
+    "wait_for_admin_approval": "Please wait for administrator approval",
     "Setup": "Setup",
     "enabled_ldap_has_configuration_problem":"LDAP is enabled but the configuration has something wrong.",
     "set_env_var_for_logs": "(Please set the environment variables <code>DEBUG=crowi:service:PassportService</code> to get the logs)"

+ 1 - 0
packages/app/public/static/locales/ja_JP/translation.json

@@ -623,6 +623,7 @@
   "login": {
     "Sign in error": "ログインエラー",
     "Registration successful": "登録完了",
+    "wait_for_admin_approval": "管理者の承認をお待ちください",
     "Setup": "セットアップ",
     "enabled_ldap_has_configuration_problem":"LDAPは有効ですが、設定に問題があります。",
     "set_env_var_for_logs": "(ログを取得するためには、環境変数 <code>DEBUG=crowi:service:PassportService</code> を設定してください。)"

+ 1 - 0
packages/app/public/static/locales/zh_CN/translation.json

@@ -631,6 +631,7 @@
 	"login": {
 		"Sign in error": "登录错误",
 		"Registration successful": "注册成功",
+    "wait_for_admin_approval": "请等待管理员批准",
 		"Setup": "安装程序",
     "enabled_ldap_has_configuration_problem":"启用了LDAP,但配置有问题。",
     "set_env_var_for_logs": "(请设置环境变量 <code>DEBUG=crowi:service:PassportService</code> 以获得日志。)"

+ 22 - 1
packages/app/src/components/LoginForm.tsx

@@ -53,6 +53,8 @@ export const LoginForm = (props: LoginFormProps): JSX.Element => {
   const [emailForRegistrationOrder, setEmailForRegistrationOrder] = useState('');
   const [isSuccessToSendRegistrationOrderEmail, setIsSuccessToSendRegistrationOrderEmail] = useState(false);
 
+  const [isSuccessToRagistration, setIsSuccessToRagistration] = useState(false);
+
 
   useEffect(() => {
     const { hash } = window.location;
@@ -283,6 +285,10 @@ export const LoginForm = (props: LoginFormProps): JSX.Element => {
         setEmailForRegistrationOrder(emailForRegister);
         setIsSuccessToSendRegistrationOrderEmail(true);
       }
+
+      if (registrationMode === 'Restricted') {
+        setIsSuccessToRagistration(true);
+      }
     }
     catch (err) {
       // Execute if error exists
@@ -291,7 +297,7 @@ export const LoginForm = (props: LoginFormProps): JSX.Element => {
       }
     }
     return;
-  }, [emailForRegister, nameForRegister, passwordForRegister, router, usernameForRegister, isEmailAuthenticationEnabled]);
+  }, [usernameForRegister, nameForRegister, emailForRegister, passwordForRegister, router, isEmailAuthenticationEnabled, registrationMode]);
 
   const resetRegisterErrors = useCallback(() => {
     if (registerErrors.length === 0) return;
@@ -478,6 +484,21 @@ export const LoginForm = (props: LoginFormProps): JSX.Element => {
     registerErrors, registrationMode, registrationWhiteList, emailForRegistrationOrder, switchForm, t,
   ]);
 
+  if (registrationMode === 'Restricted' && isSuccessToRagistration) {
+    return (
+      <div className="noLogin-dialog mx-auto" id="noLogin-dialog">
+        <div className="row mx-0">
+          <div className="col-12 mb-3 text-center">
+            <p className="alert alert-success">
+              <span>{t('login.Registration successful')}</span>
+            </p>
+            <span>{t('login.wait_for_admin_approval')}</span>
+          </div>
+        </div>
+      </div>
+    );
+  }
+
   return (
     <div className="noLogin-dialog mx-auto" id="noLogin-dialog">
       <div className="row mx-0">