diff options
author | George Goldberg <george@gberg.me> | 2018-04-18 10:18:07 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-18 10:18:07 +0100 |
commit | b13a228b0451098ea32933a36fe64566e366583d (patch) | |
tree | 569aa0c6c5f273b806b4c3e0c59801204916492c /store/sqlstore | |
parent | a1882d4004ce624dad1b8624804e974f209efe8d (diff) | |
download | chat-b13a228b0451098ea32933a36fe64566e366583d.tar.gz chat-b13a228b0451098ea32933a36fe64566e366583d.tar.bz2 chat-b13a228b0451098ea32933a36fe64566e366583d.zip |
MM-10121: CLI command to reset permissions system to default state. (#8637)
* MM-10121: CLI command to reset permissions system to default state.
* Review comment.
Diffstat (limited to 'store/sqlstore')
-rw-r--r-- | store/sqlstore/role_supplier.go | 10 | ||||
-rw-r--r-- | store/sqlstore/system_store.go | 11 |
2 files changed, 21 insertions, 0 deletions
diff --git a/store/sqlstore/role_supplier.go b/store/sqlstore/role_supplier.go index 828f4484e..ddbdaca52 100644 --- a/store/sqlstore/role_supplier.go +++ b/store/sqlstore/role_supplier.go @@ -174,3 +174,13 @@ func (s *SqlSupplier) RoleGetByNames(ctx context.Context, names []string, hints return result } + +func (s *SqlSupplier) RolePermanentDeleteAll(ctx context.Context, hints ...store.LayeredStoreHint) *store.LayeredStoreSupplierResult { + result := store.NewSupplierResult() + + if _, err := s.GetMaster().Exec("DELETE FROM Roles"); err != nil { + result.Err = model.NewAppError("SqlRoleStore.PermanentDeleteAll", "store.sql_role.permanent_delete_all.app_error", nil, err.Error(), http.StatusInternalServerError) + } + + return result +} diff --git a/store/sqlstore/system_store.go b/store/sqlstore/system_store.go index 496ff2ced..4065bb955 100644 --- a/store/sqlstore/system_store.go +++ b/store/sqlstore/system_store.go @@ -85,3 +85,14 @@ func (s SqlSystemStore) GetByName(name string) store.StoreChannel { result.Data = &system }) } + +func (s SqlSystemStore) PermanentDeleteByName(name string) store.StoreChannel { + return store.Do(func(result *store.StoreResult) { + var system model.System + if _, err := s.GetReplica().Exec("DELETE FROM Systems WHERE Name = :Name", map[string]interface{}{"Name": name}); err != nil { + result.Err = model.NewAppError("SqlSystemStore.PermanentDeleteByName", "store.sql_system.permanent_delete_by_name.app_error", nil, "", http.StatusInternalServerError) + } + + result.Data = &system + }) +} |