123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- export default {
- name: 'admin-edit-user',
- props: ['usrdata'],
- data() {
- return {
- id: '',
- email: '',
- password: '********',
- name: '',
- rights: [],
- roleoverride: 'none'
- }
- },
- methods: {
- addRightsRow() {
- this.rights.push({
- role: 'write',
- path: '/',
- exact: false,
- deny: false
- })
- },
- removeRightsRow(idx) {
- this._.pullAt(this.rights, idx)
- this.$forceUpdate()
- },
- saveUser() {
- let self = this
- let formattedRights = this._.cloneDeep(this.rights)
- switch (this.roleoverride) {
- case 'admin':
- formattedRights.push({
- role: 'admin',
- path: '/',
- exact: false,
- deny: false
- })
- break
- }
- this.$http.post(window.location.href, {
- password: this.password,
- name: this.name,
- rights: JSON.stringify(formattedRights)
- }).then(resp => {
- self.$store.dispatch('alert', {
- style: 'green',
- icon: 'check',
- msg: 'Changes have been applied successfully.'
- })
- }).catch(err => {
- self.$store.dispatch('alert', {
- style: 'red',
- icon: 'square-cross',
- msg: 'Error: ' + err.body.msg
- })
- })
- }
- },
- mounted() {
- let usr = JSON.parse(this.usrdata)
- this.id = usr._id
- this.email = usr.email
- this.name = usr.name
- if (this._.find(usr.rights, { role: 'admin' })) {
- this.rights = this._.reject(usr.rights, ['role', 'admin'])
- this.roleoverride = 'admin'
- } else {
- this.rights = usr.rights
- }
- }
- }
|