summaryrefslogtreecommitdiffstats
path: root/cmd/platform/roles.go
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-12-06 10:49:34 -0500
committerGitHub <noreply@github.com>2016-12-06 10:49:34 -0500
commit026553e4f87bfc647a5c03129752e30fc523fa07 (patch)
treed5403c760151c0fa26fc6d020f7f4326ea9d6f8a /cmd/platform/roles.go
parentdcf11a14d8363c79ab62aefca46834d6daa615ab (diff)
downloadchat-026553e4f87bfc647a5c03129752e30fc523fa07.tar.gz
chat-026553e4f87bfc647a5c03129752e30fc523fa07.tar.bz2
chat-026553e4f87bfc647a5c03129752e30fc523fa07.zip
Improving command line interface (#4689)
Diffstat (limited to 'cmd/platform/roles.go')
-rw-r--r--cmd/platform/roles.go78
1 files changed, 78 insertions, 0 deletions
diff --git a/cmd/platform/roles.go b/cmd/platform/roles.go
new file mode 100644
index 000000000..7b635c5a3
--- /dev/null
+++ b/cmd/platform/roles.go
@@ -0,0 +1,78 @@
+// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+package main
+
+import (
+ "errors"
+
+ "github.com/mattermost/platform/api"
+ "github.com/spf13/cobra"
+)
+
+var rolesCmd = &cobra.Command{
+ Use: "roles",
+ Short: "Management of user roles",
+}
+
+var makeSystemAdminCmd = &cobra.Command{
+ Use: "system_admin [users]",
+ Short: "Set a user as system admin",
+ Long: "Make some users system admins",
+ Example: " roles system_admin user1",
+ RunE: makeSystemAdminCmdF,
+}
+
+var makeMemberCmd = &cobra.Command{
+ Use: "member [users]",
+ Short: "Remove system admin privileges",
+ Long: "Remove system admin privileges from some users.",
+ Example: " roles member user1",
+ RunE: makeMemberCmdF,
+}
+
+func init() {
+ rolesCmd.AddCommand(
+ makeSystemAdminCmd,
+ makeMemberCmd,
+ )
+}
+
+func makeSystemAdminCmdF(cmd *cobra.Command, args []string) error {
+ initDBCommandContextCobra(cmd)
+ if len(args) < 1 {
+ return errors.New("Enter at least one user.")
+ }
+
+ users := getUsersFromUserArgs(args)
+ for i, user := range users {
+ if user == nil {
+ return errors.New("Unable to find user '" + args[i] + "'")
+ }
+
+ if _, err := api.UpdateUserRoles(user, "system_admin system_user"); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func makeMemberCmdF(cmd *cobra.Command, args []string) error {
+ initDBCommandContextCobra(cmd)
+ if len(args) < 1 {
+ return errors.New("Enter at least one user.")
+ }
+
+ users := getUsersFromUserArgs(args)
+ for i, user := range users {
+ if user == nil {
+ return errors.New("Unable to find user '" + args[i] + "'")
+ }
+
+ if _, err := api.UpdateUserRoles(user, "system_user"); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}