ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# RBAC ##介绍 后盾 HDPHP 框架支持完善的,强大的基于角色的 **RBAC** 权限控制 , 所有操作都通过核心类 Rbac Facade 完成。 ##数据表 ``` 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; ``` ##配置项 ``` <?php return 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', ); ``` ##操作 **登录判断** ``` Rbac::isLogin(); ``` **验证权限** ``` Rbac::verify(); ``` **获取所有** ``` Rbac::getUserNode(1); //获取id为1的用户的权限节点 ``` **获取用户所有角色名称** ``` Rbac::getRoleName(100); //获取id为100的用户所有角色名称 ``` **获取系统所有节点信息,以层级显示** ``` Rbac::getLevelNode(); ``` **判断超级管理员** ``` Rbac::isSuperUser(); ``` <br/><br/><br/><br/><br/><br/><br/>