wijzijnweb / laravel-inertia-permissions
一个易于使用的包,可以将Spatie的权限包集成到Inertia Laravel项目中。
1.0.5
2024-04-23 11:17 UTC
Requires
- php: ^8.1
- spatie/laravel-permission: ^6.0 || ^5.0
README
一个易于使用的包,可以将Spatie的权限包集成到Inertia Laravel项目中。此包还包含Vue组件,用于显示和编辑当前用户的角色以及管理角色和权限。
安装
您可以通过composer安装此包
composer require wijzijnweb/laravel-inertia-permissions
您可以使用以下命令发布和运行迁移
php artisan migrate
将以下内容添加到您的vite.config.js文件中
resolve: { alias: { '@laravel-inertia-permissions': 'vendor/wijzijnweb/laravel-inertia-permissions/resources/js' } }
可选地,您可以将以下内容添加到您的jsconfig.json文件中
{ "compilerOptions": { "paths": { "@laravel-inertia-permissions/*": ["./vendor/wijzijnweb/laravel-inertia-permissions/resources/js/*"] } } }
使用方法
权限和角色会自动与Inertia共享。您可以在Vue组件中这样访问它们
import usePermissions from '@laravel-inertia-permissions/Uses/usePermissions.js'; const { can, is } = usePermissions() if (can('edit articles')) { // do something } if (is('writer')) { // do something }
import FormRoles from '@laravel-inertia-permissions/Components/FormRoles.vue'; import FormPermissions from '@laravel-inertia-permissions/Components/FormPermissions.vue'; <FormRoles v-model="form.roles" /> <FormPermissions v-model="form.permissions" />
您还可以使用指令来隐藏特定元素。为此,您需要在app.js文件中注册这些指令
import { hasRoleDirective, hasPermissionDirective } from '@laravel-inertia-permissions/Directives/permissionDirective.js'; createApp({render: () => h(App, props)}) .directive('hasRole', hasRoleDirective) .directive('hasPermission', hasPermissionDirective)
之后,您可以在Vue组件中使用这些指令:您可以使用管道符号和和符号来检查多个角色或权限
<MyComponent v-has-role="'admin|writer'" /> <MyComponent v-has-permission="'edit articles&delete articles'" />
还有一个组件可以防止用户看到某些内容,并显示反馈消息
import HasPermission from '@laravel-inertia-permissions/Components/HasPermission.vue'; <HasPermission permission="edit articles" role="writer"> <p>You can edit articles</p> </HasPermission>
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
鸣谢
许可协议
MIT许可协议(MIT)。请参阅许可文件以获取更多信息。