mirror of https://github.com/certd/certd
fix: 修复无法设置角色的bug
parent
e85b441f60
commit
02fe704769
|
@ -59,26 +59,42 @@ export abstract class BaseService<T> {
|
||||||
return await this.getRepository().find(options);
|
return await this.getRepository().find(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param where
|
||||||
|
*/
|
||||||
|
async deleteWhere(where: any) {
|
||||||
|
await this.getRepository().delete({
|
||||||
|
...where,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除
|
* 删除
|
||||||
* @param ids 删除的ID集合 如:[1,2,3] 或者 1,2,3
|
* @param ids 删除的ID集合 如:[1,2,3] 或者 1,2,3
|
||||||
* @param where
|
* @param where
|
||||||
*/
|
*/
|
||||||
async delete(ids: any, where?: any) {
|
async delete(ids: string | any[], where?: any) {
|
||||||
|
const idArr = this.resolveIdArr(ids);
|
||||||
|
if (idArr.length === 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
await this.getRepository().delete({
|
||||||
|
id: In(idArr),
|
||||||
|
...where,
|
||||||
|
});
|
||||||
|
await this.modifyAfter(idArr);
|
||||||
|
}
|
||||||
|
|
||||||
|
resolveIdArr(ids: string | any[]) {
|
||||||
if (!ids) {
|
if (!ids) {
|
||||||
throw new ValidateException('ids不能为空');
|
throw new ValidateException('ids不能为空');
|
||||||
}
|
}
|
||||||
if (typeof ids === 'string') {
|
if (typeof ids === 'string') {
|
||||||
ids = ids.split(',');
|
return ids.split(',');
|
||||||
|
} else {
|
||||||
|
return ids;
|
||||||
}
|
}
|
||||||
if (ids.length === 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
await this.getRepository().delete({
|
|
||||||
id: In(ids),
|
|
||||||
...where,
|
|
||||||
});
|
|
||||||
await this.modifyAfter(ids);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -237,7 +237,7 @@ export class PipelineService extends BaseService<PipelineEntity> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async delete(id: number) {
|
async delete(id: any) {
|
||||||
await this.clearTriggers(id);
|
await this.clearTriggers(id);
|
||||||
//TODO 删除storage
|
//TODO 删除storage
|
||||||
// const storage = new DbStorage(pipeline.userId, this.storageService);
|
// const storage = new DbStorage(pipeline.userId, this.storageService);
|
||||||
|
|
|
@ -30,7 +30,7 @@ export class RoleService extends BaseService<RoleEntity> {
|
||||||
});
|
});
|
||||||
|
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
getRepository() {
|
getRepository() {
|
||||||
return this.repository;
|
return this.repository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ getRepository() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//先删除所有
|
//先删除所有
|
||||||
await this.userRoleService.delete({ userId });
|
await this.userRoleService.deleteWhere({ userId });
|
||||||
//再添加
|
//再添加
|
||||||
await this.addRoles(userId, roles);
|
await this.addRoles(userId, roles);
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ getRepository() {
|
||||||
}
|
}
|
||||||
|
|
||||||
async authz(roleId: any, permissionIds: any) {
|
async authz(roleId: any, permissionIds: any) {
|
||||||
await this.rolePermissionService.delete({ roleId });
|
await this.rolePermissionService.deleteWhere({ roleId });
|
||||||
for (const permissionId of permissionIds) {
|
for (const permissionId of permissionIds) {
|
||||||
await this.rolePermissionService.add({
|
await this.rolePermissionService.add({
|
||||||
roleId,
|
roleId,
|
||||||
|
@ -125,4 +125,12 @@ getRepository() {
|
||||||
this.permissionCache.set(roleIdsKey, permissionSet);
|
this.permissionCache.set(roleIdsKey, permissionSet);
|
||||||
return permissionSet;
|
return permissionSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async delete(id: any) {
|
||||||
|
const idArr = this.resolveIdArr(id);
|
||||||
|
const urs = await this.userRoleService.find({ where: { roleId: In(idArr) } });
|
||||||
|
if (urs.length > 0) {
|
||||||
|
throw new Error('该角色已被用户使用,无法删除');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue