diff --git a/server/src/resolvers/Mutation/index.js b/server/src/resolvers/Mutation/index.js index 56eb926..44a739d 100644 --- a/server/src/resolvers/Mutation/index.js +++ b/server/src/resolvers/Mutation/index.js @@ -5,6 +5,7 @@ import { ResetToken } from '../../classes/ResetToken' import { updateDevicesInfo } from '../../lib/wifiDevices' import { updateUserIdMappings, addHost } from '../../lib/paloalto' import { logInfo, logSuccess } from '../../lib/logger' +import prisma from '../../prisma' const Mutation = { async login(_, { data }) { @@ -61,6 +62,11 @@ const Mutation = { }) return host + }, + + async delPAHost(_, { id }) { + console.log(id) + return prisma.pAHost.delete({ where: { id } }) } } diff --git a/server/src/typeDefs.js b/server/src/typeDefs.js index 562ab31..529a681 100644 --- a/server/src/typeDefs.js +++ b/server/src/typeDefs.js @@ -89,6 +89,9 @@ const typeDefs = gql` "Add a PA host" addPAHost(data: AddPAHostInput!): PAHost! @auth(roles: ["superAdmin"]) + + "Remove a PA host" + delPAHost(id: Int!): PAHost! @auth(roles: ["superAdmin"]) } type Subscription { diff --git a/web/src/views/SystemAdministration/PaloAlto.vue b/web/src/views/SystemAdministration/PaloAlto.vue index 9a10d30..86e08de 100644 --- a/web/src/views/SystemAdministration/PaloAlto.vue +++ b/web/src/views/SystemAdministration/PaloAlto.vue @@ -4,11 +4,18 @@ Hosts cadastrados - mdi-plus Adicionar + + mdi-plus + Adicionar + + mdi-pencil - mdi-trash-can + + mdi-trash-can + + + Nenhum host cadastrado + Os hosts cadastrados serão usados para mapeamento de ID de usuários, a fim de evitar a necessidade da tela de autenticação do Captive Portal. @@ -72,6 +84,19 @@ const PAHOSTS_QUERY = gql` } } ` + +const DEL_HOST_MUTATION = gql` + mutation($id: Int!) { + delPAHost(id: $id) { + id + description + cidr + key + note + } + } +` + export default { name: 'PaloAlto', data: () => ({ @@ -83,6 +108,20 @@ export default { }), apollo: { pAHosts: { query: PAHOSTS_QUERY, fetchPolicy: 'network-only' } + }, + methods: { + async delHost(id) { + try { + const deletedHost = await this.$apollo.mutate({ + mutation: DEL_HOST_MUTATION, + variables: { id: Number(id) } + }) + } catch (e) { + console.log({ e }) + } finally { + this.$apollo.queries.pAHosts.refetch() + } + } } }