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  }