Add user_is_admin
flag to app store, plus logic to set/clear it
This commit is contained in:
parent
a80a42fb56
commit
3c4e9567a9
|
@ -43,6 +43,7 @@ export default {
|
||||||
|
|
||||||
// let all of app know who the user is(n't)
|
// let all of app know who the user is(n't)
|
||||||
this.$store.commit('SET_USER', response.data.user)
|
this.$store.commit('SET_USER', response.data.user)
|
||||||
|
this.$store.commit('SET_USER_IS_ADMIN', response.data.user ? response.data.user.is_admin : false)
|
||||||
this.$store.commit('SET_USER_IS_ROOT', response.data.user ? response.data.user.is_root : false)
|
this.$store.commit('SET_USER_IS_ROOT', response.data.user ? response.data.user.is_root : false)
|
||||||
|
|
||||||
// also keep track of user's permissions
|
// also keep track of user's permissions
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
|
|
||||||
<b-dropdown-item v-if="user.is_admin && !user_is_root"
|
<b-dropdown-item v-if="$store.state.user_is_admin && !user_is_root"
|
||||||
aria-role="listitem"
|
aria-role="listitem"
|
||||||
has-link
|
has-link
|
||||||
class="root-user">
|
class="root-user">
|
||||||
|
@ -124,7 +124,7 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
becomeRoot() {
|
becomeRoot() {
|
||||||
if (this.user_is_root || !this.user.is_admin) {
|
if (this.user_is_root || !this.$store.state.user_is_admin) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.$http.post(this.becomeRootUrl).then(response => {
|
this.$http.post(this.becomeRootUrl).then(response => {
|
||||||
|
|
|
@ -3,6 +3,23 @@ export function ByjovePlugin(Vue) {
|
||||||
Vue.mixin({
|
Vue.mixin({
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
|
$loginUser(user) {
|
||||||
|
|
||||||
|
// put user info in app store
|
||||||
|
this.$store.commit('SET_USER', user)
|
||||||
|
this.$store.commit('SET_USER_IS_ADMIN', user.is_admin)
|
||||||
|
// note, this should already be false
|
||||||
|
// this.$store.commit('SET_USER_IS_ROOT', false)
|
||||||
|
},
|
||||||
|
|
||||||
|
$logoutUser() {
|
||||||
|
|
||||||
|
// remove user info from app store
|
||||||
|
this.$store.commit('SET_USER', null)
|
||||||
|
this.$store.commit('SET_USER_IS_ADMIN', false)
|
||||||
|
this.$store.commit('SET_USER_IS_ROOT', false)
|
||||||
|
},
|
||||||
|
|
||||||
$hasPerm(name) {
|
$hasPerm(name) {
|
||||||
|
|
||||||
// if user is root then assume permission
|
// if user is root then assume permission
|
||||||
|
|
|
@ -3,6 +3,7 @@ export let ByjoveStoreConfig = {
|
||||||
state: {
|
state: {
|
||||||
session_established: false,
|
session_established: false,
|
||||||
user: null,
|
user: null,
|
||||||
|
user_is_admin: false,
|
||||||
user_is_root: false,
|
user_is_root: false,
|
||||||
permissions: [],
|
permissions: [],
|
||||||
},
|
},
|
||||||
|
@ -13,6 +14,9 @@ export let ByjoveStoreConfig = {
|
||||||
SET_USER(state, user) {
|
SET_USER(state, user) {
|
||||||
state.user = user
|
state.user = user
|
||||||
},
|
},
|
||||||
|
SET_USER_IS_ADMIN(state, is_admin) {
|
||||||
|
state.user_is_admin = is_admin
|
||||||
|
},
|
||||||
SET_USER_IS_ROOT(state, is_root) {
|
SET_USER_IS_ROOT(state, is_root) {
|
||||||
state.user_is_root = is_root
|
state.user_is_root = is_root
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue