update.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package network_user
  2. import (
  3. "fmt"
  4. "strings"
  5. "github.com/gravitl/netmaker/cli/functions"
  6. "github.com/gravitl/netmaker/models/promodels"
  7. "github.com/spf13/cobra"
  8. )
  9. var networkuserUpdateCmd = &cobra.Command{
  10. Use: "update [NETWORK NAME]",
  11. Args: cobra.ExactArgs(1),
  12. Short: "Update a network user",
  13. Long: `Update a network user`,
  14. Run: func(cmd *cobra.Command, args []string) {
  15. user := &promodels.NetworkUser{
  16. AccessLevel: accessLevel,
  17. ClientLimit: clientLimit,
  18. NodeLimit: nodeLimit, ID: promodels.NetworkUserID(id),
  19. }
  20. if clients != "" {
  21. user.Clients = strings.Split(clients, ",")
  22. }
  23. if nodes != "" {
  24. user.Nodes = strings.Split(nodes, ",")
  25. }
  26. functions.UpdateNetworkUser(args[0], user)
  27. fmt.Println("Success")
  28. },
  29. }
  30. func init() {
  31. networkuserUpdateCmd.Flags().IntVar(&accessLevel, "access_level", 0, "Custom access level")
  32. networkuserUpdateCmd.Flags().IntVar(&clientLimit, "client_limit", 0, "Maximum number of external clients that can be created")
  33. networkuserUpdateCmd.Flags().IntVar(&nodeLimit, "node_limit", 999999999, "Maximum number of nodes that can be attached to a network")
  34. networkuserUpdateCmd.Flags().StringVar(&clients, "clients", "", "Access to list of external clients (comma separated)")
  35. networkuserUpdateCmd.Flags().StringVar(&nodes, "nodes", "", "Access to list of nodes (comma separated)")
  36. networkuserUpdateCmd.Flags().StringVar(&id, "id", "", "ID of the network user")
  37. networkuserUpdateCmd.MarkFlagRequired("id")
  38. rootCmd.AddCommand(networkuserUpdateCmd)
  39. }