CakePHP 2.2.1(稳定版)中$ this-> auth-> authorize(cakephp 1.3)的变化是什么?

时间:2012-08-23 05:57:01

标签: php cakephp cakephp-1.3 cakephp-2.0 cakephp-2.1

我正在将应用程序从CakePHP 1.3升级到CakePHP 2.2.1。

我们正在实施ACL,在AppController中我看到了

if (isset($this->Auth)) {
            if ($this->use_acl) {
                $this->Auth->authorize = 'actions';
            }

作为变量声明,我已经对以下内容进行了更改:

var $components = array(
        'Auth' => array(
            'authenticate' => array(
                'Form' => array(
                'fields' => array('username' => 'email', 'password' => 'password')
                )
            ),
            'loginAction' => array(
                'admin' => false, 'prefix' => false, 'controller' => 'users', 
                'action' => 'login')
        ),
        'Session', 'Facebook.Connect');

它还需要我保留:

$this->Auth->loginAction = array('admin' => false, 'prefix' => false, 'controller' => 'users', 'action' => 'login');

代码工作可能听起来很难看,但这就是升级的方式! ;)

另外,我可以使用$ this-> Auth-> 2.2.1中的'auth properties'是否可能在1.3?

1 个答案:

答案 0 :(得分:1)

像往常一样,开始使用此类问题的最佳位置是the manual。然后,发布测试结果而不是代码和广泛的问题。

也就是说,您发布的第一个代码块看起来像是自定义变量$this->use_acl。我从来没有见过在CakePHP中使用的那个,所以在你的应用程序中有一些标记你的设置使用'动作'。

第二段代码看起来非常标准。它应该工作。是的,您仍然需要指定登录操作,以便当用户尝试导航到受保护的页面时,他/她将被重定向到登录。也就是说,登录过程存在差异,如上面的手动链接所述。您应该查看密码何时进行哈希处理以及login()函数本身的差异,因为它们都已更改。您使用ACL的事实对于两个版本之间的身份验证差异无关紧要。

您的上一个问题Also, can I use the $this->Auth-> 'auth properties' in 2.2.1 as it was possible in 1.3 ?,答案是肯定的。您应该查看lib / Cake文件夹中的AuthComponent.php文件。它对你在这里询问的信息进行了大量评论。甚至有例子。