diff options
Diffstat (limited to 'app/permissions.go')
-rw-r--r-- | app/permissions.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/permissions.go b/app/permissions.go new file mode 100644 index 000000000..be975e03d --- /dev/null +++ b/app/permissions.go @@ -0,0 +1,25 @@ +// Copyright (c) 2018-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package app + +import ( + "github.com/mattermost/mattermost-server/model" +) + +func (a *App) ResetPermissionsSystem() *model.AppError { + // Purge all roles from the database. + if result := <-a.Srv.Store.Role().PermanentDeleteAll(); result.Err != nil { + return result.Err + } + + // Remove the "System" table entry that marks the advanced permissions migration as done. + if result := <-a.Srv.Store.System().PermanentDeleteByName(ADVANCED_PERMISSIONS_MIGRATION_KEY); result.Err != nil { + return result.Err + } + + // Now that the permissions system has been reset, re-run the migration to reinitialise it. + a.DoAdvancedPermissionsMigration() + + return nil +} |