const permissionPages=['Overview','Offices','Vendors','Purchases','Assets','Inventory','Issue & transfers','Reports','Users & access','Settings']; const permissionActions=['office_create','office_edit','vendor_create','vendor_edit','category_create','category_edit','category_delete','asset_create','asset_edit','purchase_create','stock_create','stock_edit','movement_create','record_status','record_delete']; const permissionDefaults={admin:{pages:permissionPages,actions:permissionActions},store:{pages:['Overview','Vendors','Purchases','Assets','Inventory','Issue & transfers','Reports'],actions:['vendor_create','vendor_edit','asset_create','asset_edit','purchase_create','stock_create','stock_edit','movement_create']},office:{pages:['Overview','Assets','Issue & transfers'],actions:[]}}; async function getPermissionData(){const s=await fetch('./api/index.php?action=session',{credentials:'same-origin'}).then(r=>r.json());if(!s.user)return null;const d=await fetch('./api/index.php?action=data',{credentials:'same-origin'}).then(r=>r.json());return d.data;} async function hydratePermissionModal(root){if(root.dataset.permissionHydrated)return;const data=await getPermissionData();if(!data)return;await new Promise(resolve=>setTimeout(resolve,0));const form=root.querySelector('.settings-user-form');if(!form)return;const email=form.elements.email?.value||'';const user=(data.users||[]).find(u=>u.email===email);let p=user?.permissions;if(typeof p==='string'){try{p=JSON.parse(p)}catch{p=null}}const role=form.elements.role?.value||'store';if(!p||typeof p!=='object')p=permissionDefaults[role]||permissionDefaults.store;const set=(name,values)=>root.querySelectorAll(`input[name="${name}"]`).forEach(input=>input.checked=Array.isArray(values)&&values.includes(input.value));set('pages',p.pages);set('actions',p.actions);root.dataset.permissionHydrated='1';if(!user){form.elements.role?.addEventListener('change',()=>{const d=permissionDefaults[form.elements.role.value]||permissionDefaults.store;set('pages',d.pages);set('actions',d.actions);});}} const permissionObserver=new MutationObserver(()=>document.querySelectorAll('.settings-user-backdrop').forEach(root=>hydratePermissionModal(root).catch(()=>{})));permissionObserver.observe(document.body,{childList:true,subtree:true});