Files
atom/modules/auth/controller/permission.go
2023-02-09 14:57:32 +08:00

40 lines
783 B
Go
Executable File

package controller
import (
"atom/providers/jwt"
"atom/providers/log"
"atom/providers/rbac"
"net/http"
"github.com/gin-gonic/gin"
"github.com/rogeecn/gen"
)
type PermissionController struct {
jwt *jwt.JWT
rbac rbac.IRbac
}
func NewPermissionController(
jwt *jwt.JWT,
rbac rbac.IRbac,
) *PermissionController {
return &PermissionController{rbac: rbac, jwt: jwt}
}
func (c *PermissionController) Get(ctx *gin.Context) (string, error) {
claimsCtx, exists := ctx.Get(jwt.CtxKey)
if !exists {
return "", gen.NewBusError(http.StatusBadRequest, http.StatusBadRequest, "Token 获取失败")
}
claims := claimsCtx.(jwt.Claims)
log.Debug("claim: ", claims)
perm, err := c.rbac.JsonPermissionsForUser("Rogee")
if err != nil {
return "", err
}
return perm, nil
}