chore: history projectId

This commit is contained in:
xiaojunnuo
2026-02-11 18:11:33 +08:00
parent 806a69fef3
commit 638a7f0ab4
15 changed files with 224 additions and 146 deletions
@@ -28,15 +28,15 @@ export class AuthService {
}
//管理员有权限查看其他用户的数据
async checkEntityUserId(ctx: any, service: any, id: any = 0, userKey = 'userId') {
async checkEntityUserId(ctx: any, service: any, ids: number| number[] = null, userKey = 'userId') {
const isAdmin = await this.isAdmin(ctx);
if (isAdmin) {
return true;
}
await service.checkUserId(id, ctx.user.id, userKey);
await service.checkUserId(ids, ctx.user.id, userKey);
}
async checkEntityProjectId(service:any,projectId = 0,id:any=0){
await service.checkUserId(id, projectId , "projectId");
async checkEntityProjectId(service:any,ids:number| number[] = null,projectId = null){
await service.checkUserId(ids, projectId , "projectId");
}
}
@@ -9,6 +9,12 @@ import { PermissionService } from './permission-service.js';
import * as _ from 'lodash-es';
import { RolePermissionService } from './role-permission-service.js';
import { LRUCache } from 'lru-cache';
const permissionCache = new LRUCache<string, any>({
max: 1000,
ttl: 1000 * 60 * 10,
});
/**
* 角色
*/
@@ -24,10 +30,7 @@ export class RoleService extends BaseService<RoleEntity> {
@Inject()
rolePermissionService: RolePermissionService;
permissionCache = new LRUCache<string, any>({
max: 1000,
ttl: 1000 * 60 * 10,
});
//@ts-ignore
getRepository() {
@@ -84,7 +87,7 @@ export class RoleService extends BaseService<RoleEntity> {
//再添加
await this.addRoles(userId, roles);
this.permissionCache.clear();
permissionCache.clear();
}
async getPermissionTreeByRoleId(id: any) {
@@ -105,7 +108,7 @@ export class RoleService extends BaseService<RoleEntity> {
permissionId,
});
}
this.permissionCache.clear();
permissionCache.clear();
}
async getPermissionSetByRoleIds(roleIds: number[]): Promise<Set<string>> {
@@ -120,12 +123,12 @@ export class RoleService extends BaseService<RoleEntity> {
async getCachedPermissionSetByRoleIds(roleIds: number[]): Promise<Set<string>> {
const roleIdsKey = roleIds.join(',');
let permissionSet = this.permissionCache.get(roleIdsKey);
let permissionSet = permissionCache.get(roleIdsKey);
if (permissionSet) {
return permissionSet;
}
permissionSet = await this.getPermissionSetByRoleIds(roleIds);
this.permissionCache.set(roleIdsKey, permissionSet);
permissionCache.set(roleIdsKey, permissionSet);
return permissionSet;
}