Skip to content

Commit 0d59239

Browse files
authored
fix: getImplicitPermissionsForUser works with rmMap (#272)
Signed-off-by: Zxilly <zhouxinyu1001@gmail.com>
1 parent a50ad82 commit 0d59239

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

src/coreEnforcer.ts

+7
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,13 @@ export class CoreEnforcer {
129129
return <RoleManager>this.rmMap.get('g');
130130
}
131131

132+
/**
133+
* getNamedRoleManager gets role manager by name.
134+
*/
135+
public getNamedRoleManager(name: string): RoleManager | undefined {
136+
return this.rmMap.get(name);
137+
}
138+
132139
/**
133140
* setEffector sets the current effector.
134141
*

src/enforcer.ts

+9-7
Original file line numberDiff line numberDiff line change
@@ -292,13 +292,15 @@ export class Enforcer extends ManagementEnforcer {
292292
const q = [name];
293293
let n: string | undefined;
294294
while ((n = q.shift()) !== undefined) {
295-
const role = await this.getRoleManager().getRoles(n, ...domain);
296-
role.forEach((r) => {
297-
if (!res.has(r)) {
298-
res.add(r);
299-
q.push(r);
300-
}
301-
});
295+
for (const rm of this.rmMap.values()) {
296+
const role = await rm.getRoles(n, ...domain);
297+
role.forEach((r) => {
298+
if (!res.has(r)) {
299+
res.add(r);
300+
q.push(r);
301+
}
302+
});
303+
}
302304
}
303305

304306
return Array.from(res);

0 commit comments

Comments
 (0)