simpman

simpman

这家伙有点懒,还没写个性签名!

  • 财富值225
  • 威望值0
  • 总积分285

个人信息

  • 如果进入module的时候要进行密码验证并且和前台登录分开
    就要进行设置对执行的动作进行识别

    进入module的密码验证怎么和前台登陆分开的?没看明白

  • 翻译了放哪?

  • 貌似不是环境问题。我以前apache中Yii一连接mysql apache就挂掉。和这个差不多。

  • checkAccess 验证的源码;有不懂的看源码吧。
    framework/web/auth/CPhpAuthManager.php#64

    public 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体系检验,中间还用到了递归

  • 终于搞定了。不蛋疼了。谢谢大家。

    public function filters()
    public function accessRules()
    

    和rbac应该是独立的两种验证机制。
    我刚才是由于 创建item的时候写了“bizrule”。而验证的时候没有写这个参数。
    反面教材,大家注意点吧

  • 14,15,16行的。而且这种不够灵活

    array('deny',// 拒绝所有的用户。
        'action'=>array('*'),'users'=>array('*'),
    ),
    
  • 还是不行啊。真怀疑我人品问题

  • 赋权限了啊。是不是还要配置哪个地方啊?
    再补充下。照10#的代码。我先执行了 test,然后又执行show方法。用的demo登录了。可是还打印没有权限

  • 发布了话题
    权限问题 搞的我蛋疼了,帮忙看下
  • <?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';
        }
    }
    }
    ?>
    
见习主管 等级规则
285/500
资料完整度
30/100
用户活跃度
0/100

Ta的关注

1

Ta的粉丝

1

Ta的访客

5