From 1e7985a87a72bea9a308cf1506dacc828c6e2e1c Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Tue, 13 Sep 2016 12:42:48 -0400 Subject: Modifying permissions system. (#3897) --- store/sql_team_store.go | 2 ++ store/sql_upgrade.go | 16 ++++++++++++++++ store/sql_user_store.go | 2 +- store/sql_user_store_test.go | 2 +- 4 files changed, 20 insertions(+), 2 deletions(-) (limited to 'store') 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})) -- cgit v1.2.3-1-g7c22