123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- package user
- import (
- "fmt"
- "os"
- "strings"
- "github.com/gravitl/netmaker/cli/cmd/commons"
- "github.com/gravitl/netmaker/cli/functions"
- "github.com/guumaster/tablewriter"
- "github.com/spf13/cobra"
- )
- var userGroupCmd = &cobra.Command{
- Use: "group",
- Args: cobra.NoArgs,
- Short: "Manage User Groups",
- Long: `Manage User Groups`,
- }
- var userGroupListCmd = &cobra.Command{
- Use: "list",
- Args: cobra.NoArgs,
- Short: "List all user groups",
- Long: `List all user groups`,
- Run: func(cmd *cobra.Command, args []string) {
- data := functions.ListUserGrps()
- switch commons.OutputFormat {
- case commons.JsonOutput:
- functions.PrettyPrint(data)
- default:
- table := tablewriter.NewWriter(os.Stdout)
- h := []string{"ID", "MetaData", "Network Roles"}
- table.SetHeader(h)
- for _, d := range data {
- roleInfoStr := ""
- for netID, netRoleMap := range d.NetworkRoles {
- roleList := []string{}
- for roleID := range netRoleMap {
- roleList = append(roleList, roleID.String())
- }
- roleInfoStr += fmt.Sprintf("[%s]: %s", netID, strings.Join(roleList, ","))
- }
- e := []string{d.ID.String(), d.MetaData, roleInfoStr}
- table.Append(e)
- }
- table.Render()
- }
- },
- }
- var userGroupCreateCmd = &cobra.Command{
- Use: "create",
- Args: cobra.NoArgs,
- Short: "create user group",
- Long: `create user group`,
- Run: func(cmd *cobra.Command, args []string) {
- fmt.Println("CLI doesn't support creation of groups currently. Visit the dashboard to create one or refer to our api documentation https://docs.netmaker.io/api")
- },
- }
- var userGroupDeleteCmd = &cobra.Command{
- Use: "delete [groupID]",
- Args: cobra.ExactArgs(1),
- Short: "delete user group",
- Long: `delete user group`,
- Run: func(cmd *cobra.Command, args []string) {
- resp := functions.DeleteUserGrp(args[0])
- if resp != nil {
- fmt.Println(resp.Message)
- }
- },
- }
- var userGroupGetCmd = &cobra.Command{
- Use: "get [groupID]",
- Args: cobra.ExactArgs(1),
- Short: "get user group",
- Long: `get user group`,
- Run: func(cmd *cobra.Command, args []string) {
- data := functions.GetUserGrp(args[0])
- switch commons.OutputFormat {
- case commons.JsonOutput:
- functions.PrettyPrint(data)
- default:
- table := tablewriter.NewWriter(os.Stdout)
- h := []string{"ID", "MetaData", "Network Roles"}
- table.SetHeader(h)
- roleInfoStr := ""
- for netID, netRoleMap := range data.NetworkRoles {
- roleList := []string{}
- for roleID := range netRoleMap {
- roleList = append(roleList, roleID.String())
- }
- roleInfoStr += fmt.Sprintf("[%s]: %s", netID, strings.Join(roleList, ","))
- }
- e := []string{data.ID.String(), data.MetaData, roleInfoStr}
- table.Append(e)
- table.Render()
- }
- },
- }
- func init() {
- rootCmd.AddCommand(userGroupCmd)
- // list roles cmd
- userGroupCmd.AddCommand(userGroupListCmd)
- // create roles cmd
- userGroupCmd.AddCommand(userGroupCreateCmd)
- // delete role cmd
- userGroupCmd.AddCommand(userGroupDeleteCmd)
- // Get Role
- userGroupCmd.AddCommand(userGroupGetCmd)
- }
|