PHP成都培训中心官方网站
返回首页
当前位置: 主页 > 在线教学 >

zend framework探秘之四 zend ACL

时间:2009-09-21 22:03来源:www.phpchengdu.com 作者:罗维 点击:
zend framework提供了一个粒度较细的访问控制机制,可以让我们方便的进行权限控制,下面用一个简明的例子演示其使用方法。通过本例, 基本就能把握住ACL的常规使用了。哈哈,是不是
  

zend framework提供了一个粒度较细的访问控制机制,可以让我们方便的进行权限控制,下面用一个简明的例子演示其使用方法。通过本例,

基本就能把握住ACL的常规使用了。哈哈,是不是觉得ZF真的很强大呢。

  $acl = new Zend_Acl();
  //添加角色
  $acl->addRole(new Zend_Acl_Role('访客'));
  $acl->addRole(new Zend_Acl_Role('注册用户'),'访客');
  $acl->addRole(new Zend_Acl_Role('内部用户'),'注册用户');
  $acl->addRole(new Zend_Acl_Role('编辑'),'内部用户');
  $acl->addRole(new Zend_Acl_Role('管理员'),'编辑');
  //添加资源
  $acl->add(new Zend_Acl_Resource('查看普通新闻'));
  $acl->add(new Zend_Acl_Resource('查看收费新闻'));
  $acl->add(new Zend_Acl_Resource('查看内部新闻'));
  $acl->add(new Zend_Acl_Resource('添加与编辑新闻'));
  $acl->add(new Zend_Acl_Resource('后台管理'));
  //给角色赋权限
  $acl->allow('访客','查看普通新闻','读');
  $acl->allow('注册用户','查看收费新闻','读');
  $acl->allow('内部用户','查看内部新闻','读');
  
  
  $acl->allow('编辑','添加与编辑新闻','读');
  $acl->allow('编辑','添加与编辑新闻','写');
  //$acl->deny('编辑','查看普通新闻','读');
/*  if($acl->isAllowed('编辑','查看普通新闻','读')){
   echo "有";
  }else{
   echo "无";
  }
  echo "<br />";*/
  $acl->allow('管理员','后台管理','读');
  $acl->allow('管理员','后台管理','写');
  //演示例外
  $acl->deny('内部用户','查看收费新闻','读');

  //显示结果
  //$user=new user();
  //$user->role;
  echo "管理员查看普通新闻:";
  echo $acl->isAllowed('管理员', '查看普通新闻','读') ? '允许' : '禁止';
  echo "<br />";
  echo "管理员查看收费新闻:";
  echo $acl->isAllowed('管理员', '查看收费新闻','读') ? '允许' : '禁止';
  echo "<br />";
  echo "访客添加与编辑新闻:";
  echo $acl->isAllowed('访客', '添加与编辑新闻','写') ? '允许' : '禁止';
  echo "<br />";
  echo '内部用户查看收费新闻:';
  echo $acl->isAllowed('内部用户', '查看收费新闻','读') ? '允许' : '禁止';
  echo "<br />";
  echo "管理员添加与编辑新闻:";
  echo $acl->isAllowed('管理员', '添加与编辑新闻','写') ? '允许' : '禁止';
  echo "<br />";
  //删除前面定义的规则
  $acl->removeAllow('编辑','添加与编辑新闻','写');
  echo "管理员添加与编辑新闻:";
  echo $acl->isAllowed('管理员', '添加与编辑新闻','写') ? '允许' : '禁止';
  echo "<br />";

  //删除前面定义的规则
  $acl->removeDeny('内部用户','查看收费新闻','读');
  echo "<br />";
  echo '内部用户查看收费新闻:';
  echo $acl->isAllowed('内部用户', '查看收费新闻','读') ? '允许' : '禁止';
  echo "<br />";
  echo '管理员查看收费新闻:';
  echo $acl->isAllowed('管理员', '查看收费新闻','读') ? '允许' : '禁止';
  echo "<br />";

顶一下
(11)
78.6%
踩一下
(3)
21.4%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
发布者资料
ming 查看详细资料 发送留言 加为好友 用户等级:高级会员 注册时间:2009-01-01 16:01 最后登录:2010-04-26 17:04
推荐内容