wip
This commit is contained in:
44
mangezmieux-backend/internal/users/middleware.go
Normal file
44
mangezmieux-backend/internal/users/middleware.go
Normal file
@@ -0,0 +1,44 @@
|
||||
package users
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gin-gonic/gin"
|
||||
model2 "mangezmieux-backend/internal/acl/model"
|
||||
"mangezmieux-backend/internal/acl/service"
|
||||
"mangezmieux-backend/internal/jwt"
|
||||
"mangezmieux-backend/internal/middleware"
|
||||
"mangezmieux-backend/internal/users/model"
|
||||
service2 "mangezmieux-backend/internal/users/service"
|
||||
)
|
||||
|
||||
var AuthMiddleware = newMiddleware()
|
||||
|
||||
type internalAuthMiddleware struct {
|
||||
Service *service2.Service
|
||||
RoleService service.Service
|
||||
UserService service.Service
|
||||
}
|
||||
|
||||
func newMiddleware() *internalAuthMiddleware {
|
||||
return &internalAuthMiddleware{}
|
||||
}
|
||||
|
||||
func (m *internalAuthMiddleware) GinMiddleware(jwtService *jwt.Service) gin.HandlerFunc {
|
||||
return middleware.GetAuthenticationMiddleware(m, jwtService)
|
||||
}
|
||||
|
||||
// delegate useful for deferred binding (when the middleware is installed, GinMiddleware() is called, the service m.Service is not yet created :-( )
|
||||
// see cmd/app.go for deferred binding at the end.
|
||||
func (m *internalAuthMiddleware) Introspect(token string) (*model.User, error) {
|
||||
return m.Service.Introspect(token)
|
||||
}
|
||||
|
||||
// delegate useful for deferred binding (when the middleware is installed, GinMiddleware() is called, the service m.Service is not yet created :-( )
|
||||
// see cmd/app.go for deferred binding at the end.
|
||||
func (m *internalAuthMiddleware) GetRole(ctx context.Context, user *model.User) (*model2.UserRight, error) {
|
||||
return m.RoleService.GetRoleForCurrentUser(user)
|
||||
}
|
||||
|
||||
func (m *internalAuthMiddleware) GetAllRole(ctx context.Context) ([]*model2.Role, error) {
|
||||
return m.RoleService.GetAllRole()
|
||||
}
|
||||
Reference in New Issue
Block a user