如何在yii权限模块中创建用户?

如何在yii权限模块中创建用户?,yii,yii-extensions,Yii,Yii Extensions,我已在yii中安装了权限模块。我还创建了用户角色和操作。但它不起作用。我想知道在哪里为角色创建用户?根据您的风格,只需粘贴此“user/admin/create” 现在在查看页面上,您可以使用 $all_roles=new RAuthItemDataProvider('roles', array( 'type'=>2, )); $data=$all_roles->fetchData(); 然后使用它创建一个下拉列表。您可以根据您的角色创建用户 <div>

我已在yii中安装了权限模块。我还创建了用户角色和操作。但它不起作用。我想知道在哪里为角色创建用户?

根据您的风格,只需粘贴此“user/admin/create”

现在在查看页面上,您可以使用

$all_roles=new RAuthItemDataProvider('roles', array( 
'type'=>2,
));
  $data=$all_roles->fetchData();
然后使用它创建一个下拉列表。您可以根据您的角色创建用户

<div>
    <label for="type_id">Type</label>
    <?php echo CHtml::dropDownList("Type",'',CHtml::listData($data,'name','name'));?    > 
</div>

$authorizer->authManager->assign($type,$model->id)

您为用户创建角色,反之亦然(或者,如果您想与之合并,至少这是我的方法)

对于角色,您可以查看以下问题:

最好的方法是使用Yii框架中定义的CAccessControlFilter类,并通过您的角色/提供访问类来扩展该类

您的预筛选方法如下所示:

protected function preFilter($filterChain)
    {
        $app=Yii::app();
        $request=$app->getRequest();
        $user=$app->getUser();
        $verb=$request->getRequestType();
        $ip=$request->getUserHostAddress();

        foreach($this->getRules() as $rule)
        {
            if(($allow=$rule->isUserAllowed($user,$filterChain->controller,$filterChain->action,$ip,$verb))>0) // allowed
                break;
            elseif($allow<0) // denied
            {
                if(isset($rule->deniedCallback))
                    call_user_func($rule->deniedCallback, $rule);
                else
                    $this->accessDenied($user,$this->resolveErrorMessage($rule));
                return false;
            }
        }

        return true;
    }
我在我的一个大学项目中成功地使用了它

$authorizer = Yii::app()->getModule("rights")->authorizer;
protected function preFilter($filterChain)
    {
        $app=Yii::app();
        $request=$app->getRequest();
        $user=$app->getUser();
        $verb=$request->getRequestType();
        $ip=$request->getUserHostAddress();

        foreach($this->getRules() as $rule)
        {
            if(($allow=$rule->isUserAllowed($user,$filterChain->controller,$filterChain->action,$ip,$verb))>0) // allowed
                break;
            elseif($allow<0) // denied
            {
                if(isset($rule->deniedCallback))
                    call_user_func($rule->deniedCallback, $rule);
                else
                    $this->accessDenied($user,$this->resolveErrorMessage($rule));
                return false;
            }
        }

        return true;
    }
class WebUser extends CWebUser {

  // Store model to not repeat query.
  private $_model;


  // access it by Yii::app()->user->name
  function getName(){
    $user = $this->loadUser(Yii::app()->user->id);
    return $user['Name'];
  }


  // access it by Yii::app()->user->isAdmin()
  function isAdmin(){
    $user = $this->loadUser(Yii::app()->user->id);
    return intval($user['Type']) == 4;
  }

  function isEditor(){
    $user = $this->loadUser(Yii::app()->user->id);
    return intval($user['Type']) == 3;
  }

  function isOrganizer(){
    $user = $this->loadUser(Yii::app()->user->id);
    return intval($user['Type']) == 2;
  }

  function isNormal(){
    $user = $this->loadUser(Yii::app()->user->id);
    return intval($user['Type']) == 1;
  }

  // Load user model.
  protected function loadUser($id=null)
    {
        if($this->_model===null)
        {
            if($id!==null)
                $this->_model=User::model()->findByPk($id);
        }
        return $this->_model;
    }
}