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');

コード作業は醜く聞こえるかもしれませんが、それがアップグレードです。;)

また、1.3 で可能だったように、2.2.1 で $this->Auth-> 'auth properties' を使用できますか?

4

1 に答える 1

1

いつものように、このような質問を始めるのに最適な場所はマニュアルです。次に、コードと広範な質問ではなく、テストの結果を投稿します。

とはいえ、投稿したコードの最初のブロックは、あなたの側ではカスタム変数のように見えます$this->use_acl。これが CakePHP で使用されているのを見たことがないので、アプリで「アクション」を使用するように設定するフラグがいくつかあります。

コードの 2 番目のブロックはかなり標準的に見えます。それはうまくいくはずです。はい、ユーザーが保護されたページに移動しようとすると、ログインにリダイレクトされるように、ログイン アクションを指定する必要があります。とはいえ、上記のマニュアル リンクに記載されているように、ログイン プロセスには違いがあります。パスワードがいつハッシュされるか、および login() 関数自体が変更されているため、違いを確認する必要があります。ACL を使用しているという事実は、2 つのバージョン間の認証の違いに関する限り、それほど重要ではありません。

最後の質問Also, can I use the $this->Auth-> 'auth properties' in 2.2.1 as it was possible in 1.3 ?ですが、答えはイエスです。AuthComponent.phplib/Cake フォルダー内のファイルを確認する必要があります。あなたがここで求めている情報について多くのコメントがあります。例さえあります。

于 2012-08-23T06:23:51.060 に答える