fix(cli): skip when role does not exist
This commit is contained in:
parent
7c21c5cf1a
commit
dd6f0a6d84
@ -1,7 +1,7 @@
|
||||
import { Database, Model } from '@nocobase/database';
|
||||
import { ACL, ACLResource, ACLRole } from '@nocobase/acl';
|
||||
import { RoleResourceActionModel } from './RoleResourceActionModel';
|
||||
import { Model } from '@nocobase/database';
|
||||
import { AssociationFieldsActions, GrantHelper } from '../server';
|
||||
import { RoleResourceActionModel } from './RoleResourceActionModel';
|
||||
|
||||
export class RoleResourceModel extends Model {
|
||||
async revoke(options: { role: ACLRole; resourceName: string; grantHelper: GrantHelper }) {
|
||||
@ -36,6 +36,11 @@ export class RoleResourceModel extends Model {
|
||||
const roleName = this.get('roleName') as string;
|
||||
const role = acl.getRole(roleName);
|
||||
|
||||
if (!role) {
|
||||
console.log(`${roleName} role does not exist`);
|
||||
return;
|
||||
}
|
||||
|
||||
// revoke resource of role
|
||||
await this.revoke({ role, resourceName, grantHelper });
|
||||
|
||||
|
@ -180,7 +180,9 @@ export class PluginACL extends Plugin {
|
||||
|
||||
this.app.db.on('rolesResources.afterDestroy', async (model, options) => {
|
||||
const role = this.acl.getRole(model.get('roleName'));
|
||||
role.revokeResource(model.get('name'));
|
||||
if (role) {
|
||||
role.revokeResource(model.get('name'));
|
||||
}
|
||||
});
|
||||
|
||||
this.app.db.on('collections.afterDestroy', async (model, options) => {
|
||||
|
Loading…
Reference in New Issue
Block a user