ホームページ  >  記事  >  バックエンド開発  >  YII は srbac を拡張し、ユーザー管理 (ユーザー/管理者) にはアクセス権がありません

YII は srbac を拡張し、ユーザー管理 (ユーザー/管理者) にはアクセス権がありません

WBOY
WBOYオリジナル
2016-06-23 13:50:531079ブラウズ

皆さんこんにちは、

私は現在、YII Framework を使用し、権限制御に srbac 拡張機能を使用してプロジェクトを開発しています。

フレームワーク モデルを構築するプロセス中に次の問題に遭遇しました:

Gii を使用してユーザー モデル、ユーザー コントローラー、および一連のページを生成した後、スーパーユーザーの権限を構成しました。
承認された操作には、UserIndex、UserView、UserDelete、UserUpdate、UserCreate、UserAdmin が含まれます。

何らかの理由で、UserAdmin (http://mysite/index.php?r=user/admin) のみが、承認されていないことを示すプロンプトを表示します。

Error 403您未被授权执行这个动作


さらに、srbac のブログのサンプルをダウンロードして、そのコードに基づいてユーザー管理権限の操作を追加しても、まだ有効になりません。

SBaseController クラスを追跡すると、user/admin にアクセスするときの $controller 変数の値は Site であり、他のユーザー管理ページの $controller の値は User であることがわかりました。

解決策を求めてください~


議論(解決策)への返信

様々な専門家が助けに来ましたが、一晩中返答はありませんでした。

??フレームワークは偏りすぎているので、使用している人はほとんどいません。どうですか?
エラー 403
このアクションを実行する権限がありません
?? 結果を確認するには、var_dump() を使用してください。

??このフレームワークは偏りすぎているため、使用している人はほとんどいません。どうですか?
エラー 403
このアクションを実行する権限がありません
?? var_dump() を開始、逆検索して使用してください。



ご返信ありがとうございます、問題は解決しました。

問題の原因は、Controller.php の関数 filters() です。

return array('accessControl','postOnly + delete',);

デフォルトでは、Gii によって生成されたコードは削除リクエストの送信のみを許可します。ポストを通じて。フレームワークは UserAdmin 操作全体を削除として認識し、フィルターの削除の問題は解決されます。


??フレームワークは偏りすぎているので、それを使用している人はほとんどいません、ビルドしますか?
エラー 403
このアクションを実行する権限がありません
?? 開始、逆検索、var_dump() を使用してください。



ご返信ありがとうございます、問題は解決しました。

問題の原因は、Controller.php の関数 filters() です。

return array('accessControl','postOnly + delete',);

デフォルトでは、Gii によって生成されたコードは削除リクエストの送信のみを許可します。ポストを通じて。フレームワークは UserAdmin 操作全体を削除として認識し、フィルターの削除の問題は解決されます。 ???

実際には、主に Yii に付属する accessRules によって制限されます
array('allow', 'actions'=>array('index','view', 'admin') ,
' users'=>array('*'),
),

'admin' を追加するだけです

ありがとう、ついに問題を見つけました、この投稿は素晴らしいです

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。