2010-12-12 109 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

相关问题