PHPackages                             jzkf/yii2-rbac - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. jzkf/yii2-rbac

ActiveYii2-extension[Authentication &amp; Authorization](/categories/authentication)

jzkf/yii2-rbac
==============

Yii2 RBAC Management and Access Control Module

1.0.2(4mo ago)04BSD-3-ClausePHPPHP &gt;=7.4.0

Since Jan 8Pushed 4mo agoCompare

[ Source](https://github.com/jzkf/yii2-rbac)[ Packagist](https://packagist.org/packages/jzkf/yii2-rbac)[ RSS](/packages/jzkf-yii2-rbac/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (4)Used By (0)

Yii2 RBAC Module
================

[](#yii2-rbac-module)

一个功能完整的 Yii2 RBAC（基于角色的访问控制）管理模块，提供权限管理、角色管理和权限校验功能。

安装
--

[](#安装)

```
composer require jzkf/yii2-rbac
```

功能特性
----

[](#功能特性)

- ✅ **权限管理**：完整的权限 CRUD 操作
- ✅ **角色管理**：完整的角色 CRUD 操作
- ✅ **角色权限分配**：为角色分配/移除权限，支持全选功能
- ✅ **管理员管理**：管理员的角色分配和用户管理
- ✅ **自动权限扫描**：自动扫描控制器并生成权限
- ✅ **权限校验组件**：提供 AccessControl 过滤器进行权限校验
- ✅ **菜单助手**：根据用户权限自动生成后台菜单
- ✅ **可配置**：支持自定义扫描路径、控制器名称映射等

快速开始
----

[](#快速开始)

### 1. 在应用配置中注册模块

[](#1-在应用配置中注册模块)

在 `config/web.php` 中添加：

```
'modules' => [
    'rbac' => [
        'class' => 'jzkf\rbac\Module',
        'scanPaths' => [
            '@app/controllers/backend',
        ],
        'controllerNames' => [
            'Post' => '文章',
            'Category' => '分类',
            // ... 更多映射
        ],
        'actionDescriptions' => [
            'index' => '列表',
            'create' => '创建',
            'update' => '更新',
            'delete' => '删除',
            // ... 更多映射
        ],
    ],
],
```

### 2. 配置全局访问控制

[](#2-配置全局访问控制)

在 `config/web.php` 中添加：

```
'as access' => [
    'class' => 'jzkf\rbac\components\AccessControl',
    'allowActions' => [
        'site/*',           // 前台站点路由
        'debug/*',          // Debug 工具（开发环境）
        'gii/*',            // Gii 工具（开发环境）
    ],
    'backendPrefixes' => [
        '/backend',         // 后台管理路由
        '/rbac',            // RBAC 模块路由
    ],
],
```

### 3. 运行迁移（可选）

[](#3-运行迁移可选)

如果需要初始化权限数据，可以运行迁移文件：

```
php yii migrate/up --migrationPath=@yii/rbac/migrations
php yii migrate --migrationPath=@vendor/jzkf/yii2-rbac/src/migrations
```

### 4. 使用菜单助手

[](#4-使用菜单助手)

在布局文件中使用菜单助手：

```
use jzkf\rbac\components\BackendMenuHelper;

$menuItems = BackendMenuHelper::getAssignedMenu();
```

目录结构
----

[](#目录结构)

```
yii2-rbac/
├── src/
│   ├── components/          # 组件
│   │   ├── AccessControl.php          # 访问控制过滤器
│   │   ├── BackendMenuHelper.php      # 后台菜单助手
│   │   ├── PermissionHelper.php       # 权限助手
│   │   └── PermissionScanner.php      # 权限扫描器
│   ├── controllers/         # 控制器
│   │   ├── AdminController.php        # 管理员管理
│   │   ├── DefaultController.php      # 默认控制器（统计面板）
│   │   ├── PermissionController.php   # 权限管理
│   │   ├── RoleController.php         # 角色管理
│   │   └── RolePermissionController.php # 角色权限分配
│   ├── migrations/          # 数据库迁移
│   ├── views/               # 视图文件
│   ├── Bootstrap.php        # 引导类
│   └── Module.php           # 模块类
├── composer.json
└── README.md

```

使用说明
----

[](#使用说明)

### 权限管理

[](#权限管理)

访问 `/rbac/permission/index` 可以：

- 查看所有权限
- 创建新权限
- 编辑权限
- 删除权限
- **扫描权限**：自动扫描控制器并生成权限

### 角色管理

[](#角色管理)

访问 `/rbac/role/index` 可以：

- 查看所有角色
- 创建新角色
- 编辑角色
- 删除角色
- **权限设置**：为角色分配权限（支持全选/取消全选）

### 管理员管理

[](#管理员管理)

访问 `/rbac/admin/index` 可以：

- 查看所有管理员
- 创建新管理员
- 编辑管理员信息
- 分配角色
- 封禁/启用管理员

权限扫描
----

[](#权限扫描)

模块提供了自动权限扫描功能，可以自动从控制器中提取 action 方法并生成权限。

访问 `/rbac/permission/scan` 或点击"扫描权限"按钮，系统会：

1. 扫描配置的 `scanPaths` 中的所有控制器
2. 提取所有 `action*` 方法
3. 生成路由格式的权限名称
4. 自动创建不存在的权限
5. 清理缓存

权限命名规则
------

[](#权限命名规则)

权限名称使用路由格式：

- `/backend/post/index` - 文章列表
- `/backend/post/create` - 创建文章
- `/backend/post/update` - 更新文章
- `/backend/post/delete` - 删除文章

支持通配符权限：

- `/backend/post/*` - 匹配所有 `/backend/post/` 下的路由

缓存管理
----

[](#缓存管理)

模块使用缓存来提高性能。当权限、角色或管理员数据发生变化时，会自动清理相关缓存：

- 权限缓存
- 菜单缓存

也可以在代码中手动清理：

```
use jzkf\rbac\components\PermissionHelper;
use jzkf\rbac\components\BackendMenuHelper;

// 清理所有权限缓存
PermissionHelper::clearCache();

// 清理所有菜单缓存
BackendMenuHelper::clearCache();
```

配置选项
----

[](#配置选项)

### Module 配置

[](#module-配置)

- `scanPaths` (array): 权限扫描路径，默认为 `['@app/controllers/backend']`
- `controllerNames` (array): 控制器名称映射，用于生成中文描述
- `actionDescriptions` (array): Action 描述映射，用于生成中文描述
- `defaultRoute` (string): 默认路由，默认为 `'default/index'`

### AccessControl 配置

[](#accesscontrol-配置)

- `allowActions` (array): 允许访问的路由列表（白名单）
- `backendPrefixes` (array): 后台路由前缀，默认 `['/backend', '/rbac']`

截图（Screenshots）
---------------

[](#截图screenshots)

### RBAC 管理面板

[](#rbac-管理面板)

[![RBAC 管理面板](screenshot/RBAC%20%E7%AE%A1%E7%90%86%E9%9D%A2%E6%9D%BF%20-%20default.png)](screenshot/RBAC%20%E7%AE%A1%E7%90%86%E9%9D%A2%E6%9D%BF%20-%20default.png)

RBAC 模块的默认首页，显示管理员数量、角色数量和权限数量的统计信息。

### 权限管理

[](#权限管理-1)

[![权限管理](screenshot/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86%20-%20permission.png)](screenshot/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86%20-%20permission.png)

权限管理页面，可以查看、创建、编辑、删除权限，以及使用"扫描权限"功能自动生成权限。

### 角色管理

[](#角色管理-1)

[![角色管理](screenshot/%E8%A7%92%E8%89%B2%E7%AE%A1%E7%90%86%20-%20role%20index.png)](screenshot/%E8%A7%92%E8%89%B2%E7%AE%A1%E7%90%86%20-%20role%20index.png)

角色管理页面，可以查看、创建、编辑、删除角色。

### 角色权限分配

[](#角色权限分配)

[![角色权限分配](screenshot/%E6%9D%83%E9%99%90%E8%AE%BE%E7%BD%AE_%20manager(%E7%AE%A1%E7%90%86%E5%91%98)%20-%20role-permission.png)](screenshot/%E6%9D%83%E9%99%90%E8%AE%BE%E7%BD%AE_%20manager(%E7%AE%A1%E7%90%86%E5%91%98)%20-%20role-permission.png)

为角色分配权限的页面，支持全选/取消全选功能，可以快速为角色分配多个权限。

### 管理员角色分配

[](#管理员角色分配)

[![管理员角色分配](screenshot/%E8%A7%92%E8%89%B2%E5%88%86%E9%85%8D_%20admin%20-%20assign.png)](screenshot/%E8%A7%92%E8%89%B2%E5%88%86%E9%85%8D_%20admin%20-%20assign.png)

为管理员分配角色的页面，可以管理管理员的角色权限。

许可证
---

[](#许可证)

BSD-3-Clause

支持
--

[](#支持)

如有问题或建议，请提交 Issue 或 Pull Request。

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance77

Regular maintenance activity

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

125d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/18459c253cc6dd86b578ece4e13ac94142daf7f582aeb389e70a78ea65b7ba8e?d=identicon)[baoguok](/maintainers/baoguok)

---

Top Contributors

[![realjasonkang](https://avatars.githubusercontent.com/u/36024250?v=4)](https://github.com/realjasonkang "realjasonkang (4 commits)")

---

Tags

permissionrbacyii2adminaccess-controlrole

### Embed Badge

![Health badge](/badges/jzkf-yii2-rbac/health.svg)

```
[![Health](https://phpackages.com/badges/jzkf-yii2-rbac/health.svg)](https://phpackages.com/packages/jzkf-yii2-rbac)
```

###  Alternatives

[casbin/laravel-authz

An authorization library that supports access control models like ACL, RBAC, ABAC in Laravel.

324339.9k4](/packages/casbin-laravel-authz)[casbin/think-authz

An authorization library that supports access control models like ACL, RBAC, ABAC for ThinkPHP.

27918.5k6](/packages/casbin-think-authz)[liujx/yii2-app-advanced

Yii2 ace-admin RBAC management background

1301.4k](/packages/liujx-yii2-app-advanced)[jinxing/yii2-admin

RBAC Auth manager for Yii2

381.0k1](/packages/jinxing-yii2-admin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
