This commit is contained in:
2026-06-28 20:32:52 +03:30
parent 7a5b3f0bea
commit bf35179d55
45 changed files with 1555 additions and 46 deletions
@@ -0,0 +1,31 @@
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { UserRole } from '../users/enums/user-role.enum';
import { AuthUser } from '../auth/interfaces/auth-user.interface';
import { UserPermission } from './entities/user-permission.entity';
@Injectable()
export class AuthorizationService {
constructor(
@InjectRepository(UserPermission)
private readonly userPermissionsRepository: Repository<UserPermission>,
) {}
async loadPermissions(userId: string): Promise<string[]> {
const userPermissions = await this.userPermissionsRepository.find({
where: { userId },
relations: { permission: true },
});
return userPermissions.map((up) => up.permission.code);
}
hasPermission(user: AuthUser, code: string): boolean {
return user.permissions.includes(code);
}
isAdmin(user: AuthUser): boolean {
return user.role === UserRole.ADMIN;
}
}