njbm/role-permission 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

njbm/role-permission

最新稳定版本:v1.0

Composer 安装命令:

composer require njbm/role-permission

包简介

A simple, robust role-permission package for Laravel (one role per user).

README 文档

README

A simple, robust, and easy-to-manage Laravel role-permission system (one role per user) — no external dependencies like Spatie.

Built and maintained by Jaber Masud

📦 Installation

Option 1: Install from GitHub (Packagist style)

composer require njbm/role-permission

Update

composer update njbm/role-permission

Specific Virsion

composer require njbm/role-permission:^1.0.1

Remove package

composer remove njbm/role-permission

⚙️ Configuration

Step 1: Add service provider and alias (optional for Laravel < 5.5)

// config/app.php

'providers' => [
    RolePermission\RolePermissionServiceProvider::class,
],

'aliases' => [
    'AccessControl' => RolePermission\Facades\AccessControl::class,
],

Step 2: Publish the config file

php artisan vendor:publish --provider="RolePermission\RolePermissionServiceProvider" --tag=config

🛠 Database Setup

Step 1: Migrate Tables

php artisan migrate

Step 2: Seed Default Roles and Permissions

php artisan db:seed --class="RolePermission\Seeders\RolePermissionSeeder"

🔐 Seeder uses config('role-permission.default_roles') to assign permissions to each role.

🧠 Model Setup

Add trait to your Admin or User model (must have role_id column):

use RolePermission\Traits\HasPermissions;

class Admin extends Authenticatable
{
    use HasPermissions;
}

✅ Usage

Use the AccessControl facade anywhere to check permissions or roles:

use AccessControl;

if (AccessControl::can('edit address')) {
    // Authorized
}

if (AccessControl::role('admin')) {
    // Admin only
}

🛡 Middleware setup

Add middleware to app/Http/Kernel.php:

'check.permission' => \RolePermission\Middleware\CheckPermission::class,

Use middleware on routes:

'check.permission' => \RolePermission\Middleware\CheckPermission::class,

🧩 Blade directive (optional)

Register in AppServiceProvider:

Blade::if('canDo', function ($permission) {
    return \AccessControl::can($permission);
});

Use in Blade templates:

@canDo('delete address')
    <button>Delete</button>
@endcanDo

⚙ Example config/role-permission.php

return [
    'default_roles' => [
        'admin' => [
            'edit address',
            'delete address',
            'view dashboard',
        ],
        'editor' => [
            'edit address',
        ],
    ],
];

📜 Summary

Install package via composer

Publish config and migrate database tables

Seed default roles and permissions

Add trait to your User/Admin model

Use AccessControl facade for permission checks

Protect routes with middleware

Use optional Blade directive for cleaner views

📄 License

MIT License — created by Jaber Masud

jaber.netlify.app

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-07-24