mirror of
https://github.com/cool-team-official/cool-admin-midway.git
synced 2026-02-24 14:00:29 +00:00
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { Provide } from '@midwayjs/decorator';
|
|
import { CoolController, BaseController } from 'midwayjs-cool-core';
|
|
import { Context } from 'vm';
|
|
import { BaseSysRoleEntity } from '../../../entity/sys/role';
|
|
import { BaseSysRoleService } from '../../../service/sys/role';
|
|
|
|
/**
|
|
* 系统角色
|
|
*/
|
|
@Provide()
|
|
@CoolController({
|
|
api: ['add', 'delete', 'update', 'info', 'list', 'page'],
|
|
entity: BaseSysRoleEntity,
|
|
service: BaseSysRoleService,
|
|
// 新增的时候插入当前用户ID
|
|
insertParam: async (ctx: Context) => {
|
|
return {
|
|
userId: ctx.admin.userId,
|
|
};
|
|
},
|
|
pageQueryOp: {
|
|
keyWordLikeFields: ['name', 'label'],
|
|
where: async (ctx: Context) => {
|
|
const { userId, roleIds, role } = ctx.admin;
|
|
return [
|
|
// 超级管理员的角色不展示
|
|
['label != :label', { label: 'admin' }],
|
|
// 如果不是超管,只能看到自己新建的或者自己有的角色
|
|
[
|
|
'(userId=:userId or id in (:roleIds))',
|
|
{ userId, roleIds },
|
|
role !== 'admin',
|
|
],
|
|
];
|
|
},
|
|
},
|
|
})
|
|
export class BaseSysRoleController extends BaseController {}
|