|
|
@@ -6,7 +6,7 @@
|
|
|
:columns
|
|
|
description="Usuários"
|
|
|
no-api-call
|
|
|
- add-item
|
|
|
+ :add-item="canAdd"
|
|
|
add-item-route="UserAddPage"
|
|
|
>
|
|
|
<template #body-cell-user_type="{ row }">
|
|
|
@@ -26,6 +26,7 @@
|
|
|
<q-td auto-width>
|
|
|
<q-item-section class="no-wrap" style="flex-direction: row">
|
|
|
<q-btn
|
|
|
+ v-if="canEdit"
|
|
|
outline
|
|
|
icon="mdi-account-edit-outline"
|
|
|
style="width: 36px"
|
|
|
@@ -33,11 +34,12 @@
|
|
|
@click.prevent.stop="onEdit(row)"
|
|
|
/>
|
|
|
<q-btn
|
|
|
+ v-if="canDelete"
|
|
|
outline
|
|
|
icon="mdi-trash-can-outline"
|
|
|
style="width: 36px"
|
|
|
class="q-mr-sm"
|
|
|
- @click.prevent.stop="() => {}"
|
|
|
+ @click.prevent.stop="onDelete(row)"
|
|
|
/>
|
|
|
</q-item-section>
|
|
|
</q-td>
|
|
|
@@ -50,9 +52,16 @@
|
|
|
import { ref, computed, onMounted } from "vue";
|
|
|
import { useRouter } from "vue-router";
|
|
|
import DefaultTable from "src/components/defaults/DefaultTable.vue";
|
|
|
-import { getUsers } from "src/api/user";
|
|
|
+import { deleteUser, getUsers } from "src/api/user";
|
|
|
+import { useQuasar } from "quasar";
|
|
|
+import { permissionStore } from "src/stores/permission";
|
|
|
|
|
|
const router = useRouter();
|
|
|
+const $q = useQuasar();
|
|
|
+const permissions = permissionStore();
|
|
|
+const canAdd = permissions.getAccess("franchisor_registrations", "add");
|
|
|
+const canEdit = permissions.getAccess("franchisor_registrations", "edit");
|
|
|
+const canDelete = permissions.getAccess("franchisor_registrations", "delete");
|
|
|
|
|
|
const funcaoSelected = ref(null);
|
|
|
const allUsers = ref([]);
|
|
|
@@ -84,6 +93,18 @@ function onEdit(row) {
|
|
|
router.push({ name: "UserEditPage", params: { id: row.id } });
|
|
|
}
|
|
|
|
|
|
+function onDelete(row) {
|
|
|
+ $q.dialog({
|
|
|
+ title: "Excluir usuário",
|
|
|
+ message: `Deseja excluir o usuário "${row.name}"?`,
|
|
|
+ cancel: true,
|
|
|
+ persistent: true,
|
|
|
+ }).onOk(async () => {
|
|
|
+ await deleteUser(row.id);
|
|
|
+ allUsers.value = allUsers.value.filter((user) => user.id !== row.id);
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
onMounted(async () => {
|
|
|
try {
|
|
|
allUsers.value = await getUsers();
|