fix: permission logic of super administrator

Signed-off-by: Ryan Wang <i@ryanc.cc>
pull/588/head
Ryan Wang 2 years ago
parent e8fd09205d
commit 31dbe5a0eb

@ -4,8 +4,7 @@ import { hasPermission } from "../permission";
describe("hasPermission", () => {
it("should return true if user has permission", () => {
const uiPermissions = ["system:post:manage", "system:post:view"];
expect(hasPermission(uiPermissions, ["*"], false)).toBe(true);
expect(hasPermission(uiPermissions, ["*"], true)).toBe(true);
expect(hasPermission(uiPermissions, ["system:post:manage"], false)).toBe(
false
);
@ -27,5 +26,11 @@ describe("hasPermission", () => {
false
)
).toBe(true);
// super admin has all permissions
expect(hasPermission(["*"], ["system:post:manage"], false)).toBe(true);
expect(
hasPermission(["*"], ["system:post:manage", "system:links:manage"], true)
).toBe(true);
});
});

@ -5,12 +5,12 @@ export function hasPermission(
targetPermissions: Array<string>,
any: boolean
): boolean {
if (!targetPermissions || !targetPermissions.length) {
// super admin has all permissions
if (uiPermissions.includes("*")) {
return true;
}
// super admin has all permissions
if (targetPermissions.includes("*")) {
if (!targetPermissions || !targetPermissions.length) {
return true;
}

Loading…
Cancel
Save