geowrgetudor / laravel-spatie-permissions-vue
该包已废弃,不再维护。未建议替代包。
在Vue中使用Laravel Spatie Permission包
1.0.0
2022-12-13 14:32 UTC
Requires
- spatie/laravel-permission: >=5.4.0
This package is auto-updated.
Last update: 2024-04-13 18:08:03 UTC
README
此包是原始包(ahmedsaoud31/laravel-permission-to-vuejs)的分支,需要Spatie的laravel-permission。
它支持SSR。
安装
composer require geowrgetudor/laravel-spatie-permissions-vue
设置
将特例添加到您的User
模型中
use SpatiePermissionVue\Traits\RolesPermissionsToVue; class User extends Authenticatable { // ... use RolesPermissionsToVue; }
将laravel-spatie-permissions-vue
插件导入到您的app.js
文件中
import RolesPermissionsToVue from "../../vendor/geowrgetudor/laravel-spatie-permissions-vue/src/js"; // ... app.use(RolesPermissionsToVue);
在您的app.blade.php
或主要blade模板中,将Spatie的角色和权限传递给全局变量vueSpatiePermissions
<script type="text/javascript"> window.vueSpatiePermissions = {!! auth()->check() ? auth()->user()->getRolesPermissionsAsJson() : 0 !!} </script>
使用方法
您可以使用全局函数can
和is
来检查当前用户的权限和角色。
<div v-if="can('edit post')"> <!-- Edit post form --> </div> <div v-if="is('super-admin')"> <!-- Show admin tools --> </div> <!-- you can use OR operator --> <div v-if="can('edit post | delete post | publish post')"> <!-- Do something --> </div> <div v-if="is('editor | tester | user')"> <!-- Do something --> </div> <!-- you can use AND operator --> <div v-if="can('edit post & delete post & publish post')"> <!-- Do something --> </div> <div v-if="is('editor & tester & user')"> <!-- Do something --> </div>
许可证
MIT许可证(MIT)。