summaryrefslogtreecommitdiffstats
path: root/store/sqlstore/team_store.go
diff options
context:
space:
mode:
authorChris <ccbrown112@gmail.com>2017-10-20 17:34:07 -0700
committerJoram Wilander <jwawilander@gmail.com>2017-10-20 20:34:07 -0400
commitfd6192473b3c2a91d1520e366d931063e359a67d (patch)
treece23b9450d781f5ac594f418e9ce2ed933eb10ea /store/sqlstore/team_store.go
parentd39a722a819b154d260b90905065a000749778b6 (diff)
downloadchat-fd6192473b3c2a91d1520e366d931063e359a67d.tar.gz
chat-fd6192473b3c2a91d1520e366d931063e359a67d.tar.bz2
chat-fd6192473b3c2a91d1520e366d931063e359a67d.zip
refactor max users per team (#7691)
Diffstat (limited to 'store/sqlstore/team_store.go')
-rw-r--r--store/sqlstore/team_store.go41
1 files changed, 21 insertions, 20 deletions
diff --git a/store/sqlstore/team_store.go b/store/sqlstore/team_store.go
index da63992dd..cddfb7c1a 100644
--- a/store/sqlstore/team_store.go
+++ b/store/sqlstore/team_store.go
@@ -10,7 +10,6 @@ import (
"github.com/mattermost/mattermost-server/model"
"github.com/mattermost/mattermost-server/store"
- "github.com/mattermost/mattermost-server/utils"
)
const (
@@ -326,30 +325,32 @@ func (s SqlTeamStore) AnalyticsTeamCount() store.StoreChannel {
})
}
-func (s SqlTeamStore) SaveMember(member *model.TeamMember) store.StoreChannel {
+func (s SqlTeamStore) SaveMember(member *model.TeamMember, maxUsersPerTeam int) store.StoreChannel {
return store.Do(func(result *store.StoreResult) {
if result.Err = member.IsValid(); result.Err != nil {
return
}
- if count, err := s.GetMaster().SelectInt(
- `SELECT
- COUNT(0)
- FROM
- TeamMembers
- INNER JOIN
- Users
- ON
- TeamMembers.UserId = Users.Id
- WHERE
- TeamId = :TeamId
- AND TeamMembers.DeleteAt = 0
- AND Users.DeleteAt = 0`, map[string]interface{}{"TeamId": member.TeamId}); err != nil {
- result.Err = model.NewAppError("SqlUserStore.Save", "store.sql_user.save.member_count.app_error", nil, "teamId="+member.TeamId+", "+err.Error(), http.StatusInternalServerError)
- return
- } else if int(count) >= *utils.Cfg.TeamSettings.MaxUsersPerTeam {
- result.Err = model.NewAppError("SqlUserStore.Save", "store.sql_user.save.max_accounts.app_error", nil, "teamId="+member.TeamId, http.StatusBadRequest)
- return
+ if maxUsersPerTeam >= 0 {
+ if count, err := s.GetMaster().SelectInt(
+ `SELECT
+ COUNT(0)
+ FROM
+ TeamMembers
+ INNER JOIN
+ Users
+ ON
+ TeamMembers.UserId = Users.Id
+ WHERE
+ TeamId = :TeamId
+ AND TeamMembers.DeleteAt = 0
+ AND Users.DeleteAt = 0`, map[string]interface{}{"TeamId": member.TeamId}); err != nil {
+ result.Err = model.NewAppError("SqlUserStore.Save", "store.sql_user.save.member_count.app_error", nil, "teamId="+member.TeamId+", "+err.Error(), http.StatusInternalServerError)
+ return
+ } else if count >= int64(maxUsersPerTeam) {
+ result.Err = model.NewAppError("SqlUserStore.Save", "store.sql_user.save.max_accounts.app_error", nil, "teamId="+member.TeamId, http.StatusBadRequest)
+ return
+ }
}
if err := s.GetMaster().Insert(member); err != nil {