github.com/coincircle/mattermost-server@v4.8.1-0.20180321182714-9d701c704416+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  
    48  	if len(args) < 1 {
    49  		return errors.New("Enter at least one user.")
    50  	}
    51  
    52  	users := getUsersFromUserArgs(a, args)
    53  	for i, user := range users {
    54  		if user == nil {
    55  			return errors.New("Unable to find user '" + args[i] + "'")
    56  		}
    57  
    58  		if _, err := a.UpdateUserRoles(user.Id, "system_admin system_user", true); err != nil {
    59  			return err
    60  		}
    61  	}
    62  
    63  	return nil
    64  }
    65  
    66  func makeMemberCmdF(command *cobra.Command, args []string) error {
    67  	a, err := cmd.InitDBCommandContextCobra(command)
    68  	if err != nil {
    69  		return err
    70  	}
    71  
    72  	if len(args) < 1 {
    73  		return errors.New("Enter at least one user.")
    74  	}
    75  
    76  	users := getUsersFromUserArgs(a, args)
    77  	for i, user := range users {
    78  		if user == nil {
    79  			return errors.New("Unable to find user '" + args[i] + "'")
    80  		}
    81  
    82  		if _, err := a.UpdateUserRoles(user.Id, "system_user", true); err != nil {
    83  			return err
    84  		}
    85  	}
    86  
    87  	return nil
    88  }