sentgine / authzone
Laravel的角色的权限管理可视化界面。
Requires
README
Authzone是一个为Laravel应用程序提供简单、用户友好的用户权限和角色管理界面的Laravel包。建立在流行的Spatie Laravel Permission包之上,AuthZone旨在通过提供一组直观的UI组件来简化用户身份验证和授权的实施过程,使用户能够轻松管理其角色和权限。
功能
- 简化用户身份验证和授权管理。
- 直观的角色和权限管理UI组件。
- 建立在Spatie Laravel Permission包之上,以提供灵活性和可扩展性。
要求
- Laravel 8.x或更高版本。
- PHP 8.0或更高版本。
安装
(1) 您可以通过运行以下命令通过Composer安装此包
composer require sentgine/authzone
Spatie的laravel-permission包将被包括为依赖项。
(2) 然后发布Spatie的PermissionServiceProvider(见:Laravel Permission安装)
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
(3) 然后运行迁移文件。
php artisan migrate
(4) 打开App\Models\User.php,并添加Spatie\Permission\Traits\HasRoles的HasRoles特型;
use HasRoles;
(5) 之后,您可以选择安装3个GUI(确保您在Laravel应用程序的根目录中)
- Authzone默认
- Jetstream
- Breeze
如果您使用Tailwind CSS,那么使用Jetstream或Breeze将不会遇到问题。但如果你使用另一个CSS框架,你必须使用Authzone默认。
Authzone默认
运行此命令将发布所有配置文件、路由和所有视图。如果您想修改整体设计,这非常好。
php artisan authzone:install
或者,您可以选择不发布视图。相反,您将仅使用现有的默认设计。
php artisan authzone:install --noviews
Jetstream
运行此命令将发布所有配置文件、路由和所有与Jetstream相关的视图。
php artisan authzone:install --jetstream
或
php artisan authzone:install --jetstream --noviews
使用Jetstream,您必须前往Laravel应用程序的根目录,并在/resources/views/navigation-menu.blade.php下添加此导航菜单@authzoneJetstreamNavMenu和@authzoneJetstreamNavMenuResponsive指令。
@if (Laravel\Jetstream\Jetstream::hasApiFeatures()) <x-dropdown-link href="{{ route('api-tokens.index') }}"> {{ __('API Tokens') }} </x-dropdown-link> @endif @authzoneJetstreamNavMenu ... The rest of the code
同样适用于移动视图的导航菜单。理想情况下,我会把它放在“个人资料”链接下。
<x-responsive-nav-link href="{{ route('profile.show') }}" :active="request()->routeIs('profile.show')"> {{ __('Profile') }} </x-responsive-nav-link> @authzoneJetstreamNavMenuResponsive ... The rest of the code
Breeze
运行此命令将发布所有配置文件、路由和所有与Breeze相关的视图。
php artisan authzone:install --breeze
或
php artisan authzone:install --breeze --noviews
使用Breeze,您仍然需要前往Laravel应用程序的根目录,并在/resources/views/layouts/navigation-menu.blade.php下添加此导航菜单@authzoneBreezeNavMenu和@authzoneBreezeNavMenuResponsive指令。
<x-dropdown-link :href="route('profile.edit')"> {{ __('Profile') }} </x-dropdown-link> @authzoneBreezeNavMenu ... The rest of the code
同样适用于移动视图的导航菜单。理想情况下,我会把它放在“仪表板”链接下。
<x-responsive-nav-link :href="route('dashboard')" :active="request()->routeIs('dashboard')"> {{ __('Dashboard') }} </x-responsive-nav-link> @authzoneBreezeNavMenuResponsive ... The rest of the code
(6) 在Laravel应用程序的根目录下打开tailwind.config.js,并将其添加到“content”键中(见:https://laravel.net.cn/docs/10.x/pagination)。
'./vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php',
(7) 可选,但您可能想根据用户角色保护一些路由。如果是这样,您可以访问Laravel Permission的中间件部分。
配置
AuthZone的配置文件位于config/authzone.php。此文件允许您自定义各种方面的包,例如视图、模型和路由组。
变更日志
请查看变更日志文件,以获取关于更改的详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件sentgine@gmail.com联系我们,而不是使用问题跟踪器。
致谢
Authzone由Adrian Alconera构建和维护。它基于Spatie Laravel Permission包。
许可证
MIT许可证(MIT)。请查看许可证文件以获取更多信息。