fix(pos): hide Sistema button for non-admin roles and allow login/logout in page guard
Some checks failed
CI / lint-and-test (3.11) (push) Has been cancelled
CI / lint-and-test (3.13) (push) Has been cancelled

This commit is contained in:
2026-07-02 22:27:50 +00:00
parent 302d54eb0a
commit 1b51fe65b5
18 changed files with 29 additions and 17 deletions

View File

@@ -221,6 +221,9 @@
return ['/pos/sale','/pos/catalog','/pos/inventory','/pos/customers','/pos/workshop','/pos/remission-notes','/pos/invoicing','/pos/reports'].indexOf(pagePath) !== -1; return ['/pos/sale','/pos/catalog','/pos/inventory','/pos/customers','/pos/workshop','/pos/remission-notes','/pos/invoicing','/pos/reports'].indexOf(pagePath) !== -1;
} }
// Always allow login/logout pages so users can sign out without hitting the guard.
if (pagePath === '/pos/login' || pagePath === '/pos/logout') return true;
// Any other role (accountant, warehouse, sales, etc.) keeps the previous permissive behavior. // Any other role (accountant, warehouse, sales, etc.) keeps the previous permissive behavior.
return true; return true;
} }
@@ -280,6 +283,15 @@
}).catch(function() {}); }).catch(function() {});
} catch(e) {} } catch(e) {}
// ─── Hide POS "Sistema" button for roles that cannot access the dashboard ───
(function hideBackToSystemForRestrictedRoles() {
var backBtn = document.getElementById('backToSystemBtn');
if (!backBtn) return;
// owner/admin are the only roles that should see the dashboard shortcut from POS.
if (role === 'owner' || role === 'admin') return;
backBtn.style.display = 'none';
})();
// ─── Service Worker update handler ─── // ─── Service Worker update handler ───
if ('serviceWorker' in navigator) { if ('serviceWorker' in navigator) {
navigator.serviceWorker.addEventListener('message', function (event) { navigator.serviceWorker.addEventListener('message', function (event) {

View File

@@ -493,7 +493,7 @@
</div> </div>
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>

View File

@@ -316,7 +316,7 @@
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/kiosk.js" defer></script> <script src="/pos/static/js/kiosk.js" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>

View File

@@ -1016,7 +1016,7 @@
</div> </div>
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>

View File

@@ -651,7 +651,7 @@
</div> </div>
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>

View File

@@ -606,7 +606,7 @@
<script src="/pos/static/js/chart.umd.min.js" defer></script> <script src="/pos/static/js/chart.umd.min.js" defer></script>
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>

View File

@@ -150,7 +150,7 @@
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/kiosk.js" defer></script> <script src="/pos/static/js/kiosk.js" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>

View File

@@ -303,7 +303,7 @@
</div> </div>
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>

View File

@@ -1062,7 +1062,7 @@
</div> </div>
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>

View File

@@ -1064,7 +1064,7 @@
</div> </div>
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>

View File

@@ -343,7 +343,7 @@
</div> </div>
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>

View File

@@ -729,7 +729,7 @@
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/kiosk.js" defer></script> <script src="/pos/static/js/kiosk.js" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/push.js" defer></script> <script src="/pos/static/js/push.js" defer></script>
<script src="/pos/static/js/printer.js" defer></script> <script src="/pos/static/js/printer.js" defer></script>

View File

@@ -15,7 +15,7 @@
<body> <body>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>

View File

@@ -227,7 +227,7 @@
</div> </div>
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>
<script> <script>

View File

@@ -406,7 +406,7 @@
<!-- End app-shell --> <!-- End app-shell -->
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>

View File

@@ -126,7 +126,7 @@
</div> </div>
</div> </div>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>
<script src="/pos/static/js/supplier_catalog.js?v=33" defer></script> <script src="/pos/static/js/supplier_catalog.js?v=33" defer></script>
<script>if('serviceWorker' in navigator){navigator.serviceWorker.register('/pos/sw.js',{scope:'/pos/'});}</script> <script>if('serviceWorker' in navigator){navigator.serviceWorker.register('/pos/sw.js',{scope:'/pos/'});}</script>

View File

@@ -132,7 +132,7 @@ function posLogout(){localStorage.removeItem('pos_token');window.location.href='
<!-- Sidebar --> <!-- Sidebar -->
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/whatsapp2.js?v=33" defer></script> <script src="/pos/static/js/whatsapp2.js?v=33" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>

View File

@@ -494,7 +494,7 @@
</div> </div>
<script src="/pos/static/js/i18n.js?v=39" defer></script> <script src="/pos/static/js/i18n.js?v=39" defer></script>
<script src="/pos/static/js/app-init.js?v=5" defer></script> <script src="/pos/static/js/app-init.js?v=6" defer></script>
<script src="/pos/static/js/splash-loader.js?v=33" defer></script> <script src="/pos/static/js/splash-loader.js?v=33" defer></script>
<script src="/pos/static/js/pos-utils.js?v=33" defer></script> <script src="/pos/static/js/pos-utils.js?v=33" defer></script>
<script src="/pos/static/js/sidebar.js?v=44" defer></script> <script src="/pos/static/js/sidebar.js?v=44" defer></script>