diff --git a/appinfo/application.php b/appinfo/application.php index f2f834d..af66131 100644 --- a/appinfo/application.php +++ b/appinfo/application.php @@ -36,7 +36,8 @@ class Application extends App { $c->query('Mail'), $c->query('L10N'), $c->query('URLGenerator'), - $c->query('PendingRegist') + $c->query('PendingRegist'), + $c->query('UserManager') ); }); @@ -48,6 +49,10 @@ class Application extends App { return \OCP\User::getUser(); }); + $container->registerService('UserManager', function($c) { + return new \OC\User\Manager(); + }); + $container->registerService('Mail', function($c) { return new Wrapper\Mail; }); diff --git a/controller/registercontroller.php b/controller/registercontroller.php index 4574fc2..42bdbf1 100644 --- a/controller/registercontroller.php +++ b/controller/registercontroller.php @@ -25,12 +25,13 @@ class RegisterController extends Controller { private $urlgenerator; private $pendingreg; - public function __construct($appName, IRequest $request, Mail $mail, $l10n, $urlgenerator, - $pendingreg){ + public function __construct($appName, IRequest $request, Wrapper\Mail $mail, $l10n, $urlgenerator, + $pendingreg, $usermanager){ $this->mail = $mail; $this->l10n = $l10n; $this->urlgenerator = $urlgenerator; $this->pendingreg = $pendingreg; + $this->usermanager = $usermanager; parent::__construct($appName, $request); } @@ -132,7 +133,23 @@ class RegisterController extends Controller { } elseif ( $email ) { $username = $this->request->getParam('username'); $password = $this->request->getParam('password'); - return new TemplateResponse('registration', 'form', array('email' => $email), 'guest'); + try { + $user = $this->usermanager->createUser($username, $password); + } catch (Exception $e) { + return new TemplateResponse('registration', 'form', + array('email' => $email, + 'entered_data' => array('username' => $username), + 'errormsgs' => array($e->message, $username, $password)), 'guest'); + } + if ( $user === false ) { + return new TemplateResponse('', 'error', array( + 'errors' => array(array( + 'error' => $this->l10n->t('Unable to create user, there are problems with user backend.'), + 'hint' => '' + )) + ), 'error'); + } + return; } } }