mirror of
https://github.com/VaalaCat/frp-panel.git
synced 2025-09-26 19:31:18 +08:00
48 lines
785 B
Go
48 lines
785 B
Go
package common
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
|
|
"github.com/VaalaCat/frp-panel/defs"
|
|
"github.com/VaalaCat/frp-panel/models"
|
|
)
|
|
|
|
func GetUserInfo(c context.Context) models.UserInfo {
|
|
val := c.Value(defs.UserInfoKey)
|
|
if val == nil {
|
|
return nil
|
|
}
|
|
|
|
u, ok := val.(*models.UserEntity)
|
|
if !ok {
|
|
return nil
|
|
}
|
|
|
|
return u
|
|
}
|
|
|
|
func GetTokenPermission(c context.Context) ([]defs.APIPermission, error) {
|
|
val := c.Value(defs.TokenPayloadKey_Permissions)
|
|
if val == nil {
|
|
return nil, nil
|
|
}
|
|
|
|
raw, err := json.Marshal(val)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
perms := []defs.APIPermission{}
|
|
err = json.Unmarshal(raw, &perms)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return perms, nil
|
|
}
|
|
|
|
func GetTokenString(c context.Context) string {
|
|
return c.Value(defs.TokenKey).(string)
|
|
}
|