1

accessrules 関数で定義したアクションを取り戻すにはどうすればよいですか

public function accessRules(){
    return array(
                 'allow',
                 'actions'=>array('create','update' ...),
                  ....
                 )
}

if(in_array('create',$actions)) echo CHtml::link('link to create form') または if(user->isAutorizedToPerfoem('create')) のようなものかもしれません.

事前に感謝

4

1 に答える 1

3

accessControl フィルターを使用する場合、これは不可能だと思います。この場合、承認データはコントローラーに直接保存されるため、技術的には、accessRules() を表示するにはコントローラーにいる必要があります。また、私の知る限り、アクセスを手動で確認することはできません。フィルターはそこで機能します。$this->accessRules を呼び出すことでアクセス ルールを確認できますが、コントローラー内にいる必要があります。

おそらく、RBAC を使用し、アクセス ルールを外部に保存する必要があります。詳細はこちらをお読みください: Yii ドキュメント - ロールベースのアクセス制御

RBAC のバックエンドを提供する、Rights と呼ばれる非常に有能な Yii 拡張機能もあります。

現時点ではやり過ぎのように思えるかもしれませんが、RBAC の柔軟性は比類のないものです。これを使えばYii::app->user->checkAccess('post.create')、 などのアクセスが確認できます。

于 2012-05-12T22:03:18.287 に答える