Änderungen

Update registrator erstellt von Henning Leutz's avatar Henning Leutz
...@@ -99,3 +99,112 @@ class Registrator extends FrontendUsers\AbstractRegistrator ...@@ -99,3 +99,112 @@ class Registrator extends FrontendUsers\AbstractRegistrator
} }
``` ```
### getUsername
Die `getUsername` Methode benötigt der Registrator um den Benutzer am System erstellen können. Geben Sie hier bitte an welche Daten dem Benutzernamen entsprechen.
*Beispiel:*
```php
/**
* @return string
*/
public function getUsername()
{
$data = $this->getAttributes();
if (isset($data['username'])) {
return $data['username'];
}
if (isset($data['email'])) {
return $data['email'];
}
return '';
}
```
### onRegistered
Mit diese Methode können Sie auf eine Registrierung reagieren. Wenn alle Daten geprüft wurden ein neuer Benutzer am System angelegt wurde, wird diese Methode vom Registrierungsprozess aufgerufen.
Zusätzlich mpssen Sie in der onRegistered Methode einen Registrierungsstatus zurück geben.
hier können Sie unter anderem bestimmen das es sich um ein asynchronen Registrierungsprozess handelt.
Folgende Prozesstatus stehen Ihnen zur Verfügung:
- QUI\FrontendUsers\Handler::REGISTRATION_STATUS_ERROR
- QUI\FrontendUsers\Handler::REGISTRATION_STATUS_SUCCESS
- QUI\FrontendUsers\Handler::REGISTRATION_STATUS_PENDING (asynchroner Prozess)
Zusätzlich können Sie dem Benutzer weitere Eigenschaften zuweisen oder ändern.
**Beispiel für einen Asynchronen Registrierungs Prozess:**
Ein Beispiel wäre eine E-Mail Authentifizierung. Möchten Sie den neu erstellten Benutzer zum Beispiel über eine E-Mail authentifizieren, können Sie in der onRegistered eine Authentifizieriungs E-Mail verwenden. Zusätzlich geben Sie als return Wert `QUI\FrontendUsers\Handler::REGISTRATION_STATUS_PENDING` zurück.
Möchten Sie einen synchronen Registrierungsprozess umsetzen, müssen Sie den Benutzer aktivieren.
```php
$User->activate(QUI::getUsers()->getSystemUser());
return QUI\FrontendUsers\Handler::REGISTRATION_STATUS_PENDING;
```
### validate
Die Validate Methode validiert die gesendeten Daten vom Benutzer. Die Validate Methode nutzt hierbei `QUI\FrontendUsers\Exception`.
*Beispiel einer Validate Methode:*
```php
/**
* @throws FrontendUsers\Exception
*/
public function validate()
{
$username = $this->getUsername();
if (empty($username)) {
throw new FrontendUsers\Exception(array(
'quiqqer/frontend-users',
'exception.empty.username'
));
}
$email = $this->getAttribute('email');
$emailConfirm = $this->getAttribute('emailConfirm');
if ($email != $emailConfirm) {
if (empty($username)) {
throw new FrontendUsers\Exception(array(
'quiqqer/frontend-users',
'exception.different.emails'
));
}
}
$password = $this->getAttribute('password');
$passwordConfirm = $this->getAttribute('passwordConfirm');
if ($password != $passwordConfirm) {
if (empty($username)) {
throw new FrontendUsers\Exception(array(
'quiqqer/frontend-users',
'exception.different.passwords'
));
}
}
}
```
### getControl
Die `getControl` Methode gibt das zuständige Control (Oberfläche) zur Darstellung Ihrer Registrierung zurück. hier können Sie Formularfelder, Buttons, HTML bestimmen welches Ihren Registrierungsprozess startet.