关于Auth

浏览:1570 发布日期:2013/12/10 分类:技术分享 关键字: auth,规则
手上刚好要做一个rbac,刚开始准备用tp自带的写的,搜索的时候看到有个Auth。正好时间宽裕就准备尝试下新的玩意。
整个扩展一共2多行,除去sql语句和注释,也就100多行代码。看了开头的sql语句,发现作者没有给出表think_members的结构,有点小不爽。不过这个不难,自己列下表之间的关系就明白了。
浏览了完代码,发现作者的想法还是很不错的,给32个赞。因为作者没给出详尽的例子,所以很多人对其中怎么添加规则感到头痛。说实话,刚开头的几行注释对规则解释的太少了...规则的精华就在这两行代码中:$command = preg_replace('/\{(\w*?)\}/', '$user[\'\\1\']', $r['condition']);
                @(eval('$condition=(' . $command . ');'));

第一行:把condition中带{}的名称的字符串换成$user[''],如:{server}->$user['server].
第二行:然后用eval执行,返回true或者false。
所以规则你可以这么写: in_array({server},array('11','12')) and {time} = 123456, 也可以这么写:{test}=='OK'。其实就是PHP代码啊,骚年们....
最佳答案
评论( 相关
后面还有条评论,点击查看>>