2015-01-22 2 views
0

yii2-adminyii2-user을 사용하고 있습니다. 모든 것을 액세스 할 수있는 역할 Creator을 만들었습니다. 액세스가 제한적인 Admin이라는 또 다른 역할이 있습니다. 그러나 사용자를 삭제할 권한이 있습니다. 이제 Admin에서 Creator 삭제를 제한하고 싶습니다. 나는 AdminControllerdelete 기능을 오버라이드하여 달성 할 수 있음을 압니다. yii2-user입니다. 그러나 나는 Admin 또는 다른 사용자가 Creator을 삭제하는 것을 제한하는 논리를 이해할 수 없습니다. 사전에yii2 사용자의 특정 사용자 삭제 제한

감사합니다!

답변

0

여기를 보자. http://www.yiiframework.com/doc-2.0/guide-security-authorization.html#access-control-filter 당신이해야 할 일은 삭제 기능에 대한 액세스를 제작자 역할을 가진 사람으로 제한하는 것이다. 다른 모든 사용자는 아무 것도 삭제할 수 없습니다. 이건 그냥 예입니다

public function behaviors() 
    { 
     return [ 
      'access' => [ 
       'class' => AccessControl::className(), 
       'rules' => [ 
........ 
        [ 
         'actions' => ['save', 'update', 'status', 'activate-all', 'deactivate-all'], // Define specific actions 
         'allow' => true, // Has access 
         'roles' => ['Admin', 'Creator'], 
        ], 
        [ 
         'actions' => ['delete', 'delete-all'], // Define specific actions 
         'allow' => true, // Has access 
         'roles' => ['Creator'], 
        ], 
        [ 
         'allow' => false, // Do not have access 
         'roles' => ['?'], // Guests '?' 
        ], 
       ], 
      ], 
     ]; 
    } 

처럼

함수는 자신의 필요에 맞게 수정, 보일 것입니다. 아마도 암호를 변경하면 삭제하는 것과 거의 동일하므로 관리자가 작성자를 편집하도록 허용해서는 안됩니다.

+0

나는 당신이 나를 얻지 못했다고 생각합니다. 관리자 패널에 액세스 할 수있는 사용자는 다른 사용자는 삭제할 수 있어야하지만 Creator 역할을 가진 사용자는 삭제할 수 있어야합니다. –

+0

다른 방법으로 생각하고있었습니다. 격자보기에서'Creator' 역할을 가진 사용자를 숨김으로써. 그리고 이것은 로그인 된'user'가'Creator' 역할을 가지고 있지 않은 경우에만 발생해야합니다. 어떻게 할 생각인가? –