绩效考核
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.8 KiB

3 years ago
package utils
import (
3 years ago
"gin_server_admin/global"
systemReq "gin_server_admin/model/system/request"
3 years ago
"github.com/gin-gonic/gin"
uuid "github.com/satori/go.uuid"
)
3 years ago
func GetClaims(c *gin.Context) (*systemReq.CustomClaims, error) {
3 years ago
token := c.Request.Header.Get("x-token")
j := NewJWT()
claims, err := j.ParseToken(token)
if err != nil {
global.GVA_LOG.Error("从Gin的Context中获取从jwt解析信息失败, 请检查请求头是否存在x-token且claims是否为规定结构")
}
3 years ago
return claims, err
3 years ago
}
// 从Gin的Context中获取从jwt解析出来的用户ID
func GetUserID(c *gin.Context) uint {
if claims, exists := c.Get("claims"); !exists {
3 years ago
if cl, err := GetClaims(c); err != nil {
3 years ago
return 0
3 years ago
} else {
3 years ago
return cl.ID
}
} else {
waitUse := claims.(*systemReq.CustomClaims)
return waitUse.ID
}
}
// 从Gin的Context中获取从jwt解析出来的用户UUID
func GetUserUuid(c *gin.Context) uuid.UUID {
if claims, exists := c.Get("claims"); !exists {
3 years ago
if cl, err := GetClaims(c); err != nil {
3 years ago
return uuid.UUID{}
3 years ago
} else {
3 years ago
return cl.UUID
}
} else {
waitUse := claims.(*systemReq.CustomClaims)
return waitUse.UUID
}
}
// 从Gin的Context中获取从jwt解析出来的用户角色id
func GetUserAuthorityId(c *gin.Context) string {
if claims, exists := c.Get("claims"); !exists {
3 years ago
if cl, err := GetClaims(c); err != nil {
3 years ago
return ""
3 years ago
} else {
3 years ago
return cl.AuthorityId
}
} else {
waitUse := claims.(*systemReq.CustomClaims)
return waitUse.AuthorityId
}
}
// 从Gin的Context中获取从jwt解析出来的用户角色id
func GetUserInfo(c *gin.Context) *systemReq.CustomClaims {
if claims, exists := c.Get("claims"); !exists {
3 years ago
if cl, err := GetClaims(c); err != nil {
3 years ago
return nil
3 years ago
} else {
3 years ago
return cl
}
} else {
waitUse := claims.(*systemReq.CustomClaims)
return waitUse
}
}