mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-14 21:07:02 +08:00
fix role and groups command
This commit is contained in:
@@ -46,7 +46,7 @@ func init() {
|
|||||||
"Platform Role of the user; run `nmctl roles list` to see available user roles")
|
"Platform Role of the user; run `nmctl roles list` to see available user roles")
|
||||||
userCreateCmd.MarkFlagRequired("name")
|
userCreateCmd.MarkFlagRequired("name")
|
||||||
userCreateCmd.MarkFlagRequired("password")
|
userCreateCmd.MarkFlagRequired("password")
|
||||||
userCreateCmd.PersistentFlags().StringToStringVarP(&networkRoles, "network-roles", "n", make(map[string]string),
|
userCreateCmd.PersistentFlags().StringToStringVarP(&networkRoles, "network-roles", "n", nil,
|
||||||
"Mapping of networkID and list of roles user will be part of (comma separated)")
|
"Mapping of networkID and list of roles user will be part of (comma separated)")
|
||||||
userCreateCmd.Flags().BoolVar(&admin, "admin", false, "Make the user an admin ? (deprecated v0.25.0 onwards)")
|
userCreateCmd.Flags().BoolVar(&admin, "admin", false, "Make the user an admin ? (deprecated v0.25.0 onwards)")
|
||||||
userCreateCmd.Flags().StringArrayVarP(&groups, "groups", "g", nil, "List of user groups the user will be part of (comma separated)")
|
userCreateCmd.Flags().StringArrayVarP(&groups, "groups", "g", nil, "List of user groups the user will be part of (comma separated)")
|
||||||
|
@@ -7,7 +7,6 @@ import (
|
|||||||
|
|
||||||
"github.com/gravitl/netmaker/cli/cmd/commons"
|
"github.com/gravitl/netmaker/cli/cmd/commons"
|
||||||
"github.com/gravitl/netmaker/cli/functions"
|
"github.com/gravitl/netmaker/cli/functions"
|
||||||
"github.com/gravitl/netmaker/models"
|
|
||||||
"github.com/guumaster/tablewriter"
|
"github.com/guumaster/tablewriter"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
@@ -30,7 +29,6 @@ var userGroupListCmd = &cobra.Command{
|
|||||||
Long: `List all user groups`,
|
Long: `List all user groups`,
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
data := functions.ListUserGrps()
|
data := functions.ListUserGrps()
|
||||||
userGrps := data.Response.([]models.UserGroup)
|
|
||||||
switch commons.OutputFormat {
|
switch commons.OutputFormat {
|
||||||
case commons.JsonOutput:
|
case commons.JsonOutput:
|
||||||
functions.PrettyPrint(data)
|
functions.PrettyPrint(data)
|
||||||
@@ -38,7 +36,7 @@ var userGroupListCmd = &cobra.Command{
|
|||||||
table := tablewriter.NewWriter(os.Stdout)
|
table := tablewriter.NewWriter(os.Stdout)
|
||||||
h := []string{"ID", "MetaData", "Network Roles"}
|
h := []string{"ID", "MetaData", "Network Roles"}
|
||||||
table.SetHeader(h)
|
table.SetHeader(h)
|
||||||
for _, d := range userGrps {
|
for _, d := range data {
|
||||||
|
|
||||||
roleInfoStr := ""
|
roleInfoStr := ""
|
||||||
for netID, netRoleMap := range d.NetworkRoles {
|
for netID, netRoleMap := range d.NetworkRoles {
|
||||||
@@ -85,9 +83,25 @@ var userGroupGetCmd = &cobra.Command{
|
|||||||
Short: "get user group",
|
Short: "get user group",
|
||||||
Long: `get user group`,
|
Long: `get user group`,
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
resp := functions.GetUserGrp(groupID)
|
data := functions.GetUserGrp(groupID)
|
||||||
if resp != nil {
|
switch commons.OutputFormat {
|
||||||
fmt.Println(resp.Message)
|
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()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@@ -2,7 +2,6 @@ package user
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/gravitl/netmaker/cli/cmd/commons"
|
"github.com/gravitl/netmaker/cli/cmd/commons"
|
||||||
@@ -29,7 +28,7 @@ var userListCmd = &cobra.Command{
|
|||||||
for gID := range d.UserGroups {
|
for gID := range d.UserGroups {
|
||||||
g = append(g, gID.String())
|
g = append(g, gID.String())
|
||||||
}
|
}
|
||||||
table.Append([]string{d.UserName, d.PlatformRoleID.String(), strconv.FormatBool(d.IsAdmin), strings.Join(g, ",")})
|
table.Append([]string{d.UserName, d.PlatformRoleID.String(), strings.Join(g, ",")})
|
||||||
}
|
}
|
||||||
table.Render()
|
table.Render()
|
||||||
}
|
}
|
||||||
|
@@ -7,7 +7,6 @@ import (
|
|||||||
|
|
||||||
"github.com/gravitl/netmaker/cli/cmd/commons"
|
"github.com/gravitl/netmaker/cli/cmd/commons"
|
||||||
"github.com/gravitl/netmaker/cli/functions"
|
"github.com/gravitl/netmaker/cli/functions"
|
||||||
"github.com/gravitl/netmaker/models"
|
|
||||||
"github.com/guumaster/tablewriter"
|
"github.com/guumaster/tablewriter"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
@@ -31,7 +30,6 @@ var userRoleListCmd = &cobra.Command{
|
|||||||
Long: `List all user roles`,
|
Long: `List all user roles`,
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
data := functions.ListUserRoles()
|
data := functions.ListUserRoles()
|
||||||
userRoles := data.Response.([]models.UserRolePermissionTemplate)
|
|
||||||
switch commons.OutputFormat {
|
switch commons.OutputFormat {
|
||||||
case commons.JsonOutput:
|
case commons.JsonOutput:
|
||||||
functions.PrettyPrint(data)
|
functions.PrettyPrint(data)
|
||||||
@@ -43,7 +41,7 @@ var userRoleListCmd = &cobra.Command{
|
|||||||
h = append(h, "Network")
|
h = append(h, "Network")
|
||||||
}
|
}
|
||||||
table.SetHeader(h)
|
table.SetHeader(h)
|
||||||
for _, d := range userRoles {
|
for _, d := range data {
|
||||||
e := []string{d.ID.String(), strconv.FormatBool(d.Default), strconv.FormatBool(d.DenyDashboardAccess), strconv.FormatBool(d.FullAccess)}
|
e := []string{d.ID.String(), strconv.FormatBool(d.Default), strconv.FormatBool(d.DenyDashboardAccess), strconv.FormatBool(d.FullAccess)}
|
||||||
if !platformRoles {
|
if !platformRoles {
|
||||||
e = append(e, d.NetworkID.String())
|
e = append(e, d.NetworkID.String())
|
||||||
@@ -84,9 +82,24 @@ var userRoleGetCmd = &cobra.Command{
|
|||||||
Short: "get user role",
|
Short: "get user role",
|
||||||
Long: `get user role`,
|
Long: `get user role`,
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
resp := functions.GetUserRole(roleID)
|
d := functions.GetUserRole(roleID)
|
||||||
if resp != nil {
|
switch commons.OutputFormat {
|
||||||
fmt.Println(resp.Message)
|
case commons.JsonOutput:
|
||||||
|
functions.PrettyPrint(d)
|
||||||
|
default:
|
||||||
|
table := tablewriter.NewWriter(os.Stdout)
|
||||||
|
h := []string{"ID", "Default Role", "Dashboard Access", "Full Access"}
|
||||||
|
|
||||||
|
if d.NetworkID != "" {
|
||||||
|
h = append(h, "Network")
|
||||||
|
}
|
||||||
|
table.SetHeader(h)
|
||||||
|
e := []string{d.ID.String(), strconv.FormatBool(d.Default), strconv.FormatBool(!d.DenyDashboardAccess), strconv.FormatBool(d.FullAccess)}
|
||||||
|
if !platformRoles {
|
||||||
|
e = append(e, d.NetworkID.String())
|
||||||
|
}
|
||||||
|
table.Append(e)
|
||||||
|
table.Render()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@@ -86,7 +86,7 @@ func GetCurrentContext() (name string, ctx Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.Fatalf("No current context set, do so via `netmaker context use <name>`")
|
log.Fatalf("No current context set, do so via `nmctl context use <name>`")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
package functions
|
package functions
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
@@ -37,24 +38,37 @@ func ListUsers() *[]models.ReturnUser {
|
|||||||
return request[[]models.ReturnUser](http.MethodGet, "/api/users", nil)
|
return request[[]models.ReturnUser](http.MethodGet, "/api/users", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func ListUserRoles() *models.SuccessResponse {
|
func ListUserRoles() (roles []models.UserRolePermissionTemplate) {
|
||||||
return request[models.SuccessResponse](http.MethodGet, "/api/v1/users/roles", nil)
|
resp := request[models.SuccessResponse](http.MethodGet, "/api/v1/users/roles", nil)
|
||||||
|
d, _ := json.Marshal(resp.Response)
|
||||||
|
json.Unmarshal(d, &roles)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func DeleteUserRole(roleID string) *models.SuccessResponse {
|
func DeleteUserRole(roleID string) *models.SuccessResponse {
|
||||||
return request[models.SuccessResponse](http.MethodDelete, fmt.Sprintf("/api/v1/users/role?role_id=%s", roleID), nil)
|
return request[models.SuccessResponse](http.MethodDelete, fmt.Sprintf("/api/v1/users/role?role_id=%s", roleID), nil)
|
||||||
}
|
}
|
||||||
func GetUserRole(roleID string) *models.SuccessResponse {
|
func GetUserRole(roleID string) (role models.UserRolePermissionTemplate) {
|
||||||
return request[models.SuccessResponse](http.MethodGet, fmt.Sprintf("/api/v1/users/role?role_id=%s", roleID), nil)
|
resp := request[models.SuccessResponse](http.MethodGet, fmt.Sprintf("/api/v1/users/role?role_id=%s", roleID), nil)
|
||||||
|
d, _ := json.Marshal(resp.Response)
|
||||||
|
json.Unmarshal(d, &role)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func ListUserGrps() *models.SuccessResponse {
|
func ListUserGrps() (groups []models.UserGroup) {
|
||||||
return request[models.SuccessResponse](http.MethodGet, "/api/v1/users/groups", nil)
|
resp := request[models.SuccessResponse](http.MethodGet, "/api/v1/users/groups", nil)
|
||||||
|
d, _ := json.Marshal(resp.Response)
|
||||||
|
json.Unmarshal(d, &groups)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func DeleteUserGrp(grpID string) *models.SuccessResponse {
|
func DeleteUserGrp(grpID string) *models.SuccessResponse {
|
||||||
return request[models.SuccessResponse](http.MethodDelete, fmt.Sprintf("/api/v1/users/group?group_id=%s", grpID), nil)
|
return request[models.SuccessResponse](http.MethodDelete, fmt.Sprintf("/api/v1/users/group?group_id=%s", grpID), nil)
|
||||||
}
|
}
|
||||||
func GetUserGrp(grpID string) *models.SuccessResponse {
|
|
||||||
return request[models.SuccessResponse](http.MethodGet, fmt.Sprintf("/api/v1/users/group?group_id=%s", grpID), nil)
|
func GetUserGrp(grpID string) (group models.UserGroup) {
|
||||||
|
resp := request[models.SuccessResponse](http.MethodGet, fmt.Sprintf("/api/v1/users/group?group_id=%s", grpID), nil)
|
||||||
|
d, _ := json.Marshal(resp.Response)
|
||||||
|
json.Unmarshal(d, &group)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user