yii提供了完善的角色权限控制,但是那个东西比较庞大,我就希望三级权限即可,游客可以看前台,普通用户和管理员可以登录前台并管理内容,后台只有管理员可登录。并且没有太多的权限需要细分,可以后台可以使用全局的一个权限控制,直接判断是否是管理员即可。
用yii的同学都知道,yiic自动生成的项目中,使用了accessControl这么一个filter,其自动调用Controller的accessRules函数,生成的函数内容数组中,有一个很明显的就是其有roles属性。
我就想,我是否能直接写一个accessRules函数,然后直接只有roles=>admin才是allow操作呢?可是roles又是如何判断的呢?带着问题一路查看源码,在CAccessRule里面有这么一大段。大致是对每条rule会先调用isUserAllowed,这里面又会调用isUserMatched和isRoleMatched,分别对user和role进行检查。
阅读全部内容…
Tags: php, yii
yhustc On
Web开发
@ 2011-06-27 15:06:58 |
没有评论
开始在本地调试没有发现这个问题,新系统上线后发现YII报500错误。说是layout中有个变量没有设置,可是我明明在render函数里面设置了这个变量。后来查看代码才知道,原来layout中要用变量需要用this指针的pull形式。具体怎么回事看代码就很明了了。输出的layout仅仅是把局部模板作为content值传入外部模板。并没有做render推送的变量的合并。
阅读全部内容…
Tags: php, yii
yhustc On
Web开发
@ 2011-05-08 14:05:46 |
没有评论
做个备份,慢慢更新
1、他的验证码类不好用。配合CActiveForm的话,每次验证都会被自动更换session里面的验证码,导致每次验证都是错误的。除非你把testLimit设置的不等于1,让同一验证码能持续访问几次后再更新session值。但是这个就不能防灌水机了,因为可以配合人肉识别验证码。所以我自己实现了一个widget。
2、如何结合使用event和behavior,在guide手册上面没有说。测试了一下,首先为类绑定行为,然后添加事件时是关联的行为函数,在进行event触发的时候无法通过CComponent.php 567行“else if(method_exists($object,$method))”。因为能调用行为的相关方法,是因为有魔术方法,但是method_exists检查是无法通过的。也就是除非你用CActiveRecordBehavior实现相关model操作的event处理,普通情况下event没法与behavior结合使用。
阅读全部内容…
Tags: php, yii
yhustc On
Web开发
@ 2011-05-07 17:36:56 |
2条评论
最新评论