mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
Fixing state setting
This commit is contained in:
@@ -938,8 +938,8 @@ func updateRoles(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
if model.IsInRole(new_roles, model.ROLE_SYSTEM_ADMIN) {
|
||||
c.Err = model.NewAppError("updateRoles", "The system_admin role can only be set from the command line", "")
|
||||
if model.IsInRole(new_roles, model.ROLE_SYSTEM_ADMIN) && !c.IsSystemAdmin() {
|
||||
c.Err = model.NewAppError("updateRoles", "The system_admin role can only be set by another system admin", "")
|
||||
c.Err.StatusCode = http.StatusForbidden
|
||||
return
|
||||
}
|
||||
|
||||
@@ -192,15 +192,6 @@ export default class AdminSidebar extends React.Component {
|
||||
{'Log Settings'}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href='#'
|
||||
className={this.isSelected('logs')}
|
||||
onClick={this.handleClick.bind(this, 'logs', null)}
|
||||
>
|
||||
{'Logs'}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href='#'
|
||||
@@ -245,6 +236,21 @@ export default class AdminSidebar extends React.Component {
|
||||
<li>
|
||||
{teams}
|
||||
</li>
|
||||
<li>
|
||||
<h4>
|
||||
<span className='icon fa fa-gear'></span>
|
||||
<span>{'OTHER'}</span>
|
||||
</h4>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href='#'
|
||||
className={this.isSelected('logs')}
|
||||
onClick={this.handleClick.bind(this, 'logs', null)}
|
||||
>
|
||||
{'Logs'}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -21,13 +21,11 @@ export default class ResetPasswordModal extends React.Component {
|
||||
var password = React.findDOMNode(this.refs.password).value;
|
||||
|
||||
if (!password || password.length < 5) {
|
||||
this.state.serverError = 'Please enter at least 5 characters.';
|
||||
this.setState(this.state);
|
||||
this.setState({serverError: 'Please enter at least 5 characters.'});
|
||||
return;
|
||||
}
|
||||
|
||||
this.state.serverError = null;
|
||||
this.setState(this.state);
|
||||
this.setState({serverError: null});
|
||||
|
||||
var data = {};
|
||||
data.new_password = password;
|
||||
@@ -39,15 +37,13 @@ export default class ResetPasswordModal extends React.Component {
|
||||
this.props.onModalSubmit(React.findDOMNode(this.refs.password).value);
|
||||
},
|
||||
(err) => {
|
||||
this.state.serverError = err.message;
|
||||
this.setState(this.state);
|
||||
this.setState({serverError: err.message});
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
doCancel() {
|
||||
this.state.serverError = null;
|
||||
this.setState(this.state);
|
||||
this.setState({serverError: null});
|
||||
this.props.onModalDismissed();
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,14 @@ export default class UserList extends React.Component {
|
||||
this.getTeamProfiles(this.props.team.id);
|
||||
}
|
||||
|
||||
// this.setState({
|
||||
// teamId: this.state.teamId,
|
||||
// users: this.state.users,
|
||||
// serverError: this.state.serverError,
|
||||
// showPasswordModal: this.state.showPasswordModal,
|
||||
// user: this.state.user
|
||||
// });
|
||||
|
||||
getTeamProfiles(teamId) {
|
||||
Client.getProfilesForTeam(
|
||||
teamId,
|
||||
@@ -56,33 +64,56 @@ export default class UserList extends React.Component {
|
||||
return 0;
|
||||
});
|
||||
|
||||
this.state.users = memberList;
|
||||
this.setState(this.state);
|
||||
this.setState({
|
||||
teamId: this.state.teamId,
|
||||
users: memberList,
|
||||
serverError: this.state.serverError,
|
||||
showPasswordModal: this.state.showPasswordModal,
|
||||
user: this.state.user
|
||||
});
|
||||
},
|
||||
(err) => {
|
||||
this.state.serverError = err.message;
|
||||
this.state.users = null;
|
||||
this.setState(this.state);
|
||||
this.setState({
|
||||
teamId: this.state.teamId,
|
||||
users: null,
|
||||
serverError: err.message,
|
||||
showPasswordModal: this.state.showPasswordModal,
|
||||
user: this.state.user
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
doPasswordReset(user) {
|
||||
this.state.showPasswordModal = true;
|
||||
this.state.user = user;
|
||||
this.setState(this.state);
|
||||
this.setState({
|
||||
teamId: this.state.teamId,
|
||||
users: this.state.users,
|
||||
serverError: this.state.serverError,
|
||||
showPasswordModal: true,
|
||||
user
|
||||
});
|
||||
}
|
||||
|
||||
doPasswordResetDismiss() {
|
||||
this.state.showPasswordModal = false;
|
||||
this.state.user = null;
|
||||
this.setState(this.state);
|
||||
this.setState({
|
||||
teamId: this.state.teamId,
|
||||
users: this.state.users,
|
||||
serverError: this.state.serverError,
|
||||
showPasswordModal: false,
|
||||
user: null
|
||||
});
|
||||
}
|
||||
|
||||
doPasswordResetSubmit() {
|
||||
this.state.showPasswordModal = false;
|
||||
this.state.user = null;
|
||||
this.setState(this.state);
|
||||
this.setState({
|
||||
teamId: this.state.teamId,
|
||||
users: this.state.users,
|
||||
serverError: this.state.serverError,
|
||||
showPasswordModal: false,
|
||||
user: null
|
||||
});
|
||||
}
|
||||
|
||||
componentWillReceiveProps(newProps) {
|
||||
|
||||
@@ -12,6 +12,7 @@ export default class UserItem extends React.Component {
|
||||
this.handleMakeActive = this.handleMakeActive.bind(this);
|
||||
this.handleMakeNotActive = this.handleMakeNotActive.bind(this);
|
||||
this.handleMakeAdmin = this.handleMakeAdmin.bind(this);
|
||||
this.handleMakeSystemAdmin = this.handleMakeSystemAdmin.bind(this);
|
||||
this.handleResetPassword = this.handleResetPassword.bind(this);
|
||||
|
||||
this.state = {};
|
||||
@@ -75,6 +76,23 @@ export default class UserItem extends React.Component {
|
||||
);
|
||||
}
|
||||
|
||||
handleMakeSystemAdmin(e) {
|
||||
e.preventDefault();
|
||||
const data = {
|
||||
user_id: this.props.user.id,
|
||||
new_roles: 'system_admin'
|
||||
};
|
||||
|
||||
Client.updateRoles(data,
|
||||
() => {
|
||||
this.props.refreshProfiles();
|
||||
},
|
||||
(err) => {
|
||||
this.setState({serverError: err.message});
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
handleResetPassword(e) {
|
||||
e.preventDefault();
|
||||
this.props.doPasswordReset(this.props.user);
|
||||
@@ -101,8 +119,9 @@ export default class UserItem extends React.Component {
|
||||
}
|
||||
|
||||
const email = user.email;
|
||||
let showMakeMember = (user.roles === 'admin') || user.roles === 'system_admin';
|
||||
let showMakeAdmin = (user.roles === '') || user.roles === 'system_admin';
|
||||
let showMakeMember = user.roles === 'admin' || user.roles === 'system_admin';
|
||||
let showMakeAdmin = user.roles === '' || user.roles === 'system_admin';
|
||||
let showMakeSystemAdmin = user.roles === '' || user.roles === 'admin';
|
||||
let showMakeActive = false;
|
||||
let showMakeNotActive = user.roles !== 'system_admin';
|
||||
|
||||
@@ -111,10 +130,26 @@ export default class UserItem extends React.Component {
|
||||
currentRoles = 'Inactive';
|
||||
showMakeMember = false;
|
||||
showMakeAdmin = false;
|
||||
showMakeSystemAdmin = false;
|
||||
showMakeActive = true;
|
||||
showMakeNotActive = false;
|
||||
}
|
||||
|
||||
let makeSystemAdmin = null;
|
||||
if (showMakeSystemAdmin) {
|
||||
makeSystemAdmin = (
|
||||
<li role='presentation'>
|
||||
<a
|
||||
role='menuitem'
|
||||
href='#'
|
||||
onClick={this.handleMakeSystemAdmin}
|
||||
>
|
||||
{'Make System Admin'}
|
||||
</a>
|
||||
</li>
|
||||
);
|
||||
}
|
||||
|
||||
let makeAdmin = null;
|
||||
if (showMakeAdmin) {
|
||||
makeAdmin = (
|
||||
@@ -206,6 +241,7 @@ export default class UserItem extends React.Component {
|
||||
{makeMember}
|
||||
{makeActive}
|
||||
{makeNotActive}
|
||||
{makeSystemAdmin}
|
||||
<li role='presentation'>
|
||||
<a
|
||||
role='menuitem'
|
||||
|
||||
Reference in New Issue
Block a user