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