sentgine/authzone

Laravel的角色的权限管理可视化界面。

v1.0.5 2023-09-21 17:31 UTC

This package is auto-updated.

Last update: 2024-09-21 19:37:24 UTC


README

License Latest Stable Version Total Downloads

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)。请查看许可证文件以获取更多信息。