Sfoglia il codice sorgente

feat(permissions): update permission scopes for TBR and enhance access controls

ebagabee 2 settimane fa
parent
commit
d8c1c90543

+ 1 - 1
src/pages/permissions/permission_menus.js

@@ -53,7 +53,7 @@ export const FRANCHISOR_PERMISSION_MENUS = Object.freeze([
     icon: "mdi-package-variant-closed",
   },
   { scope: "franchisor_products", label: "Produtos", icon: "mdi-cart-outline" },
-  { scope: "tbr", label: "TBR", icon: "mdi-database-outline" },
+  { scope: "franchisor_tbr", label: "TBR", icon: "mdi-database-outline" },
   {
     scope: "financial",
     label: "Financeiro",

+ 3 - 1
src/pages/tbr/tabs/BillingsTab.vue

@@ -18,7 +18,7 @@
       v-model:rows="rows"
     :columns="columns"
     :show-search-field="true"
-    :add-item="true"
+    :add-item="canAdd"
     no-api-call
     add-item-label="Gerar Contas a Receber"
     @on-add-item="onAddItem"
@@ -68,8 +68,10 @@ import GenerateReceivableDialog from "src/pages/tbr/components/GenerateReceivabl
 
 import api from "src/api";
 import { formatToBRLCurrency } from "src/helpers/utils";
+import { permissionStore } from "src/stores/permission";
 
 const $q = useQuasar();
+const canAdd = permissionStore().getAccess("franchisor_tbr", "add");
 const rows = ref([]);
 
 const columns = [

+ 6 - 1
src/pages/tbr/tabs/InhabitantClassificationsTab.vue

@@ -3,7 +3,7 @@
     v-model:rows="rows"
     description="faixas"
     title="Faixas"
-    :add-item="true"
+    :add-item="canAdd"
     :columns="columns"
     :female="true"
     :no-api-call="true"
@@ -23,6 +23,7 @@
           />
 
           <q-btn
+            v-if="canEdit"
             dense
             flat
             icon="mdi-file-edit-outline"
@@ -45,8 +46,12 @@ import AddEditInhabitantClassificationDialog from "src/pages/tbr/components/AddE
 import ViewInhabitantClassificationDialog from "src/pages/tbr/components/ViewInhabitantClassificationDialog.vue";
 
 import DefaultTable from "src/components/defaults/DefaultTable.vue";
+import { permissionStore } from "src/stores/permission";
 
 const $q = useQuasar();
+const permissions = permissionStore();
+const canAdd = permissions.getAccess("franchisor_tbr", "add");
+const canEdit = permissions.getAccess("franchisor_tbr", "edit");
 
 const rows = ref([]);
 

+ 6 - 1
src/pages/tbr/tabs/SettingsTab.vue

@@ -7,7 +7,7 @@
     :female="false"
     :no-api-call="true"
     :show-search-field="true"
-    :add-item="true"
+    :add-item="canAdd"
     @on-add-item="onAdd"
   >
     <template #body-cell-tbr_value="{ row }">
@@ -30,6 +30,7 @@
       <q-td align="center">
         <div class="row no-wrap" style="gap: 4px">
           <q-btn
+            v-if="canEdit"
             flat
             round
             dense
@@ -50,8 +51,12 @@ import DefaultTable from "src/components/defaults/DefaultTable.vue";
 import AddEditTbrDialog from "src/pages/tbr/components/AddEditTbrDialog.vue";
 import { getTbrs } from "src/api/tbr";
 import { formatToBRLCurrency, formatPercentage } from "src/helpers/utils";
+import { permissionStore } from "src/stores/permission";
 
 const $q = useQuasar();
+const permissions = permissionStore();
+const canAdd = permissions.getAccess("franchisor_tbr", "add");
+const canEdit = permissions.getAccess("franchisor_tbr", "edit");
 const rows = ref([]);
 
 const columns = [

+ 1 - 0
src/router/routes/tbr.route.js

@@ -9,6 +9,7 @@ export default [
         translate: false,
       },
       requireAuth: true,
+      requiredPermission: "franchisor_tbr",
       breadcrumbs: [
         {
           name: "DashboardPage",

+ 1 - 1
src/stores/navigation.js

@@ -48,7 +48,7 @@ export const navigationStore = defineStore("navigation", () => {
       icon: "mdi-database-outline",
       disable: false,
       permission: false,
-      permissionScope: "dashboard",
+      permissionScope: "franchisor_tbr",
     },
     {
       type: "expansive",