Procházet zdrojové kódy

feat: :sparkles: ajustes para permissões

Denis před 1 rokem
rodič
revize
a7e739c2b5

+ 7 - 8
src/api/permission.js

@@ -1,16 +1,15 @@
 import { api } from "src/boot/axios";
 
 export const getGuestPermissions = async () => {
-  const { data } = await api.get("/permission/guest");
+  const { data } = await api.get("/user/permissions/guest");
   return data;
 };
 
-export const getPermissions = async () => {
-  const { data } = await api.get("/permission");
-  return data;
-};
-
-export const getUserPermissions = async (userId) => {
-  const { data } = await api.get(`/permission/${userId}`);
+export const getUserPermissions = async (userType) => {
+  const { data } = await api.get("/user/permissions", {
+    params: {
+      userType,
+    },
+  });
   return data;
 };

+ 8 - 8
src/components/global/LeftMenuLayout.vue

@@ -81,7 +81,7 @@
 <script setup>
 import { ref, onMounted } from "vue";
 import { useAuth } from "src/composables/useAuth";
-import { componentsStore } from "src/stores/component";
+import { permissionStore } from "src/stores/permission";
 import { useI18n } from "vue-i18n/dist/vue-i18n";
 
 const auth = useAuth();
@@ -97,7 +97,7 @@ const menus = ref([
     icon: "mdi-home-variant-outline",
     disable: false,
     permission: false,
-    componente: "vuePageDashboard",
+    permissionScope: "dashboard",
   },
   {
     type: "expansive",
@@ -105,7 +105,7 @@ const menus = ref([
     icon: "mdi-cog-outline",
     disable: false,
     permission: false,
-    componente: "vuePageConfiguracoes",
+    permissionScope: "config",
     childrens: [
       {
         type: "single",
@@ -114,22 +114,22 @@ const menus = ref([
         icon: "mdi-account-multiple-outline",
         disable: false,
         permission: false,
-        componente: "vuePageUsuarios",
+        permissionScope: "usuarios",
       },
     ],
   },
 ]);
 
 const getMenuAccess = () => {
-  const { getAccess } = componentsStore();
+  const { getAccess } = permissionStore();
   menus.value = menus.value
     .map((menu) => {
       if (menu.type === "expansive") {
-        if (getAccess(menu.componente, "menu")) {
+        if (getAccess(menu.permissionScope, "menu")) {
           menu.permission = true;
         }
         menu.childrens = menu.childrens.filter((children) => {
-          children.permission = getAccess(children.componente, "menu");
+          children.permission = getAccess(children.permissionScope, "menu");
           return children.permission;
         });
         return menu.childrens.length > 0 ? menu : null;
@@ -137,7 +137,7 @@ const getMenuAccess = () => {
         if (menu.componente === "vuePageDashboard") {
           menu.permission = true;
         } else {
-          menu.permission = getAccess(menu.componente, "menu");
+          menu.permission = getAccess(menu.permissionScope, "menu");
         }
         return menu.permission ? menu : null;
       }

+ 12 - 13
src/stores/permission.js

@@ -4,6 +4,18 @@ import { userStore } from "./user";
 import { getUserPermissions, getGuestPermissions } from "src/api/permission";
 
 export const permissionStore = defineStore("permission", () => {
+  const bitwisePermissionTable = Object.freeze({
+    view: 1,
+    add: 2,
+    edit: 4,
+    delete: 8,
+    print: 16,
+    export: 32,
+    import: 64,
+    limit: 128,
+    menu: 256,
+  });
+
   const bitwisePermissions = ref({
     view: 0,
     add: 0,
@@ -15,22 +27,9 @@ export const permissionStore = defineStore("permission", () => {
     limit: 0,
     menu: 0,
   });
-
   const originalBitwisePermissions = ref(null);
   const scopes = ref(null);
 
-  const bitwisePermissionTable = Object.freeze({
-    view: 1,
-    add: 2,
-    edit: 4,
-    delete: 8,
-    print: 16,
-    export: 32,
-    import: 64,
-    limit: 128,
-    menu: 256,
-  });
-
   const totalBitwisePermissions = computed(() =>
     Object.values(bitwisePermissionTable).reduce((a, b) => a + b),
   );