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