add listing user sessions cli
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/mayswind/ezbookkeeping/pkg/models"
|
||||
"os"
|
||||
|
||||
"github.com/urfave/cli/v2"
|
||||
@@ -110,6 +112,19 @@ var UserData = &cli.Command{
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "user-session-list",
|
||||
Usage: "List all user sessions",
|
||||
Action: listUserTokens,
|
||||
Flags: []cli.Flag{
|
||||
&cli.StringFlag{
|
||||
Name: "username",
|
||||
Aliases: []string{"n"},
|
||||
Required: true,
|
||||
Usage: "Specific user name",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "user-session-clear",
|
||||
Usage: "Clear user all sessions",
|
||||
@@ -264,6 +279,32 @@ func disableUser2FA(c *cli.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func listUserTokens(c *cli.Context) error {
|
||||
_, err := initializeSystem(c)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
username := c.String("username")
|
||||
tokens, err := clis.UserData.ListUserTokens(c, username)
|
||||
|
||||
if err != nil {
|
||||
log.BootErrorf("[user_data.listUserTokens] error occurs when getting user tokens")
|
||||
return err
|
||||
}
|
||||
|
||||
for i := 0; i < len(tokens); i++ {
|
||||
printTokenInfo(tokens[i])
|
||||
|
||||
if i < len(tokens) - 1 {
|
||||
fmt.Printf("---\n")
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func clearUserTokens(c *cli.Context) error {
|
||||
_, err := initializeSystem(c)
|
||||
|
||||
@@ -349,3 +390,9 @@ func exportUserTransaction(c *cli.Context) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func printTokenInfo(token *models.TokenRecord) {
|
||||
fmt.Printf("[CreatedAt] %s (%d)\n", utils.FormatUnixTimeToLongDateTimeInServerTimezone(token.CreatedUnixTime), token.CreatedUnixTime)
|
||||
fmt.Printf("[ExpiredAt] %s (%d)\n", utils.FormatUnixTimeToLongDateTimeInServerTimezone(token.ExpiredUnixTime), token.ExpiredUnixTime)
|
||||
fmt.Printf("[UserAgent] %s\n", token.UserAgent)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user