Ejemplo n.º 1
0
 /**
  * 检测是否是需要动态判断的权限
  * @return boolean|null
  *      返回true则表示当前访问有权限
  *      返回false则表示当前访问无权限
  *      返回null,则会进入checkRule根据节点授权判断权限
  *
  * @author 朱亚杰  <*****@*****.**>
  */
 protected function checkDynamic()
 {
     if (IS_ROOT) {
         return true;
         //管理员允许访问任何页面
     }
     //模型权限业务检查逻辑
     //
     //提供的工具方法:
     //$AUTH_GROUP = D('AuthGroup');
     // $AUTH_GROUP->checkModelId($mid);      //检查模型id列表是否全部存在
     // AuthGroupModel::getModelOfGroup($gid);//获取某个用户组拥有权限的模型id
     $model_ids = AuthGroupModel::getAuthModels(UID);
     $id = I('id');
     switch (strtolower(ACTION_NAME)) {
         case 'edit':
             //编辑
         //编辑
         case 'update':
             //更新
             if (in_array($id, $model_ids)) {
                 return true;
             } else {
                 return false;
             }
         case 'setstatus':
             //更改状态
             if (is_array($id) && array_intersect($id, (array) $model_ids) == $id) {
                 return true;
             } elseif (in_array($id, $model_ids)) {
                 return true;
             } else {
                 return false;
             }
     }
     return null;
     //不明,需checkRule
 }