MM-31054 demote user (#16990)
* changing SchemeAdmin to false on demotion * Added test Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
8abb4184b5
Коммит
145fa97069
@@ -1349,6 +1349,52 @@ func TestDemoteUserToGuest(t *testing.T) {
|
|||||||
require.Nil(t, err)
|
require.Nil(t, err)
|
||||||
assert.Len(t, *channelMembers, 3)
|
assert.Len(t, *channelMembers, 3)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("Must be removed as team and channel admin", func(t *testing.T) {
|
||||||
|
user := th.CreateUser()
|
||||||
|
require.Equal(t, "system_user", user.Roles)
|
||||||
|
|
||||||
|
team := th.CreateTeam()
|
||||||
|
|
||||||
|
th.LinkUserToTeam(user, team)
|
||||||
|
th.App.UpdateTeamMemberRoles(team.Id, user.Id, "team_user team_admin")
|
||||||
|
|
||||||
|
teamMember, err := th.App.GetTeamMember(team.Id, user.Id)
|
||||||
|
require.Nil(t, err)
|
||||||
|
require.True(t, teamMember.SchemeUser)
|
||||||
|
require.True(t, teamMember.SchemeAdmin)
|
||||||
|
require.False(t, teamMember.SchemeGuest)
|
||||||
|
|
||||||
|
channel := th.CreateChannel(team)
|
||||||
|
|
||||||
|
th.AddUserToChannel(user, channel)
|
||||||
|
th.App.UpdateChannelMemberSchemeRoles(channel.Id, user.Id, false, true, true)
|
||||||
|
|
||||||
|
channelMember, err := th.App.GetChannelMember(channel.Id, user.Id)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
assert.True(t, channelMember.SchemeUser)
|
||||||
|
assert.True(t, channelMember.SchemeAdmin)
|
||||||
|
assert.False(t, channelMember.SchemeGuest)
|
||||||
|
|
||||||
|
err = th.App.DemoteUserToGuest(user)
|
||||||
|
require.Nil(t, err)
|
||||||
|
|
||||||
|
user, err = th.App.GetUser(user.Id)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
assert.Equal(t, "system_guest", user.Roles)
|
||||||
|
|
||||||
|
teamMember, err = th.App.GetTeamMember(team.Id, user.Id)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
assert.False(t, teamMember.SchemeUser)
|
||||||
|
assert.False(t, teamMember.SchemeAdmin)
|
||||||
|
assert.True(t, teamMember.SchemeGuest)
|
||||||
|
|
||||||
|
channelMember, err = th.App.GetChannelMember(channel.Id, user.Id)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
assert.False(t, channelMember.SchemeUser)
|
||||||
|
assert.False(t, channelMember.SchemeAdmin)
|
||||||
|
assert.True(t, channelMember.SchemeGuest)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDeactivateGuests(t *testing.T) {
|
func TestDeactivateGuests(t *testing.T) {
|
||||||
|
|||||||
@@ -1884,6 +1884,7 @@ func (us SqlUserStore) DemoteUserToGuest(userID string) (*model.User, error) {
|
|||||||
|
|
||||||
query = us.getQueryBuilder().Update("ChannelMembers").
|
query = us.getQueryBuilder().Update("ChannelMembers").
|
||||||
Set("SchemeUser", false).
|
Set("SchemeUser", false).
|
||||||
|
Set("SchemeAdmin", false).
|
||||||
Set("SchemeGuest", true).
|
Set("SchemeGuest", true).
|
||||||
Where(sq.Eq{"UserId": userID})
|
Where(sq.Eq{"UserId": userID})
|
||||||
|
|
||||||
@@ -1898,6 +1899,7 @@ func (us SqlUserStore) DemoteUserToGuest(userID string) (*model.User, error) {
|
|||||||
|
|
||||||
query = us.getQueryBuilder().Update("TeamMembers").
|
query = us.getQueryBuilder().Update("TeamMembers").
|
||||||
Set("SchemeUser", false).
|
Set("SchemeUser", false).
|
||||||
|
Set("SchemeAdmin", false).
|
||||||
Set("SchemeGuest", true).
|
Set("SchemeGuest", true).
|
||||||
Where(sq.Eq{"UserId": userID})
|
Where(sq.Eq{"UserId": userID})
|
||||||
|
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user