simpman
- simpman 回复了话题 关于网站前后台的第二种制作方法
如果进入module的时候要进行密码验证并且和前台登录分开
就要进行设置对执行的动作进行识别进入module的密码验证怎么和前台登陆分开的?没看明白
- simpman 回复了话题 你不一定能胜任翻译API这个工作
翻译了放哪?
貌似不是环境问题。我以前apache中Yii一连接mysql apache就挂掉。和这个差不多。
- simpman 回复了话题 权限检查错误,checkaccess
checkAccess 验证的源码;有不懂的看源码吧。
framework/web/auth/CPhpAuthManager.php#64public function checkAccess($itemName,$userId,$params=array()) { if(!isset($this->_items[$itemName])) return false; $item=$this->_items[$itemName]; Yii::trace('Checking permission "'.$item->getName().'"','system.web.auth.CPhpAuthManager'); if($this->executeBizRule($item->getBizRule(),$params,$item->getData())) { if(in_array($itemName,$this->defaultRoles)) return true; if(isset($this->_assignments[$userId][$itemName])) { $assignment=$this->_assignments[$userId[$itemName]; if($this->executeBizRule($assignment->getBizRule(),$params,$assignment->getData())) return true; } foreach($this->_children as $parentName=>$children) { if(isset($children[$itemName]) && $this->checkAccess($parentName,$userId,$params)) return true; } } return false; }
貌似两种可以通过,一种是defaultRole,一种按照rbac体系检验,中间还用到了递归
- simpman 回复了话题 权限检查错误,checkaccess
终于搞定了。不蛋疼了。谢谢大家。
public function filters() public function accessRules()
和rbac应该是独立的两种验证机制。
我刚才是由于 创建item的时候写了“bizrule”。而验证的时候没有写这个参数。
反面教材,大家注意点吧 14,15,16行的。而且这种不够灵活
array('deny',// 拒绝所有的用户。 'action'=>array('*'),'users'=>array('*'), ),
- simpman 回复了话题 权限检查错误,checkaccess
还是不行啊。真怀疑我人品问题
- simpman 回复了话题 权限检查错误,checkaccess
赋权限了啊。是不是还要配置哪个地方啊?
再补充下。照10#的代码。我先执行了 test,然后又执行show方法。用的demo登录了。可是还打印没有权限 - simpman 发布了话题权限问题 搞的我蛋疼了,帮忙看下
- simpman 回复了话题 权限检查错误,checkaccess
<?php /* * Created on 2011-10-12 * * To change the template for this generated file go to * Window - Preferences - PHPeclipse - PHP - Code Templates */ class AuthController extends CController{ /** * @return array action filters */ public function filters() { return array( 'accessControl', // perform access control for CRUD operations ); } /** * Specifies the access control rules. * This method is used by the 'accessControl' filter. * @return array access control rules */ public function accessRules() { return array( array('allow', // allow all users to perform 'index' and 'view' actions 'actions'=>array('show'), 'users'=>array('*') ), ); } public function actionTest(){ $auth=Yii::app()->authManager; $auth->createOperation("postop",'postpost'); $auth->createTask("postta","posts"); $auth->createRole("postro","post"); $auth->addItemChild("postro","postop"); $auth->assign("postro",'demo'); $auth->save(); } public function actionShow(){ echo Yii::app()->user->name; if(Yii::app()->user->checkAccess("postop")){ echo 'Yes'; }else{ echo 'No'; } } } ?>