251209:1453 Frontend: progress nest = UAT & Bug Fixing
Some checks failed
Spec Validation / validate-markdown (push) Has been cancelled
Spec Validation / validate-diagrams (push) Has been cancelled
Spec Validation / check-todos (push) Has been cancelled

This commit is contained in:
admin
2025-12-09 14:53:42 +07:00
parent 8aceced902
commit aa96cd90e3
125 changed files with 11052 additions and 785 deletions

View File

@@ -13,6 +13,8 @@ import { CACHE_MANAGER } from '@nestjs/cache-manager';
import type { Cache } from 'cache-manager'; // ✅ FIX: เพิ่ม 'type' ตรงนี้
import * as bcrypt from 'bcrypt';
import { User } from './entities/user.entity';
import { Role } from './entities/role.entity';
import { Permission } from './entities/permission.entity';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
@@ -21,6 +23,10 @@ export class UserService {
constructor(
@InjectRepository(User)
private usersRepository: Repository<User>,
@InjectRepository(Role)
private roleRepository: Repository<Role>,
@InjectRepository(Permission)
private permissionRepository: Repository<Permission>,
@Inject(CACHE_MANAGER) private cacheManager: Cache
) {}
@@ -64,7 +70,12 @@ export class UserService {
async findOne(id: number): Promise<User> {
const user = await this.usersRepository.findOne({
where: { user_id: id },
relations: ['preference', 'assignments'], // [IMPORTANT] ต้องโหลด preference มาด้วย
relations: [
'preference',
'assignments',
'assignments.role',
'assignments.role.permissions', // [FIX] Required for RBAC AbilityFactory
],
});
if (!user) {
@@ -141,6 +152,16 @@ export class UserService {
return permissionList;
}
// --- Roles & Permissions (Helper for Admin/UI) ---
async findAllRoles(): Promise<Role[]> {
return this.roleRepository.find();
}
async findAllPermissions(): Promise<Permission[]> {
return this.permissionRepository.find();
}
/**
* Helper สำหรับล้าง Cache เมื่อมีการเปลี่ยนแปลงสิทธิ์หรือบทบาท
*/