完成权限角色守卫

This commit is contained in:
2025-05-07 23:14:57 +08:00
parent 9a705d5b21
commit 69c40c39aa
11 changed files with 201 additions and 3 deletions

View File

@@ -0,0 +1,35 @@
import { Injectable } from "@nestjs/common";
import { InjectRepository } from "@nestjs/typeorm";
import { UserRole } from "src/role/entities/user-role.entity";
import { IsNull, MoreThanOrEqual, Repository } from "typeorm";
@Injectable()
export class UserRoleService {
constructor(
@InjectRepository(UserRole)
private readonly userRoleRepository: Repository<UserRole>,
) { }
async findValidRoleIdsByUserId(userId: string): Promise<string[]> {
return (await this.findValidRolesByUserId(userId)).map(ur => ur.roleId);
}
async findValidRolesByUserId(userId: string) {
const now = new Date();
return this.userRoleRepository.find({
where: [
{
userId,
isEnabled: true,
expiredAt: MoreThanOrEqual(now),
},
{
userId,
isEnabled: true,
expiredAt: IsNull(),
}
]
})
}
}