yii中的访问控制列表或基于角色的访问控制

hy i wanna understand what it the best methode to use and how if there is a simple exemple because i can't specify whitch rol to give to witch personne

public function accessRules()
{
    return array(
        array('allow',  // allow authenticated  to perform 'index' and 'view' actions
            'actions'=>array('index','view'),
            'users'=>array('@'),
        ),
        array('allow', // allow authenticated user to perform 'create' and 'update' actions
            'actions'=>array('create','update'),
            'users'=>array('@'),
        ),
        array('allow', // allow admin user to perform 'admin' and 'delete' actions
            'actions'=>array('admin','delete'),
            'users'=>array('admin'),
        ),
        array('deny',  // deny all users
            'users'=>array('*'),
        ),
    );
}

You can specify based on user roles like for editor you want show only edit user features and for publisher you can provide only access to block and unblock the user and so on. For eg: We have used the below code in our project

public function accessRules()
    {
        if(isset(Yii::app()->user->role) && Yii::app()->user->role == "superadmin"){
            $arr = array('create','update','admin','delete','block','help','download','forgot');
        } elseif(isset(Yii::app()->user->role) && Yii::app()->user->role == "admin") {
            $arr = array('help','download','forgot');
        } elseif(isset(Yii::app()->user->role) && Yii::app()->user->role == "editor") {
            $arr = array('update');
        } elseif(isset(Yii::app()->user->role) && Yii::app()->user->role == "publisher") {
            $arr = array('block');
        } else {
            $arr = array('');
        }
        return array(
            array('allow', // allow admin user to perform 'admin' and 'delete' actions
                'actions'=>$arr,
                'users'=>array('@'),
            ),
            array('deny',  // deny all users
                'users'=>array('*'),
            ),
        );
    }

Like wise you want to show a page only to registered user and some of the pages for both registered and guest users. We can do the same in the accessRules() function

To allow all users

array('allow', 
            'actions'=>array('create','update'),
            'users'=>array('*'),
        ),

To allow only registered users

array('allow', 
            'actions'=>array('create','update'),
            'users'=>array('@'),
        ),

To create restriction based on usernames

array('allow',
            'actions'=>array('create','update'),
            'users'=>array('username1','username2'),
        ),

Try this Yii Extension, may be this will be help you -

http://www.yiiframework.com/extension/rbam

Or Get an idea from - Yii framework : role based access control