github.com/spline-fu/mattermost-server@v4.10.10+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  }