summaryrefslogtreecommitdiffstats
path: root/store
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-09-13 12:42:48 -0400
committerJoram Wilander <jwawilander@gmail.com>2016-09-13 12:42:48 -0400
commit1e7985a87a72bea9a308cf1506dacc828c6e2e1c (patch)
treed4251391dc74a9ff4628dd1bed551c34d806a1b6 /store
parent05af5d14b8d07b010c70750ae1ac5ddf22c120a7 (diff)
downloadchat-1e7985a87a72bea9a308cf1506dacc828c6e2e1c.tar.gz
chat-1e7985a87a72bea9a308cf1506dacc828c6e2e1c.tar.bz2
chat-1e7985a87a72bea9a308cf1506dacc828c6e2e1c.zip
Modifying permissions system. (#3897)
Diffstat (limited to 'store')
-rw-r--r--store/sql_team_store.go2
-rw-r--r--store/sql_upgrade.go16
-rw-r--r--store/sql_user_store.go2
-rw-r--r--store/sql_user_store_test.go2
4 files changed, 20 insertions, 2 deletions
diff --git a/store/sql_team_store.go b/store/sql_team_store.go
index 0544ec76c..b9db80588 100644
--- a/store/sql_team_store.go
+++ b/store/sql_team_store.go
@@ -395,6 +395,8 @@ func (s SqlTeamStore) UpdateMember(member *model.TeamMember) StoreChannel {
go func() {
result := StoreResult{}
+ member.PreUpdate()
+
if result.Err = member.IsValid(); result.Err != nil {
storeChannel <- result
close(storeChannel)
diff --git a/store/sql_upgrade.go b/store/sql_upgrade.go
index 0e25d76be..445f3f349 100644
--- a/store/sql_upgrade.go
+++ b/store/sql_upgrade.go
@@ -15,6 +15,7 @@ import (
)
const (
+ VERSION_3_5_0 = "3.5.0"
VERSION_3_4_0 = "3.4.0"
VERSION_3_3_0 = "3.3.0"
VERSION_3_2_0 = "3.2.0"
@@ -35,6 +36,7 @@ func UpgradeDatabase(sqlStore *SqlStore) {
UpgradeDatabaseToVersion32(sqlStore)
UpgradeDatabaseToVersion33(sqlStore)
UpgradeDatabaseToVersion34(sqlStore)
+ UpgradeDatabaseToVersion35(sqlStore)
// If the SchemaVersion is empty this this is the first time it has ran
// so lets set it to the current version.
@@ -187,3 +189,17 @@ func UpgradeDatabaseToVersion34(sqlStore *SqlStore) {
saveSchemaVersion(sqlStore, VERSION_3_4_0)
}
}
+
+func UpgradeDatabaseToVersion35(sqlStore *SqlStore) {
+ //if shouldPerformUpgrade(sqlStore, VERSION_3_4_0, VERSION_3_5_0) {
+
+ sqlStore.GetMaster().Exec("UPDATE Users SET Roles = 'system_user' WHERE Roles = ''")
+ sqlStore.GetMaster().Exec("UPDATE Users SET Roles = 'system_user system_admin' WHERE Roles = 'system_admin'")
+ sqlStore.GetMaster().Exec("UPDATE TeamMembers SET Roles = 'team_user' WHERE Roles = ''")
+ sqlStore.GetMaster().Exec("UPDATE TeamMembers SET Roles = 'team_user team_admin' WHERE Roles = 'admin'")
+ sqlStore.GetMaster().Exec("UPDATE ChannelMembers SET Roles = 'channel_user' WHERE Roles = ''")
+ sqlStore.GetMaster().Exec("UPDATE ChannelMembers SET Roles = 'channel_user channel_admin' WHERE Roles = 'admin'")
+
+ //saveSchemaVersion(sqlStore, VERSION_3_5_0)
+ //}
+}
diff --git a/store/sql_user_store.go b/store/sql_user_store.go
index fff78c8f2..574385cd0 100644
--- a/store/sql_user_store.go
+++ b/store/sql_user_store.go
@@ -653,7 +653,7 @@ func (us SqlUserStore) GetSystemAdminProfiles() StoreChannel {
var users []*model.User
- if _, err := us.GetReplica().Select(&users, "SELECT * FROM Users WHERE Roles = :Roles", map[string]interface{}{"Roles": "system_admin"}); err != nil {
+ if _, err := us.GetReplica().Select(&users, "SELECT * FROM Users WHERE Roles LIKE :Roles", map[string]interface{}{"Roles": "%system_admin%"}); err != nil {
result.Err = model.NewLocAppError("SqlUserStore.GetSystemAdminProfiles", "store.sql_user.get_sysadmin_profiles.app_error", nil, err.Error())
} else {
diff --git a/store/sql_user_store_test.go b/store/sql_user_store_test.go
index 753c54a7b..076be1a81 100644
--- a/store/sql_user_store_test.go
+++ b/store/sql_user_store_test.go
@@ -342,7 +342,7 @@ func TestUserStoreGetSystemAdminProfiles(t *testing.T) {
u1 := &model.User{}
u1.Email = model.NewId()
- u1.Roles = model.ROLE_SYSTEM_ADMIN
+ u1.Roles = model.ROLE_SYSTEM_USER.Id + " " + model.ROLE_SYSTEM_ADMIN.Id
Must(store.User().Save(u1))
Must(store.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: u1.Id}))