CakePHP Auth Component Redirect Problem

Ich habe Probleme damit, dass die Auth-Komponente die gewünschten Weiterleitungen in einer CakePHP 1.2.6-App ausführt.

Ich habe ein Anmeldeformular, das auf allen Seiten angezeigt wird, und ich möchte, dass der Benutzer auf der Seite bleibt, auf der er sich anmeldet. Wenn er beispielsweise das Profil eines anderen Benutzers anzeigt, möchte ich ihn nach dem Anmelden dort belassen und nicht an das @ weiterleite$this->Auth->loginRedirect Aktion. Eine andere Sache an meiner App ist, dass ich keine "nur authentifizierten Zugriffs" -Seiten habe. Jede Seite ist für jeden zugänglich. Wenn Sie jedoch angemeldet sind, erhalten Sie zusätzliche Funktionen.

Was ich vom Lesen des @ verstanden haDokumentatio ist, dass ich @ einstellen muautoRedirect auf false setzen, um den Code in der auszuführenden login () -Funktion abzurufen:

class UsersController extends AppController {    
    var $name = 'Users';
    var $helpers = array('Html', 'Form','Text');

    function beforeFilter() {
        $this->Auth->autoRedirect = false;
    }

    function login() {
        $this->redirect($this->referer());
    }

    function logout() {
        $this->redirect($this->Auth->logout());
    }

    /* [...] */
}

Dies unterbricht derzeit meine Authentifizierung. Mir ist aufgefallen (aus den Logs), dass wenn ich die Umleitung in der Login-Funktion belasse und @ setautoRedirect auf false, das Passwortfeld in$this->data in demlogin() Funktion erscheint als leer.

Below, ich habe den Inhalt von AppController gepostet, der sich auf die Auth-Komponente bezieht:

public function beforeFilter() {

    $this->Auth->fields = array(
        'username' => 'email',             
        'password' => 'password'            
    );

    $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');     
    $this->Auth->loginRedirect = array('controller' => 'usercars', 'action' => 'homepage');

    $this->allowAccess();

    // build wishlist if the user is logged in
    if ($currentUser = $this->Auth->user()) {
        $wishlists = $this->buildWishlist($currentUser);
        $this->set('wishlists', $wishlists);
    }

}

private function allowAccess() {
      if(in_array($this->name, /* all my controller names */)) {
          $this->Auth->allow('*');
      }
}

Ich kann nicht verstehen, was ich falsch mache.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage