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.

53 lines
1.9 KiB

package service
import (
"context"
"gofaster/internal/auth/model"
"gofaster/internal/auth/repository"
)
type PermissionService struct {
permissionRepo repository.PermissionRepository
}
func NewPermissionService(permissionRepo repository.PermissionRepository) *PermissionService {
return &PermissionService{
permissionRepo: permissionRepo,
}
}
// GetPermissionByID 根据ID获取权限
func (s *PermissionService) GetPermissionByID(ctx context.Context, id uint) (*model.Permission, error) {
return s.permissionRepo.GetByID(ctx, id)
}
// ListPermissions 获取权限列表
func (s *PermissionService) ListPermissions(ctx context.Context, offset, limit int) ([]*model.Permission, int64, error) {
return s.permissionRepo.List(ctx, offset, limit)
}
// GetPermissionsByBackendRoute 根据后端路由获取权限
func (s *PermissionService) GetPermissionsByBackendRoute(ctx context.Context, backendRoute string) ([]*model.Permission, error) {
return s.permissionRepo.GetByBackendRoute(ctx, backendRoute)
}
// GetPermissionsByMenuID 根据菜单ID获取权限
func (s *PermissionService) GetPermissionsByMenuID(ctx context.Context, menuID uint) ([]*model.Permission, error) {
return s.permissionRepo.GetByMenuID(ctx, menuID)
}
// GetPermissionsByMenuGroupID 根据菜单分组ID获取权限
func (s *PermissionService) GetPermissionsByMenuGroupID(ctx context.Context, menuGroupID uint) ([]*model.Permission, error) {
return s.permissionRepo.GetByMenuGroupID(ctx, menuGroupID)
}
// GetPermissionsByAuthResourceID 根据认证资源ID获取权限
func (s *PermissionService) GetPermissionsByAuthResourceID(ctx context.Context, authResourceID uint) ([]*model.Permission, error) {
return s.permissionRepo.GetByAuthResourceID(ctx, authResourceID)
}
// GetUserPermissions 获取用户权限
func (s *PermissionService) GetUserPermissions(ctx context.Context, userID uint) ([]*model.Permission, error) {
return s.permissionRepo.GetByUserID(ctx, userID)
}