fix: 前端權限檢查邏輯讓 super-admin 自動通過
This commit is contained in:
@@ -11,25 +11,31 @@ export function usePermission() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 檢查使用者是否擁有指定權限
|
* 檢查使用者是否擁有指定權限
|
||||||
|
* 超級管理員自動擁有所有權限
|
||||||
*/
|
*/
|
||||||
const can = (permission: string): boolean => {
|
const can = (permission: string): boolean => {
|
||||||
if (!user) return false;
|
if (!user) return false;
|
||||||
|
if (user.roles.includes('super-admin')) return true;
|
||||||
return user.permissions.includes(permission);
|
return user.permissions.includes(permission);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 檢查使用者是否擁有任一指定權限
|
* 檢查使用者是否擁有任一指定權限
|
||||||
|
* 超級管理員自動擁有所有權限
|
||||||
*/
|
*/
|
||||||
const canAny = (permissions: string[]): boolean => {
|
const canAny = (permissions: string[]): boolean => {
|
||||||
if (!user) return false;
|
if (!user) return false;
|
||||||
|
if (user.roles.includes('super-admin')) return true;
|
||||||
return permissions.some(p => user.permissions.includes(p));
|
return permissions.some(p => user.permissions.includes(p));
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 檢查使用者是否擁有所有指定權限
|
* 檢查使用者是否擁有所有指定權限
|
||||||
|
* 超級管理員自動擁有所有權限
|
||||||
*/
|
*/
|
||||||
const canAll = (permissions: string[]): boolean => {
|
const canAll = (permissions: string[]): boolean => {
|
||||||
if (!user) return false;
|
if (!user) return false;
|
||||||
|
if (user.roles.includes('super-admin')) return true;
|
||||||
return permissions.every(p => user.permissions.includes(p));
|
return permissions.every(p => user.permissions.includes(p));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user