状況
異なるドメインに対して 1 つのデータベースのみを使用する可能性を提供する CakePHP ウェブショップ アプリケーションを開発しています。たとえば、shop1.com、shop2.com、shop3.com がすべて同じデータベースを使用する異なるドメインにあるとします。顧客にはさまざまなショップが表示されますが、私たちはそれらを維持し、1 つのバックエンドから注文を処理できます。
問題
CakePHP の ACL システムで問題が発生しています。たとえば、ユーザー「Roger」はストア 1の「admin_edit」ページにはアクセスできませんが、ストア 2の「admin_edit」ページにはアクセス許可があります。
各ストアは、Config/bootstrap.php 内の一意のストア ID で識別されます。
可能な解決策
すでに store_id という名前のフィールドを acos_aros テーブルに追加しようとしました。アクセス許可はアクションが行われたストアに依存するため、これで問題が解決します。しかし、最もクリーンな方法でこのデータベースの store_id を確認するにはどうすればよいでしょうか? CakePHP コアに変更を加えることなく..
事実
- CakePHP 2.2.3 を使用しています
- すべての製品、ユーザーなどを含む 1 つの中央データベースがあります。
- いくつかのサーバーに異なるドメイン (アプリケーション) があり、すべてのショップ (現時点では 3 つ) は、Config/bootstrap.php で設定された一意の store_id で識別されます。
- CRUD承認を使用しています。
- コントローラー/アクションごとだけでなく、ストアごとにパーミッションを設定したいと考えています。そうしないと、ストア 1 のすべての管理者がストア 2 にもアクセスできます。