summaryrefslogtreecommitdiffstats
path: root/webapp/components/admin_console/system_users/system_users_dropdown.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/components/admin_console/system_users/system_users_dropdown.jsx')
-rw-r--r--webapp/components/admin_console/system_users/system_users_dropdown.jsx175
1 files changed, 75 insertions, 100 deletions
diff --git a/webapp/components/admin_console/system_users/system_users_dropdown.jsx b/webapp/components/admin_console/system_users/system_users_dropdown.jsx
index fe53ade44..1dbb6b325 100644
--- a/webapp/components/admin_console/system_users/system_users_dropdown.jsx
+++ b/webapp/components/admin_console/system_users/system_users_dropdown.jsx
@@ -8,7 +8,7 @@ import UserStore from 'stores/user_store.jsx';
import Constants from 'utils/constants.jsx';
import * as Utils from 'utils/utils.jsx';
-import {updateUserRoles, updateActive} from 'actions/user_actions.jsx';
+import {updateActive} from 'actions/user_actions.jsx';
import {adminResetMfa} from 'actions/admin_actions.jsx';
import {FormattedMessage} from 'react-intl';
@@ -19,28 +19,36 @@ import React from 'react';
export default class SystemUsersDropdown extends React.Component {
static propTypes = {
+
+ /*
+ * User to manage with dropdown
+ */
user: PropTypes.object.isRequired,
+
+ /*
+ * Function to open password reset, takes user as an argument
+ */
doPasswordReset: PropTypes.func.isRequired,
- doManageTeams: PropTypes.func.isRequired
+
+ /*
+ * Function to open manage teams, takes user as an argument
+ */
+ doManageTeams: PropTypes.func.isRequired,
+
+ /*
+ * Function to open manage roles, takes user as an argument
+ */
+ doManageRoles: PropTypes.func.isRequired,
+
+ /*
+ * Function to open manage tokens, takes user as an argument
+ */
+ doManageTokens: PropTypes.func.isRequired
};
constructor(props) {
super(props);
- this.handleMakeMember = this.handleMakeMember.bind(this);
- this.handleMakeActive = this.handleMakeActive.bind(this);
- this.handleShowDeactivateMemberModal = this.handleShowDeactivateMemberModal.bind(this);
- this.handleDeactivateMember = this.handleDeactivateMember.bind(this);
- this.handleDeactivateCancel = this.handleDeactivateCancel.bind(this);
- this.handleMakeSystemAdmin = this.handleMakeSystemAdmin.bind(this);
- this.handleManageTeams = this.handleManageTeams.bind(this);
- this.handleResetPassword = this.handleResetPassword.bind(this);
- this.handleResetMfa = this.handleResetMfa.bind(this);
- this.handleDemoteSystemAdmin = this.handleDemoteSystemAdmin.bind(this);
- this.handleDemoteSubmit = this.handleDemoteSubmit.bind(this);
- this.handleDemoteCancel = this.handleDemoteCancel.bind(this);
- this.renderDeactivateMemberModal = this.renderDeactivateMemberModal.bind(this);
-
this.state = {
serverError: null,
showDemoteModal: false,
@@ -50,61 +58,39 @@ export default class SystemUsersDropdown extends React.Component {
};
}
- doMakeMember() {
- updateUserRoles(
- this.props.user.id,
- 'system_user',
- null,
+ handleMakeActive = (e) => {
+ e.preventDefault();
+ updateActive(this.props.user.id, true, null,
(err) => {
this.setState({serverError: err.message});
}
);
}
- handleMakeMember(e) {
+ handleManageTeams = (e) => {
e.preventDefault();
- const me = UserStore.getCurrentUser();
- if (this.props.user.id === me.id && me.roles.includes('system_admin')) {
- this.handleDemoteSystemAdmin(this.props.user, 'member');
- } else {
- this.doMakeMember();
- }
- }
- handleMakeActive(e) {
- e.preventDefault();
- updateActive(this.props.user.id, true, null,
- (err) => {
- this.setState({serverError: err.message});
- }
- );
+ this.props.doManageTeams(this.props.user);
}
- handleMakeSystemAdmin(e) {
+ handleManageRoles = (e) => {
e.preventDefault();
- updateUserRoles(
- this.props.user.id,
- 'system_user system_admin',
- null,
- (err) => {
- this.setState({serverError: err.message});
- }
- );
+ this.props.doManageRoles(this.props.user);
}
- handleManageTeams(e) {
+ handleManageTokens = (e) => {
e.preventDefault();
- this.props.doManageTeams(this.props.user);
+ this.props.doManageTokens(this.props.user);
}
- handleResetPassword(e) {
+ handleResetPassword = (e) => {
e.preventDefault();
this.props.doPasswordReset(this.props.user);
}
- handleResetMfa(e) {
+ handleResetMfa = (e) => {
e.preventDefault();
adminResetMfa(this.props.user.id,
@@ -115,7 +101,7 @@ export default class SystemUsersDropdown extends React.Component {
);
}
- handleDemoteSystemAdmin(user, role) {
+ handleDemoteSystemAdmin = (user, role) => {
this.setState({
serverError: this.state.serverError,
showDemoteModal: true,
@@ -124,7 +110,7 @@ export default class SystemUsersDropdown extends React.Component {
});
}
- handleDemoteCancel() {
+ handleDemoteCancel = () => {
this.setState({
serverError: null,
showDemoteModal: false,
@@ -133,7 +119,7 @@ export default class SystemUsersDropdown extends React.Component {
});
}
- handleDemoteSubmit() {
+ handleDemoteSubmit = () => {
if (this.state.role === 'member') {
this.doMakeMember();
}
@@ -147,13 +133,13 @@ export default class SystemUsersDropdown extends React.Component {
}
}
- handleShowDeactivateMemberModal(e) {
+ handleShowDeactivateMemberModal = (e) => {
e.preventDefault();
this.setState({showDeactivateMemberModal: true});
}
- handleDeactivateMember() {
+ handleDeactivateMember = () => {
updateActive(this.props.user.id, false, null,
(err) => {
this.setState({serverError: err.message});
@@ -163,11 +149,11 @@ export default class SystemUsersDropdown extends React.Component {
this.setState({showDeactivateMemberModal: false});
}
- handleDeactivateCancel() {
+ handleDeactivateCancel = () => {
this.setState({showDeactivateMemberModal: false});
}
- renderDeactivateMemberModal() {
+ renderDeactivateMemberModal = () => {
const title = (
<FormattedMessage
id='deactivate_member_modal.title'
@@ -240,8 +226,6 @@ export default class SystemUsersDropdown extends React.Component {
}
const me = UserStore.getCurrentUser();
- let showMakeMember = Utils.isSystemAdmin(user.roles);
- let showMakeSystemAdmin = !Utils.isSystemAdmin(user.roles);
let showMakeActive = false;
let showMakeNotActive = !Utils.isSystemAdmin(user.roles);
let showManageTeams = true;
@@ -255,8 +239,6 @@ export default class SystemUsersDropdown extends React.Component {
defaultMessage='Inactive'
/>
);
- showMakeMember = false;
- showMakeSystemAdmin = false;
showMakeActive = true;
showMakeNotActive = false;
showManageTeams = false;
@@ -267,44 +249,6 @@ export default class SystemUsersDropdown extends React.Component {
disableActivationToggle = true;
}
- let makeSystemAdmin = null;
- if (showMakeSystemAdmin) {
- makeSystemAdmin = (
- <li role='presentation'>
- <a
- id='makeSystemAdmin'
- role='menuitem'
- href='#'
- onClick={this.handleMakeSystemAdmin}
- >
- <FormattedMessage
- id='admin.user_item.makeSysAdmin'
- defaultMessage='Make System Admin'
- />
- </a>
- </li>
- );
- }
-
- let makeMember = null;
- if (showMakeMember) {
- makeMember = (
- <li role='presentation'>
- <a
- id='makeMember'
- role='menuitem'
- href='#'
- onClick={this.handleMakeMember}
- >
- <FormattedMessage
- id='admin.user_item.makeMember'
- defaultMessage='Make Member'
- />
- </a>
- </li>
- );
- }
-
let menuClass = '';
if (disableActivationToggle) {
menuClass = 'disabled';
@@ -427,6 +371,25 @@ export default class SystemUsersDropdown extends React.Component {
);
}
+ let manageTokens;
+ if (global.window.mm_config.EnableUserAccessTokens === 'true') {
+ manageTokens = (
+ <li role='presentation'>
+ <a
+ id='manageTokens'
+ role='menuitem'
+ href='#'
+ onClick={this.handleManageTokens}
+ >
+ <FormattedMessage
+ id='admin.user_item.manageTokens'
+ defaultMessage='Manage Tokens'
+ />
+ </a>
+ </li>
+ );
+ }
+
let makeDemoteModal = null;
if (this.props.user.id === me.id) {
const title = (
@@ -498,11 +461,23 @@ export default class SystemUsersDropdown extends React.Component {
className='dropdown-menu member-menu'
role='menu'
>
- {makeMember}
{makeActive}
{makeNotActive}
- {makeSystemAdmin}
+ <li role='presentation'>
+ <a
+ id='manageRoles'
+ role='menuitem'
+ href='#'
+ onClick={this.handleManageRoles}
+ >
+ <FormattedMessage
+ id='admin.user_item.manageRoles'
+ defaultMessage='Manage Roles'
+ />
+ </a>
+ </li>
{manageTeams}
+ {manageTokens}
{mfaReset}
{passwordReset}
</ul>