定制 commacodes/laravel-roles-permissions 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

commacodes/laravel-roles-permissions

最新稳定版本:v1.0.1

Composer 安装命令:

composer require commacodes/laravel-roles-permissions

包简介

Simple roles and permissions package for Laravel.

README 文档

README

This Laravel package provides a simple role and permission system using JSON-based permissions.

Installation

composer require commacodes/laravel-roles-permissions

Publish config and migration files:

php artisan vendor:publish --provider="Commacodes\RolesPermissions\RolesPermissionsServiceProvider"
php artisan migrate

Configuration

Edit config/global.php to define your available permissions:

return [
    'permissions' => [
        'dashboard' => 'لوحة التحكم',
        'settings' => 'الإعدادات',
        // ...
    ],
];

Usage

Role Model

  • Permissions are stored as a JSON array in the permissions column (nullable).

User Model

Add the following method:

public function hasAbility($permissions)
{
    $role = $this->role;
    if (!$role) return false;

    foreach ($role->permissions as $permission) {
        if (is_array($permissions) && in_array($permission, $permissions)) {
            return true;
        } elseif (is_string($permissions) && strcmp($permission, $permissions) === 0) {
            return true;
        }
    }

    return false;
}

AuthServiceProvider

use Illuminate\Support\Facades\Gate;

public function boot()
{
    $this->registerPolicies();

    foreach (config('global.permissions') as $ability => $label) {
        Gate::define($ability, function ($auth) use ($ability) {
            return $auth->hasAbility($ability);
        });
    }
}

Blade Usage

@can('dashboard')
    <li><a href="/dashboard">Dashboard</a></li>
@endcan

Route Middleware

Route::middleware(['can:dashboard'])->group(function () {
    Route::get('/dashboard', [DashboardController::class, 'index']);
});

License

MIT © Commacodes

统计信息

  • 总下载量: 2
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-04-29