github.com/gigforks/mattermost-server@v4.9.1-0.20180619094218-800d97fa55d0+incompatible/cmd/commands/roles.go (about) 1 // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. 2 // See License.txt for license information. 3 4 package commands 5 6 import ( 7 "errors" 8 9 "github.com/mattermost/mattermost-server/cmd" 10 "github.com/spf13/cobra" 11 ) 12 13 var RolesCmd = &cobra.Command{ 14 Use: "roles", 15 Short: "Management of user roles", 16 } 17 18 var MakeSystemAdminCmd = &cobra.Command{ 19 Use: "system_admin [users]", 20 Short: "Set a user as system admin", 21 Long: "Make some users system admins", 22 Example: " roles system_admin user1", 23 RunE: makeSystemAdminCmdF, 24 } 25 26 var MakeMemberCmd = &cobra.Command{ 27 Use: "member [users]", 28 Short: "Remove system admin privileges", 29 Long: "Remove system admin privileges from some users.", 30 Example: " roles member user1", 31 RunE: makeMemberCmdF, 32 } 33 34 func init() { 35 RolesCmd.AddCommand( 36 MakeSystemAdminCmd, 37 MakeMemberCmd, 38 ) 39 cmd.RootCmd.AddCommand(RolesCmd) 40 } 41 42 func makeSystemAdminCmdF(command *cobra.Command, args []string) error { 43 a, err := cmd.InitDBCommandContextCobra(command) 44 if err != nil { 45 return err 46 } 47 defer a.Shutdown() 48 49 if len(args) < 1 { 50 return errors.New("Enter at least one user.") 51 } 52 53 users := getUsersFromUserArgs(a, args) 54 for i, user := range users { 55 if user == nil { 56 return errors.New("Unable to find user '" + args[i] + "'") 57 } 58 59 if _, err := a.UpdateUserRoles(user.Id, "system_admin system_user", true); err != nil { 60 return err 61 } 62 } 63 64 return nil 65 } 66 67 func makeMemberCmdF(command *cobra.Command, args []string) error { 68 a, err := cmd.InitDBCommandContextCobra(command) 69 if err != nil { 70 return err 71 } 72 defer a.Shutdown() 73 74 if len(args) < 1 { 75 return errors.New("Enter at least one user.") 76 } 77 78 users := getUsersFromUserArgs(a, args) 79 for i, user := range users { 80 if user == nil { 81 return errors.New("Unable to find user '" + args[i] + "'") 82 } 83 84 if _, err := a.UpdateUserRoles(user.Id, "system_user", true); err != nil { 85 return err 86 } 87 } 88 89 return nil 90 }