| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | package userimport (	"strings"	"github.com/gravitl/netmaker/cli/functions"	"github.com/gravitl/netmaker/models"	"github.com/spf13/cobra")var userUpdateCmd = &cobra.Command{	Use:   "update [USER NAME]",	Args:  cobra.ExactArgs(1),	Short: "Update a user",	Long:  `Update a user`,	Run: func(cmd *cobra.Command, args []string) {		user := &models.User{UserName: args[0]}		if platformID != "" {			user.PlatformRoleID = models.UserRoleID(platformID)		}		if len(networkRoles) > 0 {			netRolesMap := make(map[models.NetworkID]map[models.UserRoleID]struct{})			for netID, netRoles := range networkRoles {				roleMap := make(map[models.UserRoleID]struct{})				for _, roleID := range strings.Split(netRoles, ",") {					roleMap[models.UserRoleID(roleID)] = struct{}{}				}				netRolesMap[models.NetworkID(netID)] = roleMap			}			user.NetworkRoles = netRolesMap		}		if len(groups) > 0 {			grMap := make(map[models.UserGroupID]struct{})			for _, groupID := range groups {				grMap[models.UserGroupID(groupID)] = struct{}{}			}			user.UserGroups = grMap		}		functions.PrettyPrint(functions.UpdateUser(user))	},}func init() {	userUpdateCmd.Flags().StringVar(&password, "password", "", "Password of the user")	userUpdateCmd.Flags().StringVarP(&platformID, "platform-role", "r", "",		"Platform Role of the user; run `nmctl roles list` to see available user roles")	userUpdateCmd.PersistentFlags().StringToStringVarP(&networkRoles, "network-roles", "n", nil,		"Mapping of networkID and list of roles user will be part of (comma separated)")	userUpdateCmd.Flags().BoolVar(&admin, "admin", false, "Make the user an admin ? (deprecated v0.25.0 onwards)")	userUpdateCmd.Flags().StringArrayVarP(&groups, "groups", "g", nil, "List of user groups the user will be part of (comma separated)")	rootCmd.AddCommand(userUpdateCmd)}
 |