Merge pull request #947 from mattermost/PLT-435
PLT-435 adding ability to demote system admin
Этот коммит содержится в:
@@ -991,7 +991,7 @@ func updateRoles(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if model.IsInRole(new_roles, model.ROLE_SYSTEM_ADMIN) && !c.IsSystemAdmin() {
|
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 = model.NewAppError("updateRoles", "The system admin role can only be set by another system admin", "")
|
||||||
c.Err.StatusCode = http.StatusForbidden
|
c.Err.StatusCode = http.StatusForbidden
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -1014,6 +1014,12 @@ func updateRoles(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if user.IsInRole(model.ROLE_SYSTEM_ADMIN) && !c.IsSystemAdmin() {
|
||||||
|
c.Err = model.NewAppError("updateRoles", "The system admin role can only by modified by another system admin", "")
|
||||||
|
c.Err.StatusCode = http.StatusForbidden
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
ruser := UpdateRoles(c, user, new_roles)
|
ruser := UpdateRoles(c, user, new_roles)
|
||||||
if c.Err != nil {
|
if c.Err != nil {
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -126,7 +126,6 @@ export default class UserItem extends React.Component {
|
|||||||
let showMakeNotActive = user.roles !== 'system_admin';
|
let showMakeNotActive = user.roles !== 'system_admin';
|
||||||
|
|
||||||
if (user.delete_at > 0) {
|
if (user.delete_at > 0) {
|
||||||
currentRoles = 'Inactive';
|
|
||||||
currentRoles = 'Inactive';
|
currentRoles = 'Inactive';
|
||||||
showMakeMember = false;
|
showMakeMember = false;
|
||||||
showMakeAdmin = false;
|
showMakeAdmin = false;
|
||||||
|
|||||||
@@ -24,32 +24,32 @@ export default class MemberListTeamItem extends React.Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Client.updateRoles(data,
|
Client.updateRoles(data,
|
||||||
function handleMakeMemberSuccess() {
|
() => {
|
||||||
AsyncClient.getProfiles();
|
AsyncClient.getProfiles();
|
||||||
},
|
},
|
||||||
function handleMakeMemberError(err) {
|
(err) => {
|
||||||
this.setState({serverError: err.message});
|
this.setState({serverError: err.message});
|
||||||
}.bind(this)
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
handleMakeActive() {
|
handleMakeActive() {
|
||||||
Client.updateActive(this.props.user.id, true,
|
Client.updateActive(this.props.user.id, true,
|
||||||
function handleMakeActiveSuccess() {
|
() => {
|
||||||
AsyncClient.getProfiles();
|
AsyncClient.getProfiles();
|
||||||
},
|
},
|
||||||
function handleMakeActiveError(err) {
|
(err) => {
|
||||||
this.setState({serverError: err.message});
|
this.setState({serverError: err.message});
|
||||||
}.bind(this)
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
handleMakeNotActive() {
|
handleMakeNotActive() {
|
||||||
Client.updateActive(this.props.user.id, false,
|
Client.updateActive(this.props.user.id, false,
|
||||||
function handleMakeNotActiveSuccess() {
|
() => {
|
||||||
AsyncClient.getProfiles();
|
AsyncClient.getProfiles();
|
||||||
},
|
},
|
||||||
function handleMakeNotActiveError(err) {
|
(err) => {
|
||||||
this.setState({serverError: err.message});
|
this.setState({serverError: err.message});
|
||||||
}.bind(this)
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
handleMakeAdmin() {
|
handleMakeAdmin() {
|
||||||
@@ -59,12 +59,12 @@ export default class MemberListTeamItem extends React.Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Client.updateRoles(data,
|
Client.updateRoles(data,
|
||||||
function handleMakeAdminSuccess() {
|
() => {
|
||||||
AsyncClient.getProfiles();
|
AsyncClient.getProfiles();
|
||||||
},
|
},
|
||||||
function handleMakeAdmitError(err) {
|
(err) => {
|
||||||
this.setState({serverError: err.message});
|
this.setState({serverError: err.message});
|
||||||
}.bind(this)
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
render() {
|
render() {
|
||||||
@@ -82,14 +82,18 @@ export default class MemberListTeamItem extends React.Component {
|
|||||||
const timestamp = UserStore.getCurrentUser().update_at;
|
const timestamp = UserStore.getCurrentUser().update_at;
|
||||||
|
|
||||||
if (user.roles.length > 0) {
|
if (user.roles.length > 0) {
|
||||||
currentRoles = user.roles.charAt(0).toUpperCase() + user.roles.slice(1);
|
if (user.roles.indexOf('system_admin') > -1) {
|
||||||
|
currentRoles = 'System Admin';
|
||||||
|
} else {
|
||||||
|
currentRoles = user.roles.charAt(0).toUpperCase() + user.roles.slice(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const email = user.email;
|
const email = user.email;
|
||||||
let showMakeMember = user.roles === 'admin';
|
let showMakeMember = user.roles === 'admin' || user.roles === 'system_admin';
|
||||||
let showMakeAdmin = user.roles === '';
|
let showMakeAdmin = user.roles === '' || user.roles === 'system_admin';
|
||||||
let showMakeActive = false;
|
let showMakeActive = false;
|
||||||
let showMakeNotActive = true;
|
let showMakeNotActive = user.roles !== 'system_admin';
|
||||||
|
|
||||||
if (user.delete_at > 0) {
|
if (user.delete_at > 0) {
|
||||||
currentRoles = 'Inactive';
|
currentRoles = 'Inactive';
|
||||||
@@ -108,7 +112,7 @@ export default class MemberListTeamItem extends React.Component {
|
|||||||
href='#'
|
href='#'
|
||||||
onClick={this.handleMakeAdmin}
|
onClick={this.handleMakeAdmin}
|
||||||
>
|
>
|
||||||
Make Admin
|
{'Make Admin'}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
@@ -123,7 +127,7 @@ export default class MemberListTeamItem extends React.Component {
|
|||||||
href='#'
|
href='#'
|
||||||
onClick={this.handleMakeMember}
|
onClick={this.handleMakeMember}
|
||||||
>
|
>
|
||||||
Make Member
|
{'Make Member'}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
@@ -138,7 +142,7 @@ export default class MemberListTeamItem extends React.Component {
|
|||||||
href='#'
|
href='#'
|
||||||
onClick={this.handleMakeActive}
|
onClick={this.handleMakeActive}
|
||||||
>
|
>
|
||||||
Make Active
|
{'Make Active'}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
@@ -153,7 +157,7 @@ export default class MemberListTeamItem extends React.Component {
|
|||||||
href='#'
|
href='#'
|
||||||
onClick={this.handleMakeNotActive}
|
onClick={this.handleMakeNotActive}
|
||||||
>
|
>
|
||||||
Make Inactive
|
{'Make Inactive'}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user