0

ここ ( http://www.yiiframework.com/doc/guide/1.1/en/topics.auth )の指示に従って、Yii を使用して DB ベースの承認とユーザーを追加しました。ユーザー テーブルで定義されたユーザーでログインできますが、管理者としてログインできません。authassignment テーブルに、項目名が「admin」で、ユーザー ID 1 (ログインに使用しているユーザー) へのキーを持つ 1 行が表示されます。

私のauthManagerは次のようになります:

'authManager'=>array(
    'class'=>'CDbAuthManager',
    'connectionID'=>'db',
    'defaultRoles'=>array('authenticated', 'admin'),
),

そして、使用している特定のコントローラーのアクセス規則は次のとおりです。

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

「admin」アクションを使用しようとすると、403 エラーが発生します。私はこれを回避できないようです。助言がありますか?

編集: admin authitem のビズルールが であることを知っていたのでreturn Yii::app()->user->name === "admin";、ユーザーのユーザー名を「admin」に変更しましたが、もちろん機能しました。authassignment テーブルの管理者が管理者としてログインできるようにするには、bizrule を何に変更する必要がありますか?

4

1 に答える 1

1

rolesaccessRules で指定できます。http://www.yiiframework.com/doc/guide/1.1/en/topics.auth#access-control-filterおよびhttp://www.yiiframework.com/doc/api/を参照してください。 1.1/CAccessRule#roles-detail

class PostController extends CController
{
    ......
    public function accessRules()
    {
        return array(
            array('allow',
                'actions'=>array('admin'),
                'roles'=>array('admin'),
            ),
        );
    }
}
于 2013-02-19T10:45:30.073 に答える