|
|
|
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)
|
|
|
|
}
|