MM-26015: ensure admin retains permissions to team after being removed from a team (#14961)
Summary: Ensure admin retains permissions to team after being removed from a team Ticket Link: https://mattermost.atlassian.net/browse/MM-26015
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
87be9bc2f5
Коммит
eabae5437b
@@ -146,23 +146,10 @@ func (a *App) HasPermissionToTeam(askingUserId string, teamId string, permission
|
|||||||
if teamId == "" || askingUserId == "" {
|
if teamId == "" || askingUserId == "" {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
teamMember, _ := a.GetTeamMember(teamId, askingUserId)
|
||||||
teamMember, err := a.GetTeamMember(teamId, askingUserId)
|
if teamMember != nil && teamMember.DeleteAt == 0 {
|
||||||
if err != nil {
|
return a.RolesGrantPermission(teamMember.GetRoles(), permission.Id)
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the team member has been deleted, they don't have permission.
|
|
||||||
if teamMember.DeleteAt != 0 {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
roles := teamMember.GetRoles()
|
|
||||||
|
|
||||||
if a.RolesGrantPermission(roles, permission.Id) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
return a.HasPermissionTo(askingUserId, permission)
|
return a.HasPermissionTo(askingUserId, permission)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,4 +52,10 @@ func TestHasPermissionToTeam(t *testing.T) {
|
|||||||
th.RemoveUserFromTeam(th.BasicUser, th.BasicTeam)
|
th.RemoveUserFromTeam(th.BasicUser, th.BasicTeam)
|
||||||
|
|
||||||
assert.False(t, th.App.HasPermissionToTeam(th.BasicUser.Id, th.BasicTeam.Id, model.PERMISSION_LIST_TEAM_CHANNELS))
|
assert.False(t, th.App.HasPermissionToTeam(th.BasicUser.Id, th.BasicTeam.Id, model.PERMISSION_LIST_TEAM_CHANNELS))
|
||||||
|
|
||||||
|
th.LinkUserToTeam(th.SystemAdminUser, th.BasicTeam)
|
||||||
|
assert.True(t, th.App.HasPermissionToTeam(th.SystemAdminUser.Id, th.BasicTeam.Id, model.PERMISSION_LIST_TEAM_CHANNELS))
|
||||||
|
th.RemoveUserFromTeam(th.SystemAdminUser, th.BasicTeam)
|
||||||
|
// This used to fail before MM-26015
|
||||||
|
assert.True(t, th.App.HasPermissionToTeam(th.SystemAdminUser.Id, th.BasicTeam.Id, model.PERMISSION_LIST_TEAM_CHANNELS))
|
||||||
}
|
}
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user