Я использую Laravel
и VueJs
для своего приложения, и я хочу интегрировать раздел для ролей и разрешений, и для этого я использую Spat ie.
В приложении у каждого пользователя может быть несколько ролей (например: администратор, учитель, редактор), и каждая роль имеет определенные разрешения.
Я пробовал кое-что из здесь , ответ Шуйи, но я получаю некоторые ошибки.
Вопрос в том, как я могу проверить роли в VueJS
?
Контроллер
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TeachersController extends Controller
{
function check($permissionName) {
if (! Auth::user()->hasPermissionTo($permissionName)) {
abort(403);
}
return response('', 204);
}
}
web. php
Route::group(['middleware' => 'auth'], function () {
Route::get('/permission/{permissionName}', 'PermissionController@check');
});
приложение. js
Vue.mixin("can", (permissionName) => {
let hasAccess;
axios.get(`/permission/${permissionName}`)
.then(() => {
hasAccess = true;
})
.catch(() => {
hasAccess = false;
});
return hasAccess;
});
приложение vue
<template>
<button v-if="can('write-stuff')">Just a test!</button>
</template>
Свойство или метод can не определены в экземпляре, но на них ссылаются во время рендеринга. Убедитесь, что это свойство является реактивным либо в параметре данных, либо для компонентов на основе классов, инициализировав свойство. См .: https://vuejs.org/v2/guide/reactivity.html#Declaring -реактивные-свойства .