diff options
author | Carlos Tadeu Panato Junior <ctadeu@gmail.com> | 2018-06-11 20:09:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-11 20:09:38 +0200 |
commit | 9517cccab017f67db973ef4a601de68656ce1713 (patch) | |
tree | a52889906f2289774df20de1e830f37b681b606c /store/sqlstore | |
parent | 1b821c7319ccfa153d1bc9a8ffb3f07d3c3a4582 (diff) | |
download | chat-9517cccab017f67db973ef4a601de68656ce1713.tar.gz chat-9517cccab017f67db973ef4a601de68656ce1713.tar.bz2 chat-9517cccab017f67db973ef4a601de68656ce1713.zip |
Relese5.0 merge master 20180611 (#8939)
* Add missing diagnostics (#8911)
* Update diagnostics.go
* Update diagnostics.go
* Fix push notification styling backwards compatibility (#8913)
* MM-10803: remove premature user sanitization on deactivation (#8926)
* remove unused UpdateNonSSOUserActive
* MM-10803: stop prematurely sanitizing users on deactivate
This change was preceded by the removal of UpdateNonSSOUserActive to
ensure there are no APIs relying on the sanitized return value.
* MM-10803: test websocket events after UpdateUserActive
* MM-10264: Adds system scheme to permissions import/export. (#8924)
* MM-10264: Adds system scheme to permissions import/export.
* MM-10264: Switches to more likely unique name.
* MM-10264: Changed collision prevention string.
* MM-10264: Rolls back created schemes in all error cases.
* MM-10264: Test fix for more rollback cases.
* Fix idempotency of scheme migrations. (#8935)
This fixes the issue where if the migration tries to migrate an already
scheme-aware member object it would end up removing it's scheme-derived
roles.
Instead, only if the member object is unmigrated do we default to
setting the scheme-derived role booleans to false. We tell if it is an
unmigrated member object by checking if the booleans are set to null.
Diffstat (limited to 'store/sqlstore')
-rw-r--r-- | store/sqlstore/channel_store.go | 8 | ||||
-rw-r--r-- | store/sqlstore/team_store.go | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/store/sqlstore/channel_store.go b/store/sqlstore/channel_store.go index 5f336d904..476665514 100644 --- a/store/sqlstore/channel_store.go +++ b/store/sqlstore/channel_store.go @@ -1733,8 +1733,12 @@ func (s SqlChannelStore) MigrateChannelMembers(fromChannelId string, fromUserId for _, member := range channelMembers { roles := strings.Fields(member.Roles) var newRoles []string - member.SchemeAdmin = sql.NullBool{Bool: false, Valid: true} - member.SchemeUser = sql.NullBool{Bool: false, Valid: true} + if !member.SchemeAdmin.Valid { + member.SchemeAdmin = sql.NullBool{Bool: false, Valid: true} + } + if !member.SchemeUser.Valid { + member.SchemeUser = sql.NullBool{Bool: false, Valid: true} + } for _, role := range roles { if role == model.CHANNEL_ADMIN_ROLE_ID { member.SchemeAdmin = sql.NullBool{Bool: true, Valid: true} diff --git a/store/sqlstore/team_store.go b/store/sqlstore/team_store.go index fe4c09175..22f0bdb29 100644 --- a/store/sqlstore/team_store.go +++ b/store/sqlstore/team_store.go @@ -755,8 +755,12 @@ func (s SqlTeamStore) MigrateTeamMembers(fromTeamId string, fromUserId string) s for _, member := range teamMembers { roles := strings.Fields(member.Roles) var newRoles []string - member.SchemeAdmin = sql.NullBool{Bool: false, Valid: true} - member.SchemeUser = sql.NullBool{Bool: false, Valid: true} + if !member.SchemeAdmin.Valid { + member.SchemeAdmin = sql.NullBool{Bool: false, Valid: true} + } + if !member.SchemeUser.Valid { + member.SchemeUser = sql.NullBool{Bool: false, Valid: true} + } for _, role := range roles { if role == model.TEAM_ADMIN_ROLE_ID { member.SchemeAdmin = sql.NullBool{Bool: true, Valid: true} |