16 lines
657 B
JavaScript
16 lines
657 B
JavaScript
import { getPermissions } from '/static/portal/common/auth.js?v=20260913';
|
|
|
|
export function applyPermissionGuard(root = document) {
|
|
const permissions = new Set(getPermissions());
|
|
root.querySelectorAll('[data-permission-required]').forEach((element) => {
|
|
const allowed = permissions.has(element.dataset.permissionRequired);
|
|
if (element.dataset.permissionBehavior === 'hide') {
|
|
element.hidden = !allowed;
|
|
return;
|
|
}
|
|
element.toggleAttribute('disabled', !allowed);
|
|
element.setAttribute('aria-disabled', String(!allowed));
|
|
if (!allowed) element.title = element.dataset.permissionHint || '暂未开通相关权限';
|
|
});
|
|
}
|