diff --git a/lib/Controller/RegisterController.php b/lib/Controller/RegisterController.php index dfe82bb..a34c168 100644 --- a/lib/Controller/RegisterController.php +++ b/lib/Controller/RegisterController.php @@ -21,6 +21,7 @@ use \OCP\AppFramework\Http\TemplateResponse; use \OCP\AppFramework\Http\RedirectResponse; use \OCP\AppFramework\Controller; use OCP\IURLGenerator; +use \OCP\IConfig; use \OCP\IL10N; class RegisterController extends Controller { @@ -29,6 +30,8 @@ class RegisterController extends Controller { private $l10n; /** @var IURLGenerator */ private $urlgenerator; + /** @var IConfig */ + private $config; /** @var RegistrationService */ private $registrationService; /** @var MailService */ @@ -40,12 +43,14 @@ class RegisterController extends Controller { IRequest $request, IL10N $l10n, IURLGenerator $urlgenerator, + IConfig $config, RegistrationService $registrationService, MailService $mailService ) { parent::__construct($appName, $request); $this->l10n = $l10n; $this->urlgenerator = $urlgenerator; + $this->config = $config; $this->registrationService = $registrationService; $this->mailService = $mailService; } @@ -140,9 +145,13 @@ class RegisterController extends Controller { * @return RedirectResponse|TemplateResponse */ public function createAccount($token) { - $username = $this->request->getParam('username'); - $password = $this->request->getParam('password'); $registration = $this->registrationService->getRegistrationForToken($token); + if ($this->config->getAppValue('registration', 'email_is_login', '0') === '1') { + $username = $registration->email; + } else { + $username = $this->request->getParam('username'); + } + $password = $this->request->getParam('password'); try { $user = $this->registrationService->createAccount($registration, $username, $password); diff --git a/lib/Db/Registration.php b/lib/Db/Registration.php index 46dbbb1..e88b5fa 100644 --- a/lib/Db/Registration.php +++ b/lib/Db/Registration.php @@ -47,7 +47,7 @@ use OCP\AppFramework\Db\Entity; */ class Registration extends Entity { public $id; - protected $email; + public $email; protected $username; protected $displayname; protected $password; diff --git a/templates/form.php b/templates/form.php index ada251e..51b21eb 100644 --- a/templates/form.php +++ b/templates/form.php @@ -23,6 +23,7 @@ script('registration', 'form');

+ getConfig()->getAppValue('registration', 'email_is_login', '0') !== '1' ) { ?>

t('Username')); ?>

+