2012-02-01 2 views
0

私はCakePHPで開発しており、Alaxos ACLプラグインは大いに役立っています。CakePHP 1.3:Alaxos ACLプラグインがPagesプラグインを認識しない

しかし、私はそれを修正する方法がわからない1つの問題に直面していますか?

「pages」という名前のプラグインを追加しましたが、アクセス許可/拒否のリストに追加されるようにACLを表示することができません。

私はdomain.com/pages/pagesスループラグインにアクセスする場合、私は次のエラーを取得する

DbAcl::check() - Failed ARO/ACO node lookup in permissions check. 

私はACLプラグインの表示スルーチェックインすると、ページのコントローラに、私は実行している場合は何も言及がありませんACLビルド機能では、追加するものは何もないということだけです。

このコントローラの名前はpagesであり、すでにCake内にページコントローラが存在するのでしょうか?

どうすればいいですか?私の唯一のオプションは、現時点では、手動でこれをDbに追加しますか?このプラグインを使って別のページに名前を変更する必要がありますか?私がやっていなければならない何か他に何かありますか?

ありがとう、

答えて

1

私はここで2つのことを参照してください。最初に疑わしいのは、同じ名前を共有する2つのクラスをアプリケーションに持つことは悪い考えです。それは間違ったクラスがインスタンス化されているなど、何らかの問題を起こす可能性があります。 Cakeが名前空間を使用しない限り、これはお勧めしません。

この名前を変更しても、ACLで管理したいコントローラーが「デフォルト」コントローラー(プラグインと同じ名前のコントローラー)であれば別の問題があります。パスに同じ名前が2回含まれている場合、ACOノードの取得に問題がありました。これは、プラグインのデフォルトコントローラの場合です。

controllers/Pages/Pages/index 

そこで、プラグインのデフォルトコントローラーをACLプラグインでサポートされているコントローラーからスキップすることにしました。

このプラグインの作成者は、(既にPagesControllerが存在するため)このプラグインの名前を変更して、デフォルトのコントローラー以外のコントローラーでアクションを移動することができます。

+0

返信いただきありがとうございます。私はこのプラグインを通って、「Paginas.Paginas」を介してアクセスできるようにすべてを変更しました。しかし、私はまだそれを検出するACLプラグインを取得することはできません。このコントローラーの 'beforeFilter()'関数に '$ this-> Auth-> allow( '*')'を追加すると、このプラグインにアクセスして設計どおりに処理することができます。しかし、私がコメントした分、同じARO/ACOエラーに戻ります。私が今考えることのできる唯一のことは、ACO/AROテーブルにこれとすべての非公開アクションの情報を手動で入力することです。もう提案があれば教えてください... –

+0

Dbにデータを手動で入力してこの作業を行うことができれば、この投稿を更新します。 Alaxos ACLプラグインがこれを検出して追加できない理由はわかりません。 –

+0

私が言ったように、デフォルトのコントローラ(プラグインと同じ名前のコントローラ)を使用すると、Aclプラグインはそれを見ません。私はこれをコアのAclNodeクラスにバグがあると思っていたので、このようにしなければなりませんでした。しかし、実際に私は問題が私の側にあったことを数日前に知っています(http://cakephp.lighthouseapp.com/projects/42648-cakephp/tickets/1739-case-insensitive-acos-table-can-cause-duplicate -path-retrievements)を実行します。私は数日でプラグインのアップデートをリリースしようとします。 – nIcO

関連する問題