Skip to content

Commit 409a7b7

Browse files
committed
STAC-23049: show roles for a user session
1 parent 67af720 commit 409a7b7

File tree

3 files changed

+56
-0
lines changed

3 files changed

+56
-0
lines changed

cmd/sts.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ func STSCommand(cli *di.Deps) *cobra.Command {
2929
cmd.AddCommand(TopicCommand(cli))
3030
cmd.AddCommand(TopologySyncCommand(cli))
3131
cmd.AddCommand(AgentCommand(cli))
32+
cmd.AddCommand(UserSessionCommand(cli))
3233

3334
return cmd
3435
}

cmd/usersession.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package cmd
2+
3+
import (
4+
"github.com/spf13/cobra"
5+
"github.com/stackvista/stackstate-cli/cmd/usersession"
6+
"github.com/stackvista/stackstate-cli/internal/di"
7+
)
8+
9+
func UserSessionCommand(deps *di.Deps) *cobra.Command {
10+
cmd := &cobra.Command{
11+
Use: "user-session",
12+
Short: "Inspect user session",
13+
Long: "Inspect user session.",
14+
}
15+
cmd.AddCommand(usersession.GetUserSessionRolesCommand(deps))
16+
return cmd
17+
}

cmd/usersession/usersession.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package usersession
2+
3+
import (
4+
"github.com/spf13/cobra"
5+
"github.com/stackvista/stackstate-cli/generated/stackstate_api"
6+
"github.com/stackvista/stackstate-cli/internal/common"
7+
"github.com/stackvista/stackstate-cli/internal/di"
8+
)
9+
10+
func GetUserSessionRolesCommand(cli *di.Deps) *cobra.Command {
11+
cmd := &cobra.Command{
12+
Use: "roles",
13+
Short: "Get user roles",
14+
Long: "Get roles for current user session.",
15+
RunE: cli.CmdRunEWithApi(RunUserSessionRolesCommand),
16+
}
17+
18+
return cmd
19+
}
20+
21+
func RunUserSessionRolesCommand(cmd *cobra.Command, cli *di.Deps, api *stackstate_api.APIClient, serverInfo *stackstate_api.ServerInfo) common.CLIError {
22+
roles, resp, err := api.UserSessionApi.GetUserSessionAvailableRoles(cli.Context).Execute()
23+
if err != nil {
24+
return common.NewResponseError(err, resp)
25+
}
26+
27+
if cli.IsJson() {
28+
cli.Printer.PrintJson(map[string]interface{}{
29+
"roles": roles.Roles,
30+
})
31+
} else {
32+
for _, role := range roles.Roles {
33+
cli.Printer.PrintLn(role)
34+
}
35+
}
36+
37+
return nil
38+
}

0 commit comments

Comments
 (0)