ログ ファイルにこれらの一連のエラーが表示されており、所有しているリソースに対応するものがないため、これは少し奇妙です。実際、エラーファイルに表示されるこれらのリソースのいずれも認識していません
2010-12-26T12:19:46+00:00 ERR (3): エラー メッセージ リソース 'res' が見つかりません 2010-12-26T12:19:46+00:00 ERR (3): スタック トレース #0 /var/www/application/library/Zend/Acl.php(691): Zend_Acl->get('res') #1 /var/www/application/library/My/Controller/Plugin/Acl.php(29): Zend_Acl->isAllowed('guest', 'res', '2127250264.html') 2010-12-26T12:50:21+00:00 ERR (3): エラー メッセージ リソース 'fcs' が見つかりません 2010-12-26T12:50:21+00:00 ERR (3): スタック トレース #0 /var/www/application/library/Zend/Acl.php(691): Zend_Acl->get('fcs') #1 /var/www/application/library/My/Controller/Plugin/Acl.php(29): Zend_Acl->isAllowed('guest', 'fcs', 'ident2') 2010-12-26T12:50:22+00:00 ERR (3): エラー メッセージ リソース 'open' が見つかりません 2010-12-26T12:50:22+00:00 ERR (3): スタック トレース #0 /var/www/application/library/Zend/Acl.php(691): Zend_Acl->get('open') #1 /var/www/application/library/My/Controller/Plugin/Acl.php(29): Zend_Acl->isAllowed('guest', 'open', '1')
リソース res、fcs、open または 2127250264.html - これらは私のアプリケーションのリソースではないため、これらのエラーが何を意味するのかわかりません。
これをデバッグする方法について、誰でも光を当てることができますか。
編集
class My_Controller_Plugin_Acl extends Zend_Controller_Plugin_Abstract { プライベート $_acl = null; public function __construct(Zend_Acl $acl) { $this->_acl = $acl; } public function preDispatch(Zend_Controller_Request_Abstract $request) { //前の例のように、認証されたユーザーにはロール user が割り当てられます $role = (Zend_Auth::getInstance()->hasIdentity()) ? 'ユーザー' : 'ゲスト'; $controller = $request->getControllerName(); $action = $request->getActionName(); $requestUri = Zend_Controller_Front::getInstance()->getRequest()->getRequestUri(); $session = new Zend_Session_Namespace('lastRequest'); // view-image を最後に要求された URL として保存しない一時的な修正 if(strpos($requestUri, 'snapshot')==false && $controller != '登録' && $controller != 'ログイン' && $action != 'view-image' && $action != 'play-video' && $action != 'config') { //ログインでない場合にのみ、要求されたアクションを保存します $session->lastRequestUri = $requestUri; } if(!$this->_acl->isAllowed($role, $controller, $action)) { //ユーザーがアクセス権を持っていない場合は、リクエストを変更して別の場所に送信します $request->setModuleName('default') ->setControllerName('ログイン') ->setActionName('log'); } } }
そして、これは私がリソースを定義したクラスです
class My_Acl extends Zend_Acl { public function __construct() { //「ゲスト」という新しいロールを追加 $this->addRole(new Zend_Acl_Role('guest')); //guest から継承する user というロールを追加します $this->addRole(new Zend_Acl_Role('user'), 'guest'); //ページというリソースを追加 $this->add(new Zend_Acl_Resource('video')); $this->add(new Zend_Acl_Resource('error')); $this->add(new Zend_Acl_Resource('index')); $this->add(new Zend_Acl_Resource('login')); $this->add(new Zend_Acl_Resource('register')); $this->add(new Zend_Acl_Resource('profile')); $this->add(new Zend_Acl_Resource('edit-profile')); $this->add(new Zend_Acl_Resource('css')); $this->add(new Zend_Acl_Resource('js')); $this->add(new Zend_Acl_Resource('images')); $this->add(new Zend_Acl_Resource('snapshots')); //最後に、ゲストがページを閲覧できるようにします $this->allow('ゲスト', 'css'); $this->allow('guest', 'js'); $this->allow('ゲスト', 'スナップショット'); $this->allow('ゲスト', '画像'); $this->allow('ゲスト', 'エラー'); $this->allow('ゲスト', 'ログイン'); $this->allow('ゲスト', 'インデックス'); $this->allow('ゲスト', '登録'); $this->allow('guest', 'profile','view-profile'); $this->allow('guest', 'profile','view-image'); $this->allow('guest', 'profile','all-videos'); $this->allow('guest', 'profile','all-fans'); $this->allow('guest', 'profile','favorite-artists'); $this->allow('guest', 'profile','favorite-videos'); $this->allow('guest', 'video','display-thumb'); $this->allow('guest', 'video', 'config'); $this->allow('guest', 'video', 'play'); $this->allow('guest', 'video', 'play-video'); $this->allow('guest', 'video', 'new-videos'); $this->allow('ゲスト', 'ビデオ', 'カテゴリ'); $this->allow('ゲスト', 'ビデオ', 'インデックス'); $this->allow('ゲスト', 'ビデオ', '検索'); $this->allow('user', 'video'); $this->allow('user', 'profile'); } }