andmarruda/authorization-module
Composer 安装命令:
composer require andmarruda/authorization-module
包简介
Role and permission management module for Laravel
README 文档
README
Role, permission, and plan-based access control for Laravel applications.
Package: andmarruda/authorization-module
Namespace: Andmarruda\\AuthorizationModule
Requirements
- PHP 8.1+
- Laravel 11+
- Database configured for your app
Install
composer require andmarruda/authorization-module
Provider auto-discovery is enabled.
If your app does not use Laravel package auto-discovery, register providers manually:
// config/app.php 'providers' => [ Spatie\Permission\PermissionServiceProvider::class, Andmarruda\AuthorizationModule\AuthorizationModuleServiceProvider::class, ],
Publish configs:
php artisan vendor:publish --provider="Spatie\\Permission\\PermissionServiceProvider"
php artisan vendor:publish --tag=authorization-config
Publish all required migrations (Authorization Module + Spatie) with one command:
php artisan authorization:publish-migrations
Use --force to overwrite previously published files.
Run migrations:
php artisan migrate
Application Setup
1. Add the trait to your User model
<?php namespace App\Models; use Andmarruda\AuthorizationModule\Contracts\Authorizable; use Andmarruda\AuthorizationModule\Traits\HasAuthorization; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements Authorizable { use HasAuthorization; }
2. Configure config/authorization.php
Set your user model:
'user_model' => App\Models\User::class,
Adjust route prefix and middleware as needed:
'route_prefix' => 'authorization', 'middleware' => ['auth'],
3. Configure Spatie (if needed)
If you changed guards/tables in config/permission.php, keep them aligned with your app guard strategy.
Available Endpoints
By default all endpoints are under /authorization.
Roles and Permissions
GET /authorization/rolesPOST /authorization/rolesPUT /authorization/roles/{id}DELETE /authorization/roles/{id}POST /authorization/roles/{id}/permissionsGET /authorization/permissionsPOST /authorization/permissionsDELETE /authorization/permissions/{id}GET /authorization/users/{id}/rolesPOST /authorization/users/{id}/rolesDELETE /authorization/users/{id}/rolesPUT /authorization/users/{id}/rolesGET /authorization/users/{id}/permissions
Plans
GET /authorization/plansPOST /authorization/plansPUT /authorization/plans/{id}DELETE /authorization/plans/{id}GET /authorization/users/{id}/plansPOST /authorization/users/{id}/plans/subscribePOST /authorization/users/{id}/plans/cancelPOST /authorization/users/{id}/plans/consume
Deployment Guide
Production checklist
- Install package and publish configs.
- Set
'user_model'inconfig/authorization.php. - Ensure
APP_ENV,APP_DEBUG, DB credentials, and cache drivers are correct. - Run migrations in target environment.
- Clear and rebuild caches.
- Run smoke tests on auth routes.
Typical deploy commands
composer install --no-dev --optimize-autoloader php artisan migrate --force php artisan config:cache php artisan route:cache php artisan view:cache
If your deployment creates cache before publishing config, run publish first and rebuild cache.
Post-deploy verification
- Confirm role/permission CRUD endpoints respond.
- Confirm user-role assignment works.
- Confirm plan subscription/consume flow works.
- Confirm audit logs and plan tables are being written.
Notes
- Plan enforcement behavior is controlled by
authorization.plans.*options. - Routes are unversioned by default. For API versioning, apply a
v1prefix in your application routing strategy.
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2026-07-08