zodexnl/spatie-permission-to-vue-inertia

在Vue中使用Inertia的Spatie权限包

安装次数: 2,108

依赖: 0

建议者: 0

安全性: 0

星标: 5

关注者: 0

分支: 27

语言:JavaScript

类型:插件

v1.0.1 2023-05-16 17:58 UTC

This package is auto-updated.

Last update: 2024-09-16 21:16:05 UTC


README

Inertia & Vue3

这个包是基于(ahmedsaoud31/laravel-permission-to-vuejs)的分支,需要spatie-permission包。

我创建这个分支的原因是在我的项目中,我需要强制刷新浏览器才能看到角色和/或权限的变化。为了使这个包正常工作,您需要使用Inertia和Vue3。

安装

composer require zodexnl/spatie-permission-to-vue-inertia

配置

首先,将以下特性添加到您的User模型中

use SpatiePermissionsToVueInertia\Traits\SpatiePermissionsToVue;

class User extends Authenticatable
{
    use SpatiePermissionsToVue;
    
}

其次,您需要在app.js文件中添加spatie-permission-to-vuejs插件

import LaravelPermissionToVueJS from "../../vendor/zodexnl/spatie-permission-to-vue-inertia/src/js;
import Vue from 'vue';

Vue.use(plugin);
Vue.use(LaravelPermissionToVueJS);

最后,您需要在HandleInertiaRequest.php中添加以下内容

public function share(Request $request)
{
    return array_merge(parent::share($request), [
        'permissions' => json_decode(auth()->check() ? auth()->user()->jsPermissions() : '{}', true),
    ]);
}

使用方法

您可以在项目中使用以下代码

<div v-if="can('Permission name')">
  <!-- Code -->
</div>

<div v-if="is('roleName')">
  <!-- Code -->
</div>

许可证

MIT许可证(MIT)。