30 lines
895 B
Go
30 lines
895 B
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
|
|
"kra/internal/modules/system/biz"
|
|
)
|
|
|
|
type AccessControlService struct{ uc *biz.AccessControlUsecase }
|
|
|
|
func NewAccessControlService(uc *biz.AccessControlUsecase) *AccessControlService {
|
|
return &AccessControlService{uc: uc}
|
|
}
|
|
|
|
func (s *AccessControlService) Authorize(ctx context.Context, authorityID uint, path, method string) (bool, error) {
|
|
return s.uc.Authorize(ctx, authorityID, path, method)
|
|
}
|
|
|
|
func (s *AccessControlService) ResolveDataScope(ctx context.Context, authorityID, userID uint) (biz.DataScope, error) {
|
|
return s.uc.ResolveDataScope(ctx, authorityID, userID)
|
|
}
|
|
|
|
func (s *AccessControlService) ContextWithDataScope(ctx context.Context, authorityID, userID uint) (context.Context, error) {
|
|
scope, err := s.ResolveDataScope(ctx, authorityID, userID)
|
|
if err != nil {
|
|
return ctx, err
|
|
}
|
|
return biz.NewDataScopeContext(ctx, scope), nil
|
|
}
|