fix admin routes on vuejs

This commit is contained in:
Jack Goh
2018-06-21 16:35:09 +08:00
parent efb5f21567
commit 9acf2a773e
5 changed files with 15 additions and 6 deletions
+5 -2
View File
@@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
class UserController extends Controller
{
@@ -15,7 +16,9 @@ class UserController extends Controller
* @return \Illuminate\Http\Response
*/
public function show(Request $request)
{
return $request->user();
{
$user = Auth::user();
return $user;
}
}
+1 -1
View File
@@ -58,7 +58,7 @@ class User extends Authenticatable implements JWTSubject
*/
public function getRoleAttribute()
{
// return $this->roles->first()->name;
return $this->roles->first()->name;
}
/**
+2 -1
View File
@@ -1,7 +1,8 @@
import store from '~/store'
export default (to, from, next) => {
if (store.getters['auth/user'].role !== 'admin') {
console.log(store.getters['auth/role'])
if (store.getters['auth/role'] !== 'admin') {
next({ name: 'home' })
} else {
next()
+1 -1
View File
@@ -3,7 +3,7 @@ import store from '~/store'
export default async (to, from, next) => {
if (!store.getters['auth/check']) {
next({ name: 'login' })
} else if (store.getters['auth/user'].role == 'admin') {
} else if (store.getters['auth/role'] == 'admin') {
next({ name: 'admin.home' })
} else {
next()
+6 -1
View File
@@ -5,13 +5,15 @@ import * as types from '../mutation-types'
// state
export const state = {
user: null,
token: Cookies.get('token')
token: Cookies.get('token'),
role: null
}
// getters
export const getters = {
user: state => state.user,
token: state => state.token,
role: state => state.role,
check: state => state.user !== null
}
@@ -23,7 +25,9 @@ export const mutations = {
},
[types.FETCH_USER_SUCCESS] (state, { user }) {
console.log(user)
state.user = user
state.role = user.role
},
[types.FETCH_USER_FAILURE] (state) {
@@ -33,6 +37,7 @@ export const mutations = {
[types.LOGOUT] (state) {
state.user = null
state.role = null
state.token = null
Cookies.remove('token')