2014-10-15 4 views

답변

0

스타일에 따라이 "user/admin/create"를 붙여 넣기 만하면됩니다.

look like http://url/index.php?r=user/admin/create 

지금보기 페이지에서 다음을 사용하여 드롭 다운을 만들

$all_roles=new RAuthItemDataProvider('roles', array( 
'type'=>2, 
)); 
    $data=$all_roles->fetchData(); 

를 사용하여 DB의 모든 역할을 가져올 수 있습니다. 그리고 u는 역할

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

에 따라 사용자를 만들고 컨트롤러

$authorizer = Yii::app()->getModule("rights")->authorizer; 

$ authorizer-> authManager-> 지정 ($ 유형, $ 모델 -> ID)에 할당 할 수 있습니다;

0

사용자를위한 역할을 만들지 않습니다 (또는 적어도 병합하려는 경우 내 동의어입니다). redirect Access rules with Yii

가장 좋은 방법은 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; 
    } 

그리고 당신의 WEBUSER 클래스는 다음과 같이 표시됩니다 내가 사용

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; 
    } 
} 

나의 대학 프로젝트 중 하나에 성공 https://github.com/RazvanADumitru/EventsPlanning

관련 문제