3

私はYiiフレームワークである種の管理パネルを作成しており、ログイン時にこのように状態を設定しています

public function authenticate()
{

    $record=AdminTbl::model()->findByAttributes(array('usr'=>$this->username));
    if($record===null)
        $this->errorCode=self::ERROR_USERNAME_INVALID;
    else if($record->pwd!==$this->password)
        $this->errorCode=self::ERROR_PASSWORD_INVALID;
    else
    {
        $this->_id=$record->id;
        $this->setState('roles','main');
        $this->errorCode=self::ERROR_NONE;
    }
    return !$this->errorCode;
}

状態が本当に設定されているかどうかを確認し、ビューにエコーアウトしました。後でその役割を accessrules() に入れました

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

そして、このユーザーがログインしている状態でそれらのページにアクセスできません。何が問題ですか?

4

2 に答える 2

2

こちらをご覧ください。 http://www.yiiframework.com/doc/guide/1.1/en/topics.auth

主な役割を作成し、ユーザー ID を介して割り当てる必要があります。

于 2012-07-06T16:16:53.417 に答える
1

長い RBAC プロセスを使用せずに単純な役割ベースのアクセス制御が必要な場合は、この記事が最適です。

http://www.yiiframework.com/wiki/328/simple-rbac/

于 2014-01-23T09:54:31.470 に答える