Login

Login in eigener Extension

Hier wird der User gespeichert falls er angemeldet ist:

/**
 * user
 *
 * @var Tx_Extbase_Domain_Repository_FrontendUser
 */
protected $user = null;

Hier die Methode die den Loginzustand prüft, den $this->user setzt oder zur Loginmaske weiterleitet falls nicht angemeldet:

/**
 * checkLoginAction
 *
 * @return void
 */
public function checkLoginAction() {
    if($this->isUserLoggedIn()) {
        if ($this->user == null && $this->isUserLoggedIn()
          || ($this->user instanceof Tx_Rsysworkbook_Domain_Model_FrontendUser
          && $this->user->getUid() != $GLOBALS['TSFE']->fe_user->user['uid'])) {
            $this->user = $this->frontendUserRepository->findByUid($GLOBALS['TSFE']->fe_user->user['uid']);
        }
    } else {
        $this->user = null;
        $this->redirectToUri("index.php?id=" . $this->settings["loginPID"]);
    }
}

In einer geschützten Action sieht das dann so aus:

public function showAction(Tx_Rsysworkbook_Domain_Model_FrontendUser $frontendUser) {
   
    // login check with redirect to login
    $this->checkLoginAction();

    $this->view->assign('frontendUser', $frontendUser);
}

Erstellt: 09/2012| Geändert: 10/2015