kyrch/laravel-prohibitions
最新稳定版本:v1.0.1
Composer 安装命令:
composer require kyrch/laravel-prohibitions
包简介
Prohibit your models from execute an action in a way similar to spatie/laravel-permission.
README 文档
README
Description
Laravel Prohibitions is a Laravel package that allows you to prohibit users from executing specific actions for a determined period of time.
Instead of relying on hard-coded checks or ad-hoc flags, this package introduces a sanction-based system where actions can be explicitly denied through well-defined rules.
The package also provides a Sanction model, which works as a preset of prohibited actions, making it easy to group multiple prohibitions under a single disciplinary rule — such as temporary bans, feature restrictions, or full account suspensions.
Installation
You can install the package via composer:
composer require kyrch/laravel-prohibitions
You can publish and run the migrations with:
php artisan vendor:publish --tag="laravel-prohibitions-migrations"
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --tag="laravel-prohibitions-config"
Usage
Setup
Add the HasSanctions trait to your User model:
use Kyrch\Prohibition\Traits\HasSanctions; class User extends Authenticatable { use HasSanctions; }
You need to create your sanctions and prohibitions first. For example:
$prohibition = Prohibition::query()->create(['name' => 'update post']); $sanction = Sanction::query()->create(['name' => 'posts']); $prohibition->sanctions()->attach($sanction);
How to prohibit
Now you can use methods this packages provides, such as:
# Prohibit the user from updating any posts. $user->prohibit('update post', now()->addWeek()); # Similar to roles, you can create a kind of "ban preset" that has a group of prohibitions. $user->applySanction('posts', now()->addWeek()); # Check if user is prohibited from updating any post. $user->isProhibitedFrom('update post');
It is recommended to use the isProhibitedFrom() method in your Gate::before or
the before method in your policy class.
Events
There are two events: ModelProhibitionTriggered and ModelSanctionTriggered.
If you don't want them enabled, you can disable it in the published config file.
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-19