feat: users create (wip)

This commit is contained in:
Nick
2019-04-28 20:25:19 -04:00
parent 849d4f4774
commit 4f23984ac6
10 changed files with 136 additions and 37 deletions

View File

@@ -1,10 +1,10 @@
<template lang="pug">
v-dialog(v-model='isShown', max-width='550')
v-dialog(v-model='isShown', max-width='650', persistent)
v-card.wiki-form
.dialog-header.is-short
span New User
v-card-text
v-select.md2(
v-select(
:items='providers'
item-text='title'
item-value='key'
@@ -13,40 +13,66 @@
v-model='provider'
label='Provider'
)
v-text-field.md2(
v-text-field(
outline
prepend-icon='email'
v-model='email'
label='Email Address'
ref='emailInput'
)
v-text-field.md2(
v-text-field(
v-if='provider === `local`'
outline
prepend-icon='lock'
append-icon='casino'
v-model='password'
label='Password'
:label='mustChangePwd ? `Temporary Password` : `Password`'
counter='255'
@click:append='generatePwd'
)
v-text-field.md2(
v-text-field(
outline
prepend-icon='person'
v-model='name'
label='Name'
)
v-select(
:items='groups'
item-text='name'
item-value='key'
outline
prepend-icon='people'
v-model='group'
label='Assign to Group(s)...'
clearable
multiple
)
v-divider
v-checkbox(
color='primary'
label='Require password change on first login'
v-if='provider === `local`'
v-model='mustChangePwd'
hide-details
)
v-checkbox(
color='primary'
label='Send a welcome email'
hide-details
v-model='sendWelcomeEmail'
)
v-card-chin
v-spacer
v-btn(flat, @click='isShown = false') Cancel
v-btn(color='primary', @click='newUser') Create
v-btn(color='primary', @click='newUser') Create and Close
</template>
<script>
import _ from 'lodash'
import uuidv4 from 'uuid/v4'
import providersQuery from 'gql/admin/users/users-query-strategies.gql'
import groupsQuery from 'gql/admin/auth/auth-query-groups.gql'
export default {
props: {
@@ -61,7 +87,11 @@ export default {
provider: 'local',
email: '',
password: '',
name: ''
name: '',
groups: [],
group: '',
mustChangePwd: false,
sendWelcomeEmail: false
}
},
computed: {
@@ -95,6 +125,14 @@ export default {
watchLoading (isLoading) {
this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-users-strategies-refresh')
}
},
groups: {
query: groupsQuery,
fetchPolicy: 'network-only',
update: (data) => data.groups.list,
watchLoading (isLoading) {
this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-auth-groups-refresh')
}
}
}
}