2010-12-12 9 views
2

webアプリケーションの作成にcakephpを使用しています。私の現在のプロジェクトでは、2人のデータベースユーザーがサイトユーザーのために別の管理者用に1人いるのですが、管理者がより多くのデータベース操作力でサイトにログインできるようにcakephpを設定するにはどうすればいいですか? cakephp:管理者用データベースアクセスを個別にしました

あなたは

答えて

3

私は同意します。場合によっては、データベースレイヤーよりもアプリケーションレイヤーで処理されるアクセス許可を持つ方がよい場合もあります。

var $default = array(
    'driver' => 'mysql', 
    'persistent' => false, 
    'host' => 'localhost', 
    'login' => 'normaluser', 
    'password' => '', 
    'database' => 'db', 
    'prefix' => '', 
); 

var $admin = array(
    'driver' => 'mysql', 
    'persistent' => false, 
    'host' => 'localhost', 
    'login' => 'adminuser', 
    'password' => '', 
    'database' => 'db', 
    'prefix' => '', 
); 

ユーザーがいる場合は、その後、$this->ModelName->setDataSource('admin')を使用することができます:あなたは本当に、本当には同様に、データベースのセキュリティの余分なレイヤを持つようにしたい場合は、その後、あなたは複数のデータベース接続を設定する必要があります管理セクション、またはあなたが強制する可能性のあるあらゆる条件を示します。

プレフィックスルーティングadmin_を見ることをお勧めします。 CakePHPでは管理者権限を簡単に処理できます。 Prefix Routingまた、ユーザーの役割を示すフィールドをusersテーブルに追加し、現在のプレフィックスと照合することもできます。

0

最も堅牢なソリューションの可能性が高いアクセス制御リスト(ACL)を設定しますありがとうございました。これにより、指定したユーザーロールに基づいてアクセス許可を委任できます。

たとえば、adminのgroup_idは1で、ユーザーのgroup_idは2です。次に、管理者がWebアプリケーション内の特定の操作にアクセスできるようにすることができます。

この機能に関するケーキのドキュメントは次のとおりです。 http://book.cakephp.org/view/1242/Access-Control-Lists

関連する問題