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 }