ribafs / laravel-acl
Laravel 8 应用中的 ACL 实现
This package is auto-updated.
Last update: 2024-09-09 21:41:38 UTC
README
此 README 的葡萄牙语版本
支持 Laravel 9 和 10
Alto 8 版本无 try。
使用用户、角色、权限、特性、中间件、提供者等
如何工作?
用户 'super' 可以访问所有表,并可以在每个表中做任何事情。用户 'admin' 只能访问权限、角色和用户表,并可以对他们做任何事情。用户 'manager' 只能访问客户表,并可以对其进行所有操作。'user' 用户只能访问客户索引视图。
以每个用户的身份登录以尝试使用。
测试环境
- Windows 7 和 10
- Linux Mint 20 和 21
2.0 版本的新功能
现在我们有两个区域,公共区域和管理区域。进入应用程序的根目录后,您可以访问客户列表和查看页面。登录后,您将根据用户拥有相应的权限。
在 Laravel 9 中创建一个名为 'acl' 的新应用程序
如果您有 Laravel 安装程序,使用
laravel new acl --jet --teams --stack=livewire cd acl npm install && npm run dev
如果没有,对于 Laravel 10
composer create-project --prefer-dist laravel/laravel acl
对于 Laravel 9
composer create-project --prefer-dist laravel/laravel acl "9.5.2"
cd acl
composer require laravel/jetstream
php artisan jetstream:install livewire
npm install && npm run dev
创建和配置数据库
nano .env
安装 laravel-acl
composer require ribafs/laravel-acl
发布
php artisan vendor:publish --provider="Ribafs\LaravelAcl\LaravelAclServiceProvider"
复制一些现有文件
- DatabaseSeeder.php
- routes/web.php
- views/welcome.blade.php
- views/layouts/app.blade.php
复制文件
php artisan copy:files
现在所有包文件已经存在于您的应用程序中:迁移、种子、模型、中间件、提供者等
调整应用程序标题(可选)
编辑 .env 并将 APP_NAME 行更改为类似以下内容:APP_NAME='ACL to Laravel 9'
尝试
在添加您的 CRUD 后,运行并测试应用程序的访问控制。
php artisan migrate --seed php artisan serve localhost:8000/login
如果您收到错误
Target class [Fruitcake\Cors\HandleCors] does not ...
则编辑
app/Http/Kernel.php
并注释掉以下行
//\Fruitcake\Cors\HandleCors::class,
用于测试
- super@mail.org
- 123456
然后测试其他用户:admin、manager 和 user
重要
此包旨在用于新应用程序。请避免将其用于现有应用程序,因为它可能会覆盖一些文件。
更详细的文档
上述信息和更多关于如何充分利用此包的信息(目前只有英文)
https://ribafs.github.io/laravel-acl
如何使用 ribafs/laravel-acl 创建演示应用程序
创建一个没有任何用户拥有的权限(示例)
all-no
php artisan add:perm 'No perms' all-no
并将其分配给所有不想访问的视图
@can('all-no')
在动作上
public function create(Request $request) { if ($request->user()->can('all-no')) { return view('admin.clients.create'); }else{ print '<a href="#" onClick="window.history.back();">Back to app</a>'; return '<h3 align="center">Access denied in this demo</h3>'; } }
仅允许具有所有-无权限的用户执行动作,该权限没有任何用户拥有。
因此,您不需要更改视图。
Laravel 8 版本用于现有应用程序
如果您想使用 Laravel 7 版本的包,请点击以下链接
https://github.com/ribafs/laravel-acl-exist
Laravel 7 版本
如果您想使用 Laravel 7 版本的包,请点击以下链接
https://github.com/ribafs/laravel7-acl
Laravel 6 版本
如果您想使用 Laravel 6 版本的包,请点击以下链接
https://github.com/ribafs/laravel6-acl
Laravel 5.8 版本
如果您想使用 Laravel 5.8 版本的包,请点击以下链接
https://github.com/ribafs/laravel58-acl
快速交流想法
https://github.com/ribafs/laravel-acl/discussions/
许可证
MIT