geowrgetudor/laravel-spatie-permissions-vue

该包已废弃,不再维护。未建议替代包。

在Vue中使用Laravel Spatie Permission包

安装量: 5,447

依赖者: 0

建议者: 0

安全性: 0

星星: 6

关注者: 3

分支: 24

开放问题: 0

语言:JavaScript

类型:插件

1.0.0 2022-12-13 14:32 UTC

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>

使用方法

您可以使用全局函数canis来检查当前用户的权限和角色。

<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)。