PLT-6753 Fixed deactivated users counting against max members on a team (#6758)

* PLT-6753 Fixed deactivated users counting against max members on a team

* Removed nested sql query when checking the number of team members
Этот коммит содержится в:
Harrison Healey
2017-07-05 12:10:15 -04:00
коммит произвёл Christopher Speller
родитель 857d280007
Коммит 039271394e
2 изменённых файлов: 24 добавлений и 2 удалений

Просмотреть файл

@@ -494,9 +494,14 @@ func (s SqlTeamStore) SaveMember(member *model.TeamMember) StoreChannel {
COUNT(0)
FROM
TeamMembers
INNER JOIN
Users
ON
TeamMembers.UserId = Users.Id
WHERE
TeamId = :TeamId
AND DeleteAt = 0`, map[string]interface{}{"TeamId": member.TeamId}); err != nil {
AND TeamMembers.DeleteAt = 0
AND Users.DeleteAt = 0`, map[string]interface{}{"TeamId": member.TeamId}); err != nil {
result.Err = model.NewLocAppError("SqlUserStore.Save", "store.sql_user.save.member_count.app_error", nil, "teamId="+member.TeamId+", "+err.Error())
storeChannel <- result
close(storeChannel)

Просмотреть файл

@@ -644,7 +644,24 @@ func TestSaveTeamMemberMaxMembers(t *testing.T) {
if result := <-store.Team().GetTotalMemberCount(team.Id); result.Err != nil {
t.Fatal(result.Err)
} else if count := result.Data.(int64); int(count) != utils.Cfg.TeamSettings.MaxUsersPerTeam {
t.Fatalf("should still have 5 team members again, had %v instead", count)
t.Fatalf("should have 5 team members again, had %v instead", count)
}
// Deactivating a user should make them stop counting against max members
user2 := Must(store.User().Get(userIds[1])).(*model.User)
user2.DeleteAt = 1234
Must(store.User().Update(user2, true))
newUserId2 := Must(store.User().Save(&model.User{
Username: model.NewId(),
Email: model.NewId(),
})).(*model.User).Id
if result := <-store.Team().SaveMember(&model.TeamMember{TeamId: team.Id, UserId: newUserId2}); result.Err != nil {
t.Fatal("should've been able to save new member after deleting one", result.Err)
} else {
defer func(userId string) {
<-store.Team().RemoveMember(team.Id, userId)
}(newUserId2)
}
}