Admin with Cake:创建新的应用程序,还是使用相同的?

时间:2012-08-19 18:34:39

标签: php cakephp authorization admin

我已经使用CakePHP Framework构建了一个电子商务网站。

现在,我需要实施管理登录和订单/用户管理......

最大的问题是:我应该创建一个新的应用程序(一个新的CakePHP应用程序文件夹),还是使用现有的应用程序?

使用相同的文件夹,会让我花更少的时间复制模型,但是,会大大降低“安全性”,因为我需要为管理员和用户创建方法......

使用单独的框架,几乎相同的模型,可以帮助我查看...我会使用另一个页面模板,登录系统将与普通网站不同。

那么,这个案例的“最佳”解决方案是什么?

由于

1 个答案:

答案 0 :(得分:4)

在同一个应用中构建管理员。它不会降低安全性。您可以使用Prefix Routing轻松控制管理员用户可以访问的控制器方法。您还可以根据路由前缀更改视图布局。如果你需要更细粒度的东西,Cake支持Access Control Lists复杂的权限系统。

最后,如果您使用一组模型和控制器,您的应用程序将更易于维护。

这是我在app_controller.php中使用的一小段代码段。这是来自CakePHP 1.2内置的应用程序,因此可能需要稍微更新以适应更新版本。这假设任何注册用户都可以访问管理URL,但可以轻松更改:

function beforeFilter(){
    if (isset($this->params['prefix']) && $this->params['prefix'] == 'admin') {
        if (!$this->Session->check('User')) {
            // save the url in the session so that you can redirect there after login
            $this->Session->write('lastPageVisited', $this->params['url']['url']);
            $this->redirect('/users/login/');
            exit();
        }
        // set the admin layout
        $this->layout = 'admin';
    }
}