2016-08-01 46 views
1

Ich möchte einen FE-Benutzer mit einer benutzerdefinierten Erweiterung (erstellt mit dem Erweiterungsersteller) erstellen. Ich möchte fe_user_registration oder etwas ähnliches nicht verwenden, da auch viele andere benutzerdefinierte Funktionen benötigt werden, die wahrscheinlich verloren gehen, wenn irgendein Idiot sie versehentlich aktualisiert.TYPO3: Erstellen eines FE-Benutzers in der Controller-Aktion

I TYPO3 7.6.8

+1

Sie Daten von Ihrer Erweiterung Tabelle speichern 'fe_users' mit den Feldern usergroup, username [sollte eindeutig sein] und password [sollte md5 sein] –

Antwort

5

Extbase bin mit kommt mit einem model und einem repository für Frontend Benutzer zu manipulieren. Sie haben auch eine model und eine repository für den Umgang mit Frontend-Benutzergruppen.

Verwenden Sie diese in der üblichen Weise. Möglicherweise müssen Sie ein wenig herumspielen, um Speicherseiten richtig zu machen, aber es funktioniert. Ich bin mir nicht sicher, ob das Passwort automatisch gehashed wird.

zunächst eine FrontendUserRepository injizieren, wo Sie es verwenden möchten:

/** 
* @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository 
* @inject 
*/ 
protected $frontendUserRepository; 

Dann ein Frontend Benutzer erstellen und bleiben es das Repository mit:

$frontendUser = new FrontendUser(); 
$frontendUser->setUsername('myusername'); 
// Set more values 

$this->frontendUserRepository->add($frontendUser); 
+0

Es wird folgender Fehler ausgegeben: 'Fataler Fehler: Klasse 'Vendor \ ExtName \ Controller \ FrontendUser' wurde nicht in .../Classes/Controller gefunden /DummyController.php in Zeile 84'. Ich denke, es hat etwas mit Namensräumen zu tun, nicht wahr? – Norman

+0

Ja, ich habe 'TYPO3 \ CMS \ Extbase \ Domain \ Model \ FrontendUser;' direkt nach der Deklaration meines eigenen Namespace hinzugefügt und jetzt funktioniert es wie Charme! Danke vielmals – Norman