Added delPAHost

This commit is contained in:
Douglas Barone 2021-01-15 16:26:44 -04:00
parent d61994fe12
commit 52fa0fa2ab
3 changed files with 52 additions and 4 deletions

View File

@ -5,6 +5,7 @@ import { ResetToken } from '../../classes/ResetToken'
import { updateDevicesInfo } from '../../lib/wifiDevices' import { updateDevicesInfo } from '../../lib/wifiDevices'
import { updateUserIdMappings, addHost } from '../../lib/paloalto' import { updateUserIdMappings, addHost } from '../../lib/paloalto'
import { logInfo, logSuccess } from '../../lib/logger' import { logInfo, logSuccess } from '../../lib/logger'
import prisma from '../../prisma'
const Mutation = { const Mutation = {
async login(_, { data }) { async login(_, { data }) {
@ -61,6 +62,11 @@ const Mutation = {
}) })
return host return host
},
async delPAHost(_, { id }) {
console.log(id)
return prisma.pAHost.delete({ where: { id } })
} }
} }

View File

@ -89,6 +89,9 @@ const typeDefs = gql`
"Add a PA host" "Add a PA host"
addPAHost(data: AddPAHostInput!): PAHost! @auth(roles: ["superAdmin"]) addPAHost(data: AddPAHostInput!): PAHost! @auth(roles: ["superAdmin"])
"Remove a PA host"
delPAHost(id: Int!): PAHost! @auth(roles: ["superAdmin"])
} }
type Subscription { type Subscription {

View File

@ -4,11 +4,18 @@
<v-toolbar-title>Hosts cadastrados</v-toolbar-title> <v-toolbar-title>Hosts cadastrados</v-toolbar-title>
<v-spacer /> <v-spacer />
<v-toolbar-items> <v-toolbar-items>
<v-btn text color="primary" <v-btn text color="primary">
><v-icon left>mdi-plus</v-icon> Adicionar</v-btn <v-icon left>mdi-plus</v-icon>
> Adicionar
</v-btn>
</v-toolbar-items> </v-toolbar-items>
</v-toolbar> </v-toolbar>
<v-progress-circular
v-if="$apollo.queries.pAHosts.loading"
indeterminate
class="ma-4"
color="primary"
/>
<v-row> <v-row>
<v-col <v-col
v-for="pAHost in pAHosts" v-for="pAHost in pAHosts"
@ -43,11 +50,16 @@
<v-spacer /> <v-spacer />
<v-btn disabled icon><v-icon>mdi-pencil</v-icon></v-btn> <v-btn disabled icon><v-icon>mdi-pencil</v-icon></v-btn>
<v-btn icon><v-icon>mdi-trash-can</v-icon></v-btn> <v-btn icon @click="delHost(pAHost.id)">
<v-icon>mdi-trash-can</v-icon>
</v-btn>
</v-card-actions> </v-card-actions>
</v-card> </v-card>
</v-col> </v-col>
</v-row> </v-row>
<v-alert v-if="!$apollo.queries.pAHosts.loading && pAHosts.length == 0">
Nenhum host cadastrado
</v-alert>
<v-banner icon="mdi-information" outlined rounded> <v-banner icon="mdi-information" outlined rounded>
Os hosts cadastrados serão usados para mapeamento de ID de usuários, a fim 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. 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 { export default {
name: 'PaloAlto', name: 'PaloAlto',
data: () => ({ data: () => ({
@ -83,6 +108,20 @@ export default {
}), }),
apollo: { apollo: {
pAHosts: { query: PAHOSTS_QUERY, fetchPolicy: 'network-only' } 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()
}
}
} }
} }
</script> </script>