add listing user sessions cli

This commit is contained in:
MaysWind
2021-04-17 22:49:58 +08:00
parent 2c5b5839d7
commit bf1db401fe
2 changed files with 71 additions and 0 deletions
+47
View File
@@ -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)
}