| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 'use strict'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    }  }}
 |