Zum Inhalt springen

felogin per XCLASS erweitern

Erstellt am 13. Februar 2014 · 5 Antworten · letzte Antwort am 9. Juni 2015

Tags: felogin, Frage

Flexmex ·

Ich stehe gerade vor der Situation, dass ich ein bestehendes Loginsystem auf 6.1.x Basis erweitern muss um einen Vergleich mit einer internen Datenbank...

Dachte ich mir kein Problem, war schon früher einfach per Auth Service ... Denkste 😉

Ich kriege es leider nicht wirklich hin.

Die alte Weise funktioniert nicht mehr, habe ich bereits mit gerechnet. Bevor ich mich jetzt aber auf die felogin selbst stürze, frage ich hier mal nach, was ich falsch mache... Oder wo ich eine völlig falsche Idee habe.

ext_localconf.php

$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['TYPO3\\CMS\\Felogin\\Controller\\FrontendLoginController'] = array(
    'className' => 'Flex\\FooAuth\\Felogin\\Controller;\\Tx_FooAuth_Controller_FooAuthController',
);

FooAuthController.php

namespace Flex\FooAuth\Felogin\Controller;
# [...]
class Tx_FooAuth_Controller_FooAuthController extends TYPO3\CMS\Felogin\Controller\FrontendLoginController {
  /**
   * Shows login form
   *
   * @return string Content
   */
  protected function showLogin() {
    return '';
  }

}

Leider zeigt sich nichts... Der Login Controller zeigt sich völlig unbeindruckt von meinen Versuchen.

Julian.​Hofmann ·

Hallo.

Flexmex schrieb

Die alte Weise funktioniert nicht mehr,

Das kann ich nicht bestätigen. Wir haben gerade erst ein Projekt an den Start gebracht, das auf TYPO3 CMS 6.1.7 läuft und bei dem das FE-Login via Service erweitert wurde.

Wie äußert sich denn "funktioniert nicht mehr" bei Dir? Vielleicht ist nur irgendwo noch der Wurm drin...

Viele Grüße
Julian

CrashOverride ·

Ich habe genau dasselbe Problem.
Ich würde gerne den Authentifizierungsprozess von TYPO3 auf eine andere Tabelle "umbiegen". Bislang habe ich das mittels einer XCLASS gemacht, die Einbindung ist aber ab TYPO3 6.x anders - und siehe da, ich bekomms auch nicht zum Laufen!

Mein Aufbau ist nahezu identisch mit dem im ersten Post, gibt es hierzu vielleicht schon irgendeine Lösung außer ggf. mit einem Service zu arbeiten?

Viele Grüße,
Thomas

CrashOverride ·

Ich hab die Lösung gefunden... Sollte es jemanden auf diese Seite verschlagen, kann ich damit vielleicht helfen :-)

Die XCLASS muss in der ext_localconf.php wie folgt registriert werden:

// XCLASS
$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['TYPO3\\CMS\\Felogin\\Controller\\FrontendLoginController'] = array(
    'className' => 'Foo\\FooExt\\Xclass\\FrontendLoginController',
);
$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['tx_felogin_pi1'] = $GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['TYPO3\\CMS\\Felogin\\Controller\\FrontendLoginController'];

Man beachte die letzte Zeile. Felogin ist noch als pi_base Extension vorhanden und das muss irgendwie überschrieben werden und ab dann greift die XCLASS so wie sie soll!

daFalk ·

Hi, ich grabe mal aus:

Ich stehe leider vor 'nem ähnlichen Problem. Mit der Lösung von CrashOverride tut sich zwar endlich was, aber das einzige was passiert ist: die Seite bleibt weiß.

extKey: feloginPwchange
mein ext_localconf:

<?php
$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['TYPO3\\CMS\\Felogin\\Controller\\FrontendLoginController'] = array(
 'className' => 'Roeder\\FeloginPwchange\\Xclass\\FrontendLoginController'
);


$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['tx_felogin_pi1'] = $GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['TYPO3\\CMS\\Felogin\\Controller\\FrontendLoginController'];

meine Klasse (liegt in ext/feloginPwchange/Classes/Xclass und heisst FrontendLoginController.php):

<?php
namespace Roeder\FeloginPwchange\Xclass;



/**
 * XCLASS of 'frontendLoginControler' 
 *
 * @author	Falk Röder
 */
class FrontendLoginController extends \TYPO3\CMS\Felogin\Controller\FrontendLoginController {

	/**
	 * Shows the forgot password form
	 *
	 * @return string Content
	 */
	protected function showForgot() {
		echo ('blubb');
	}


}

Weiß hier jemand Rat? 🙂

CrashOverride ·

die Seite bleibt weiß.

Was steht denn in den Error-Logs? Hast du das Error-Reporting angeschalten?

Oder bin ich viel zu spät dran und du hast den Fehler schon entdeckt? 🙂