2010-12-12 142 views
2

我一直在使用cakephp來創建Web應用程序。在我目前的項目中,有兩個數據庫用戶爲管理員另一個用於站點用戶,我如何配置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此外,您可以在用戶表中添加一個字段來指示用戶的角色,並根據當前前綴進行檢查。

0

最強大的解決方案將有可能被設置訪問控制列表(ACL)。這將允許您根據您指定的用戶角色委派權限。

例如,管理員的group_id爲1,用戶的group_id爲2.然後,您可以允許管理員訪問您的Web應用程序中的某些操作。

這是關於此功能的蛋糕文檔。 http://book.cakephp.org/view/1242/Access-Control-Lists

相關問題