mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
update for guest demotion and sysadmin edits (#23920)
* update for guest demotion and sysadmin edits * update unit test * update unit test * use existing disabled flag * remove commented line --------- Co-authored-by: Mattermost Build <build@mattermost.com>
This commit is contained in:
parent
2672af30ea
commit
f45f774ece
@ -2023,19 +2023,9 @@ func (us SqlUserStore) DemoteUserToGuest(userID string) (_ *model.User, err erro
|
||||
return nil, err
|
||||
}
|
||||
|
||||
roles := user.GetRoles()
|
||||
|
||||
newRoles := []string{}
|
||||
for _, role := range roles {
|
||||
if role == model.SystemUserRoleId {
|
||||
newRoles = append(newRoles, model.SystemGuestRoleId)
|
||||
} else if role != model.SystemAdminRoleId {
|
||||
newRoles = append(newRoles, role)
|
||||
}
|
||||
}
|
||||
|
||||
curTime := model.GetMillis()
|
||||
newRolesDBStr := strings.Join(newRoles, " ")
|
||||
newRolesDBStr := model.SystemGuestRoleId
|
||||
|
||||
query := us.getQueryBuilder().Update("Users").
|
||||
Set("Roles", newRolesDBStr).
|
||||
Set("UpdateAt", curTime).
|
||||
|
@ -5699,7 +5699,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
|
||||
updatedUser, err := ss.User().DemoteUserToGuest(user.Id)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "system_guest custom_role", updatedUser.Roles)
|
||||
require.Equal(t, "system_guest", updatedUser.Roles)
|
||||
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId, user.Id)
|
||||
require.NoError(t, nErr)
|
||||
|
@ -565,6 +565,15 @@ export default class SystemUsersDropdown extends React.PureComponent<Props, Stat
|
||||
|
||||
render() {
|
||||
const {currentUser, user, isLicensed, config} = this.props;
|
||||
|
||||
let isDisabled = this.props.isDisabled;
|
||||
if (!isDisabled) {
|
||||
// if not already disabled,
|
||||
// disable if SystemAdmin being edited by non SystemAdmin
|
||||
// ie, userManager with EditOtherUsers permissions
|
||||
isDisabled = UserUtils.isSystemAdmin(user.roles) && !UserUtils.isSystemAdmin(currentUser.roles);
|
||||
}
|
||||
|
||||
const isGuest = UserUtils.isGuest(user.roles);
|
||||
if (!user) {
|
||||
return <div/>;
|
||||
@ -635,12 +644,14 @@ export default class SystemUsersDropdown extends React.PureComponent<Props, Stat
|
||||
{demoteToGuestModal}
|
||||
{createGroupSyncablesMembershipsModal}
|
||||
<MenuWrapper
|
||||
isDisabled={this.props.isDisabled}
|
||||
isDisabled={isDisabled}
|
||||
>
|
||||
<div className='text-right'>
|
||||
<a>
|
||||
<span>{currentRoles} </span>
|
||||
{!isDisabled &&
|
||||
<span className='caret'/>
|
||||
}
|
||||
</a>
|
||||
{this.renderAccessToken()}
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user