fix: permission logic of super administrator

Signed-off-by: Ryan Wang <i@ryanc.cc>
pull/3445/head
Ryan Wang 2022-07-16 12:04:58 +08:00
parent d5c1e3e428
commit 24e1a3c4f7
2 changed files with 10 additions and 5 deletions

View File

@ -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);
});
});

View File

@ -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;
}