/** * 检测是否是需要动态判断的权限 * @return boolean|null * 返回true则表示当前访问有权限 * 返回false则表示当前访问无权限 * 返回null,则会进入checkRule根据节点授权判断权限 * */ protected function checkDynamic() { if (IS_ROOT) { return true; //管理员允许访问任何页面 } //模型权限业务检查逻辑 // //提供的工具方法: //$AUTH_GROUP = D('AuthGroup'); // $AUTH_GROUP->checkModelId($mid); //检查模型id列表是否全部存在 // AuthGroupModel::getModelOfGroup($gid);//获取某个用户组拥有权限的模型id $model = new AuthGroupModel(); $model_ids = $model->getGroups(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 }