今天彻底完成了ROLE ,Auth,Manager的编写,
rbac权限控制的三个环节实现(角色、权限、管理员)
设置了RoleController,AuthController,ManagerController三个控制器来实现
相关知识点:
{html_options options=$rinfo selected=$role_id}$rinfo为一个数组形式如下 1=>XXX 2=>XXX 3=>XXX 4=>XXX 实现下拉列表,所以需要在Controller中构造相关数组 并且assign进去。
if(!empty($_POST)){ //收集表单实现修改权限 在AuthModel中实现、~ }else { //修改权限修改模块的简单逻辑,判断是否有表单提交 如果有则处理 否则展现表单
function addAuth($arr){ //首先添加数据,此时添加的数据并没有auth_path 和auth_level需要拼接 $auth_id = $this->add($arr); //return $add; //auth_pid分为两种情况 if($arr['auth_pid']==0){ $auth_path = $auth_id; }else{ //查询出父级的权限ixnxi $pinfo = $this->find($arr['auth_pid']); $auth_path = $pinfo['auth_path']."-".$auth_id; } //auth_level通过查询auth_path中-的个数来实现; $auth_level = substr_count($auth_path,'-'); //return $auth_level; $arr = array( 'auth_id' => $auth_id, 'auth_path' =>$auth_path, 'auth_level'=>$auth_level, ); return $this->save($arr); } }在Model中定义相关方法实现权限的录入数据库与修改,
循环遍历并且改变二维数组,也可以定义一个新的数组、
foreach($info as $k=>$v){ $info[$k]['auth_name'] = str_repeat("--",$v['auth_level']).$v['auth_name']; // echo $v['auth_name']; } return $info; //var_dump($info);