76 lines
1.5 KiB
Go
76 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
systemCli "github.com/crusttech/crust/system/cli"
|
|
)
|
|
|
|
func setupCobra() {
|
|
// Main command.
|
|
rootCmd := &cobra.Command{Use: "system-cli"}
|
|
|
|
// User management commands.
|
|
var cmdUsers = &cobra.Command{
|
|
Use: "users",
|
|
Short: "User management",
|
|
}
|
|
rootCmd.AddCommand(cmdUsers)
|
|
|
|
// List users.
|
|
var cmdUsersList = &cobra.Command{
|
|
Use: "list",
|
|
Short: "List users",
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
systemCli.UsersList()
|
|
},
|
|
}
|
|
cmdUsers.AddCommand(cmdUsersList)
|
|
|
|
// Assign role to user.
|
|
var cmdUserAssignRole = &cobra.Command{
|
|
Use: "roleadd [userID] [roleID]",
|
|
Short: "Assign role to user",
|
|
Args: cobra.ExactArgs(2),
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
systemCli.RoleAssignUser(args[1], args[0])
|
|
},
|
|
}
|
|
cmdUsers.AddCommand(cmdUserAssignRole)
|
|
|
|
// Role management commands.
|
|
var cmdRole = &cobra.Command{
|
|
Use: "roles",
|
|
Short: "Role management",
|
|
}
|
|
rootCmd.AddCommand(cmdRole)
|
|
|
|
// Reset roles.
|
|
var cmdRolesReset = &cobra.Command{
|
|
Use: "reset",
|
|
Short: "Reset roles",
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
systemCli.RolesReset()
|
|
},
|
|
}
|
|
cmdRole.AddCommand(cmdRolesReset)
|
|
|
|
// Add user to role.
|
|
var cmdRoleAddUser = &cobra.Command{
|
|
Use: "useradd [roleID] [userID]",
|
|
Short: "Add user to role",
|
|
Args: cobra.ExactArgs(2),
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
systemCli.RoleAssignUser(args[0], args[1])
|
|
},
|
|
}
|
|
cmdRole.AddCommand(cmdRoleAddUser)
|
|
|
|
err := rootCmd.Execute()
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
}
|