From e4701fd8e5e1fb6ff9b2c822e20e786309ef84d3 Mon Sep 17 00:00:00 2001 From: Pellaeon Lin Date: Mon, 4 May 2015 15:12:54 +0800 Subject: [PATCH] Update# set user email after account creation --- appinfo/application.php | 7 +++++- controller/registercontroller.php | 39 ++++++++++++++++++++++--------- 2 files changed, 34 insertions(+), 12 deletions(-) diff --git a/appinfo/application.php b/appinfo/application.php index aea493c..921a113 100644 --- a/appinfo/application.php +++ b/appinfo/application.php @@ -37,7 +37,8 @@ class Application extends App { $c->query('L10N'), $c->query('URLGenerator'), $c->query('PendingRegist'), - $c->query('UserManager') + $c->query('UserManager'), + $c->query('Config') ); }); @@ -53,6 +54,10 @@ class Application extends App { return $c->query('ServerContainer')->getUserManager(); }); + $container->registerService('Config', function($c) { + return $c->query('ServerContainer')->getConfig(); + }); + $container->registerService('Mail', function($c) { return new Wrapper\Mail; }); diff --git a/controller/registercontroller.php b/controller/registercontroller.php index 57583a1..00c21e5 100644 --- a/controller/registercontroller.php +++ b/controller/registercontroller.php @@ -18,6 +18,9 @@ use \OCP\AppFramework\Controller; use \OCP\Util; use \OCA\Registration\Wrapper; use \OCP\IUserManager; +use \OCP\IL10N; +use \OCP\IConfig; +use \OCP\IUser; class RegisterController extends Controller { @@ -25,14 +28,16 @@ class RegisterController extends Controller { private $l10n; private $urlgenerator; private $pendingreg; + private $config; - public function __construct($appName, IRequest $request, Wrapper\Mail $mail, $l10n, $urlgenerator, - $pendingreg, IUserManager $usermanager){ + public function __construct($appName, IRequest $request, Wrapper\Mail $mail, IL10N $l10n, $urlgenerator, + $pendingreg, IUserManager $usermanager, IConfig $config){ $this->mail = $mail; $this->l10n = $l10n; $this->urlgenerator = $urlgenerator; $this->pendingreg = $pendingreg; $this->usermanager = $usermanager; + $this->config = $config; parent::__construct($appName, $request); } @@ -146,15 +151,27 @@ class RegisterController extends Controller { 'hint' => '' )) ), 'error'); - } - $res = $this->pendingreg->setRegistered($token); - if ( \OCP\DB::isError($res) ) { - return new TemplateResponse('', 'error', array( - 'errors' => array(array( - 'error' => $this->l10n->t('Invalid verification URL. No registration request with this verification URL is found.'), - 'hint' => '' - )) - ), 'error'); + } else { + // Set user email + try { + $this->config->setUserValue($user->getUID(), 'settings', 'email', $email); + } catch (Exception $e) { + return new TemplateResponse('registration', 'form', + array('email' => $email, + 'entered_data' => array('username' => $username), + 'errormsgs' => array($e->message, $username, $password)), 'guest'); + } + + // Mark registered + $res = $this->pendingreg->setRegistered($token); + if ( \OCP\DB::isError($res) ) { + return new TemplateResponse('', 'error', array( + 'errors' => array(array( + 'error' => $this->l10n->t('Invalid verification URL. No registration request with this verification URL is found.'), + 'hint' => '' + )) + ), 'error'); + } } return new TemplateResponse('registration', 'message', array('msg' =>