feat: improve MFA UI and jump URL (#2647)

* fix: mfa UI

* fix: mfa UI
This commit is contained in:
Yaodong Yu 2024-01-28 16:46:35 +08:00 committed by GitHub
parent 104f975a2f
commit 4e145f71b5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 12 deletions

View File

@ -901,11 +901,9 @@ class UserEditPage extends React.Component {
</Space>
{item.enabled ? (
<Space>
{item.enabled ?
<Tag icon={<CheckCircleOutlined />} color="success">
{i18next.t("general:Enabled")}
</Tag> : null
}
<Tag icon={<CheckCircleOutlined />} color="success">
{i18next.t("general:Enabled")}
</Tag>
{item.isPreferred ?
<Tag icon={<CheckCircleOutlined />} color="blue" style={{marginRight: 20}} >
{i18next.t("mfa:preferred")}
@ -927,18 +925,23 @@ class UserEditPage extends React.Component {
{i18next.t("mfa:Set preferred")}
</Button>
}
{this.isSelf() ? <Button type={"default"} onClick={() => {
this.props.history.push(`/mfa/setup?mfaType=${item.mfaType}`);
}}>
{i18next.t("general:Edit")}
</Button> : null}
</Space>
) :
<Space>
{item.mfaType !== TotpMfaType && Setting.isAdminUser(this.props.account) && window.location.href.indexOf("/users") !== -1 ?
{item.mfaType !== TotpMfaType && Setting.isLocalAdminUser(this.props.account) && !this.isSelf() ?
<EnableMfaModal user={this.state.user} mfaType={item.mfaType} onSuccess={() => {
this.getUser();
}} /> : null}
<Button type={"default"} onClick={() => {
{this.isSelf() ? <Button type={"default"} onClick={() => {
this.props.history.push(`/mfa/setup?mfaType=${item.mfaType}`);
}}>
{i18next.t("mfa:Setup")}
</Button>
</Button> : null}
</Space>}
</List.Item>
)}

View File

@ -98,7 +98,7 @@ class MfaSetupPage extends React.Component {
renderMfaTypeSwitch() {
const renderSmsLink = () => {
if (this.state.mfaType === SmsMfaType || this.props.account.mfaPhoneEnabled) {
if (this.state.mfaType === SmsMfaType) {
return null;
}
return (<Button type={"link"} onClick={() => {
@ -112,7 +112,7 @@ class MfaSetupPage extends React.Component {
};
const renderEmailLink = () => {
if (this.state.mfaType === EmailMfaType || this.props.account.mfaEmailEnabled) {
if (this.state.mfaType === EmailMfaType) {
return null;
}
return (<Button type={"link"} onClick={() => {
@ -126,7 +126,7 @@ class MfaSetupPage extends React.Component {
};
const renderTotpLink = () => {
if (this.state.mfaType === TotpMfaType || this.props.account.totpSecret !== "") {
if (this.state.mfaType === TotpMfaType) {
return null;
}
return (<Button type={"link"} onClick={() => {
@ -191,7 +191,9 @@ class MfaSetupPage extends React.Component {
onSuccess={() => {
Setting.showMessage("success", i18next.t("general:Enabled successfully"));
this.props.onfinish();
if (localStorage.getItem("mfaRedirectUrl") !== null) {
const mfaRedirectUrl = localStorage.getItem("mfaRedirectUrl");
if (mfaRedirectUrl !== undefined && mfaRedirectUrl !== null) {
Setting.goToLink(localStorage.getItem("mfaRedirectUrl"));
localStorage.removeItem("mfaRedirectUrl");
} else {