mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-17 07:41:26 +00:00
update user info (#6352)
* update user role * update set user role * remove admin user role * Update user-info.js * Update user-info.js * Update user-info.js --------- Co-authored-by: 孙永强 <11704063+s-yongqiang@user.noreply.gitee.com> Co-authored-by: r350178982 <32759763+r350178982@users.noreply.github.com>
This commit is contained in:
@@ -11,8 +11,9 @@ import SysAdminSetUploadDownloadRateLimitDialog from '../../../components/dialog
|
|||||||
import SysAdminUpdateUserDialog from '../../../components/dialog/sysadmin-dialog/update-user';
|
import SysAdminUpdateUserDialog from '../../../components/dialog/sysadmin-dialog/update-user';
|
||||||
import MainPanelTopbar from '../main-panel-topbar';
|
import MainPanelTopbar from '../main-panel-topbar';
|
||||||
import Nav from './user-nav';
|
import Nav from './user-nav';
|
||||||
|
import Selector from '../../../components/single-selector';
|
||||||
|
|
||||||
const { twoFactorAuthEnabled } = window.sysadmin.pageOptions;
|
const { twoFactorAuthEnabled, availableRoles } = window.sysadmin.pageOptions;
|
||||||
|
|
||||||
class Content extends Component {
|
class Content extends Component {
|
||||||
|
|
||||||
@@ -24,7 +25,8 @@ class Content extends Component {
|
|||||||
isSetQuotaDialogOpen: false,
|
isSetQuotaDialogOpen: false,
|
||||||
isSetUserUploadRateLimitDialogOpen: false,
|
isSetUserUploadRateLimitDialogOpen: false,
|
||||||
isSetUserDownloadRateLimitDialogOpen: false,
|
isSetUserDownloadRateLimitDialogOpen: false,
|
||||||
isUpdateUserDialogOpen: false
|
isUpdateUserDialogOpen: false,
|
||||||
|
highlight: false
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,10 +75,6 @@ class Content extends Component {
|
|||||||
this.toggleDialog('contact_email', gettext('Set Contact Email'));
|
this.toggleDialog('contact_email', gettext('Set Contact Email'));
|
||||||
};
|
};
|
||||||
|
|
||||||
toggleSetUserReferenceIDDialog = () => {
|
|
||||||
this.toggleDialog('reference_id', gettext('Set Reference ID'));
|
|
||||||
};
|
|
||||||
|
|
||||||
updateValue = (value) => {
|
updateValue = (value) => {
|
||||||
this.props.updateUser(this.state.currentKey, value);
|
this.props.updateUser(this.state.currentKey, value);
|
||||||
};
|
};
|
||||||
@@ -97,6 +95,7 @@ class Content extends Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { loading, errorMsg } = this.props;
|
const { loading, errorMsg } = this.props;
|
||||||
|
const { highlight } = this.state;
|
||||||
if (loading) {
|
if (loading) {
|
||||||
return <Loading />;
|
return <Loading />;
|
||||||
} else if (errorMsg) {
|
} else if (errorMsg) {
|
||||||
@@ -144,10 +143,15 @@ class Content extends Component {
|
|||||||
{this.showEditIcon(this.toggleSetUserComtactEmailDialog)}
|
{this.showEditIcon(this.toggleSetUserComtactEmailDialog)}
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt className="info-item-heading">{gettext('Reference ID')}</dt>
|
<dt className="info-item-heading">{gettext('Role')}</dt>
|
||||||
<dd className="info-item-content">
|
<dd className="info-item-content">
|
||||||
{user.reference_id || '--'}
|
<Selector
|
||||||
{this.showEditIcon(this.toggleSetUserReferenceIDDialog)}
|
isDropdownToggleShown={highlight}
|
||||||
|
currentSelectedOption={this.props.currentSelectedRoleOption}
|
||||||
|
options={this.props.roleOptions}
|
||||||
|
selectOption={this.props.updateRole}
|
||||||
|
toggleItemFreezed={this.props.toggleItemFreezed}
|
||||||
|
/>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt className="info-item-heading">{gettext('Space Used / Quota')}</dt>
|
<dt className="info-item-heading">{gettext('Space Used / Quota')}</dt>
|
||||||
@@ -280,6 +284,11 @@ class User extends Component {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
updateRole = (roleOption) => {
|
||||||
|
this.updateUser('role', roleOption.value);
|
||||||
|
};
|
||||||
|
|
||||||
disable2FA = () => {
|
disable2FA = () => {
|
||||||
const email = this.state.userInfo.email;
|
const email = this.state.userInfo.email;
|
||||||
seafileAPI.sysAdminDeleteTwoFactorAuth(email).then(res => {
|
seafileAPI.sysAdminDeleteTwoFactorAuth(email).then(res => {
|
||||||
@@ -309,8 +318,34 @@ class User extends Component {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
translateRole = (role) => {
|
||||||
|
switch (role) {
|
||||||
|
case 'default':
|
||||||
|
return gettext('Default');
|
||||||
|
case 'guest':
|
||||||
|
return gettext('Guest');
|
||||||
|
default:
|
||||||
|
return role;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { userInfo } = this.state;
|
const { userInfo } = this.state;
|
||||||
|
let currentSelectedRoleOption;
|
||||||
|
const { role: curRole } = userInfo;
|
||||||
|
this.roleOptions = availableRoles.map(item => {
|
||||||
|
return {
|
||||||
|
value: item,
|
||||||
|
text: this.translateRole(item),
|
||||||
|
isSelected: item == curRole
|
||||||
|
};
|
||||||
|
});
|
||||||
|
currentSelectedRoleOption = this.roleOptions.filter(item => item.isSelected)[0] || {
|
||||||
|
value: curRole,
|
||||||
|
text: this.translateRole(curRole),
|
||||||
|
isSelected: true
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<MainPanelTopbar {...this.props} />
|
<MainPanelTopbar {...this.props} />
|
||||||
@@ -322,6 +357,9 @@ class User extends Component {
|
|||||||
loading={this.state.loading}
|
loading={this.state.loading}
|
||||||
errorMsg={this.state.errorMsg}
|
errorMsg={this.state.errorMsg}
|
||||||
userInfo={this.state.userInfo}
|
userInfo={this.state.userInfo}
|
||||||
|
roleOptions={this.roleOptions}
|
||||||
|
currentSelectedRoleOption={currentSelectedRoleOption}
|
||||||
|
updateRole={this.updateRole}
|
||||||
updateUser={this.updateUser}
|
updateUser={this.updateUser}
|
||||||
disable2FA={this.disable2FA}
|
disable2FA={this.disable2FA}
|
||||||
toggleForce2fa={this.toggleForce2fa}
|
toggleForce2fa={this.toggleForce2fa}
|
||||||
|
Reference in New Issue
Block a user