Update# set user email after account creation

This commit is contained in:
Pellaeon Lin 2015-05-04 15:12:54 +08:00
parent cfb4e5c502
commit e4701fd8e5
2 changed files with 34 additions and 12 deletions

View File

@ -37,7 +37,8 @@ class Application extends App {
$c->query('L10N'), $c->query('L10N'),
$c->query('URLGenerator'), $c->query('URLGenerator'),
$c->query('PendingRegist'), $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(); return $c->query('ServerContainer')->getUserManager();
}); });
$container->registerService('Config', function($c) {
return $c->query('ServerContainer')->getConfig();
});
$container->registerService('Mail', function($c) { $container->registerService('Mail', function($c) {
return new Wrapper\Mail; return new Wrapper\Mail;
}); });

View File

@ -18,6 +18,9 @@ use \OCP\AppFramework\Controller;
use \OCP\Util; use \OCP\Util;
use \OCA\Registration\Wrapper; use \OCA\Registration\Wrapper;
use \OCP\IUserManager; use \OCP\IUserManager;
use \OCP\IL10N;
use \OCP\IConfig;
use \OCP\IUser;
class RegisterController extends Controller { class RegisterController extends Controller {
@ -25,14 +28,16 @@ class RegisterController extends Controller {
private $l10n; private $l10n;
private $urlgenerator; private $urlgenerator;
private $pendingreg; private $pendingreg;
private $config;
public function __construct($appName, IRequest $request, Wrapper\Mail $mail, $l10n, $urlgenerator, public function __construct($appName, IRequest $request, Wrapper\Mail $mail, IL10N $l10n, $urlgenerator,
$pendingreg, IUserManager $usermanager){ $pendingreg, IUserManager $usermanager, IConfig $config){
$this->mail = $mail; $this->mail = $mail;
$this->l10n = $l10n; $this->l10n = $l10n;
$this->urlgenerator = $urlgenerator; $this->urlgenerator = $urlgenerator;
$this->pendingreg = $pendingreg; $this->pendingreg = $pendingreg;
$this->usermanager = $usermanager; $this->usermanager = $usermanager;
$this->config = $config;
parent::__construct($appName, $request); parent::__construct($appName, $request);
} }
@ -146,15 +151,27 @@ class RegisterController extends Controller {
'hint' => '' 'hint' => ''
)) ))
), 'error'); ), 'error');
} } else {
$res = $this->pendingreg->setRegistered($token); // Set user email
if ( \OCP\DB::isError($res) ) { try {
return new TemplateResponse('', 'error', array( $this->config->setUserValue($user->getUID(), 'settings', 'email', $email);
'errors' => array(array( } catch (Exception $e) {
'error' => $this->l10n->t('Invalid verification URL. No registration request with this verification URL is found.'), return new TemplateResponse('registration', 'form',
'hint' => '' array('email' => $email,
)) 'entered_data' => array('username' => $username),
), 'error'); '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' => return new TemplateResponse('registration', 'message', array('msg' =>