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('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;
});

View File

@ -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,7 +151,18 @@ class RegisterController extends Controller {
'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(
@ -156,6 +172,7 @@ class RegisterController extends Controller {
))
), 'error');
}
}
return new TemplateResponse('registration', 'message', array('msg' =>
str_replace('{link}',