|
|
@@ -1,5 +1,5 @@
|
|
|
import React, { useEffect, useState } from 'react';
|
|
|
-import { Button, Divider, Form, Grid, Header, Input, Message } from 'semantic-ui-react';
|
|
|
+import { Button, Divider, Form, Grid, Header, Modal, Message } from 'semantic-ui-react';
|
|
|
import { API, removeTrailingSlash, showError } from '../helpers';
|
|
|
|
|
|
const SystemSetting = () => {
|
|
|
@@ -33,6 +33,7 @@ const SystemSetting = () => {
|
|
|
let [loading, setLoading] = useState(false);
|
|
|
const [EmailDomainWhitelist, setEmailDomainWhitelist] = useState([]);
|
|
|
const [restrictedDomainInput, setRestrictedDomainInput] = useState('');
|
|
|
+ const [showPasswordWarningModal, setShowPasswordWarningModal] = useState(false);
|
|
|
|
|
|
const getOptions = async () => {
|
|
|
const res = await API.get('/api/option/');
|
|
|
@@ -95,6 +96,11 @@ const SystemSetting = () => {
|
|
|
};
|
|
|
|
|
|
const handleInputChange = async (e, { name, value }) => {
|
|
|
+ if (name === 'PasswordLoginEnabled' && inputs[name] === 'true') {
|
|
|
+ // block disabling password login
|
|
|
+ setShowPasswordWarningModal(true);
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (
|
|
|
name === 'Notice' ||
|
|
|
name.startsWith('SMTP') ||
|
|
|
@@ -243,6 +249,32 @@ const SystemSetting = () => {
|
|
|
name='PasswordLoginEnabled'
|
|
|
onChange={handleInputChange}
|
|
|
/>
|
|
|
+ {
|
|
|
+ showPasswordWarningModal &&
|
|
|
+ <Modal
|
|
|
+ open={showPasswordWarningModal}
|
|
|
+ onClose={() => setShowPasswordWarningModal(false)}
|
|
|
+ size={'tiny'}
|
|
|
+ style={{ maxWidth: '450px' }}
|
|
|
+ >
|
|
|
+ <Modal.Header>警告</Modal.Header>
|
|
|
+ <Modal.Content>
|
|
|
+ <p>取消密码登录将导致所有未绑定其他登录方式的用户(包括管理员)无法通过密码登录,确认取消?</p>
|
|
|
+ </Modal.Content>
|
|
|
+ <Modal.Actions>
|
|
|
+ <Button onClick={() => setShowPasswordWarningModal(false)}>取消</Button>
|
|
|
+ <Button
|
|
|
+ color='yellow'
|
|
|
+ onClick={async () => {
|
|
|
+ setShowPasswordWarningModal(false);
|
|
|
+ await updateOption('PasswordLoginEnabled', 'false');
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 确定
|
|
|
+ </Button>
|
|
|
+ </Modal.Actions>
|
|
|
+ </Modal>
|
|
|
+ }
|
|
|
<Form.Checkbox
|
|
|
checked={inputs.PasswordRegisterEnabled === 'true'}
|
|
|
label='允许通过密码进行注册'
|