2
0

role.service.ts 674 B

1234567891011121314151617181920
  1. import { DataSource, Repository } from 'typeorm';
  2. import { Role } from './role.entity';
  3. import { GenericCrudService } from '@/server/utils/generic-crud.service';
  4. export class RoleService extends GenericCrudService<Role> {
  5. constructor(dataSource: DataSource) {
  6. super(dataSource, Role);
  7. }
  8. // 可以添加角色特有的业务逻辑方法
  9. async getRoleByName(name: string): Promise<Role | null> {
  10. return this.repository.findOneBy({ name });
  11. }
  12. async checkPermission(roleId: number, permission: string): Promise<boolean> {
  13. const role = await this.getById(roleId);
  14. if (!role) return false;
  15. return role.permissions.includes(permission);
  16. }
  17. }