2017 © Pedro Peláez
 

library rbac

基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。

image

houdunwang/rbac

基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。

  • Tuesday, October 10, 2017
  • by houdunwang
  • Repository
  • 1 Watchers
  • 7 Stars
  • 1,143 Installations
  • PHP
  • 3 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 8 Versions
  • 1 % Grown

The README.md

RBAC

介绍

基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。, (*1)

其他产品也可以使用该组件,请登录 GITHUB 查看源代码与说明文档。, (*2)

组件使用依赖 Session组件Db组件 请参考相关组件文档先进行配置后才可以使用RBAC组件。, (*3)

[TOC], (*4)

安装

使用 composer 命令进行安装或下载源代码使用。, (*5)

composer require houdunwang/rbac

HDPHP 框架已经内置此组件,无需要安装, (*6)

数据表

RBAC权限控制使用数据库进行管理,需要先创建使用的数据表。, (*7)

CREATE TABLE IF NOT EXISTS `access` (
  `role_id` smallint(6) unsigned NOT NULL,
  `node_id` smallint(6) unsigned NOT NULL,
  KEY `role_id` (`role_id`),
  KEY `nodeId` (`node_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `node` (
  `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `title` varchar(50) DEFAULT NULL,
  `status` tinyint(1) DEFAULT '0',
  `remark` varchar(255) DEFAULT NULL,
  `sort` smallint(6) unsigned DEFAULT NULL,
  `pid` smallint(6) unsigned NOT NULL,
  `level` tinyint(1) unsigned NOT NULL,
  `show` tinyint(1) unsigned NOT NULL default 1,
  PRIMARY KEY (`id`),
  KEY `level` (`level`),
  KEY `pid` (`pid`),
  KEY `status` (`status`),
  KEY `name` (`name`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `user` (
  `id` mediumint(9) unsigned NOT NULL AUTO_INCREMENT,auto_increment,
  `username` char(20) DEFAULT NULL,
  `password` char(32) DEFAULT NULL,
   PRIMARY KEY (`id`),
  KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `role` (
  `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `pid` smallint(6) DEFAULT NULL,
  `status` tinyint(1) unsigned DEFAULT NULL,
  `remark` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `pid` (`pid`),
  KEY `status` (`status`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `user_role` (
  `role_id` mediumint(9) unsigned DEFAULT NULL,
  `user_id` char(32) DEFAULT NULL,
  KEY `group_id` (`role_id`),
  KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

配置

$config = array(
    //1时时认证|2登录认证
    'type'                      => 1,           

    //站长名称(站长不需要验证)
    'super_user'               => 'admin', 

    //用户名字段
    'username_field'            => 'username',  

    //密码字段
    'password_field'            => 'password',  

    //用户SESSION名
    'auth_key'                  => 'id',       

    //不需要验证请求: array('Admin.User.add')
    //Admin模块 User控制器 add动作 不需要验证
    'no_auth'                   => array(),     

    //用户角色表
    'user_table'                => 'user',      

    //角色表
    'role_table'                => 'role',      

    //节点表
    'node_table'                => 'node',      

    //角色与用户关联表
    'user_role_table'           => 'user_role',

    //权限分配表
    'access_table'              => 'access',
);
\houdunwang\config\Config::set( 'rbac', $config );

操作

登录判断

\houdunwang\rbac\Rbac::isLogin();

验证权限

\houdunwang\rbac\Rbac::verify();

获取所有

\houdunwang\rbac\Rbac::getUserNode(1);
//获取id为1的用户的权限节点

获取用户所有角色名称

\houdunwang\rbac\Rbac::getRoleName(100);
//获取id为100的用户所有角色名称

获取系统所有节点信息,以层级显示

\houdunwang\rbac\Rbac::getLevelNode();

判断超级管理员

\houdunwang\rbac\Rbac::isSuperUser();

The Versions

10/10 2017

dev-master

9999999-dev http://www.houdunwang.com/

基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。

  Sources   Download

MIT

The Requires

 

by 后盾网向军

rbac hdphp houdunwang 后盾网 后盾人 向军老师

10/10 2017

v1.0.7

1.0.7.0 http://www.houdunwang.com/

基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。

  Sources   Download

MIT

The Requires

 

by 后盾网向军

rbac hdphp houdunwang 后盾网 后盾人 向军老师

17/05 2017

v1.0.6

1.0.6.0 http://www.houdunwang.com/

基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。

  Sources   Download

MIT

The Requires

 

by 后盾网向军

rbac hdphp houdunwang 后盾网 后盾人 向军老师

15/03 2017

v1.0.5

1.0.5.0 http://www.houdunwang.com/

基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。

  Sources   Download

MIT

The Requires

 

by 后盾网向军

rbac hdphp houdunwang 后盾网 后盾人 向军老师

06/01 2017

v1.0.4

1.0.4.0 http://www.houdunwang.com/

基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。

  Sources   Download

MIT

The Requires

 

by 后盾网向军

rbac hdphp houdunwang 后盾网 后盾人 向军老师

29/12 2016

v1.0.3

1.0.3.0 http://www.houdunwang.com/

基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。

  Sources   Download

MIT

The Requires

 

by 后盾网向军

rbac hdphp houdunwang 后盾网 后盾人 向军老师

27/12 2016

v1.0.1

1.0.1.0 http://www.houdunwang.com/

基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。

  Sources   Download

MIT

The Requires

 

by 后盾网向军

rbac hdphp houdunwang 后盾网 后盾人 向军老师

27/12 2016

v1.0.2

1.0.2.0 http://www.houdunwang.com/

基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。

  Sources   Download

MIT

The Requires

 

by 后盾网向军

rbac hdphp houdunwang 后盾网 后盾人 向军老师