From 68d05bbb720bdc8c4a3a90ddf64900731c637e60 Mon Sep 17 00:00:00 2001 From: Pellaeon Lin Date: Fri, 8 Jul 2016 17:22:59 +0800 Subject: [PATCH] Update# use public API to log user in --- appinfo/application.php | 3 ++- controller/registercontroller.php | 39 ++++++++----------------------- 2 files changed, 12 insertions(+), 30 deletions(-) diff --git a/appinfo/application.php b/appinfo/application.php index 78d50b7..1386185 100644 --- a/appinfo/application.php +++ b/appinfo/application.php @@ -43,7 +43,8 @@ class Application extends App { $c->query('Config'), $c->query('GroupManager'), $c->query('Defaults'), - $c->query('ServerContainer')->getSecureRandom()->getMediumStrengthGenerator() + $c->query('ServerContainer')->getSecureRandom()->getMediumStrengthGenerator(), + $c->query('ServerContainer')->getUserSession() ); }); diff --git a/controller/registercontroller.php b/controller/registercontroller.php index 37797c5..2aa3fec 100644 --- a/controller/registercontroller.php +++ b/controller/registercontroller.php @@ -14,14 +14,17 @@ namespace OCA\Registration\Controller; use \OCP\IRequest; use \OCP\AppFramework\Http\TemplateResponse; +use \OCP\AppFramework\Http\RedirectResponse; use \OCP\AppFramework\Controller; use \OCP\Util; use \OCA\Registration\Wrapper; use \OCP\IUserManager; +use \OCP\IUserSession; use \OCP\IGroupManager; use \OCP\IL10N; use \OCP\IConfig; use \OCP\Mail\IMailer; +use \OCP\Security\ISecureRandom; use \OC_User; use \OC_Util; @@ -37,11 +40,12 @@ class RegisterController extends Controller { /** @var \OC_Defaults */ private $defaults; private $random; + private $usersession; protected $appName; public function __construct($appName, IRequest $request, IMailer $mailer, IL10N $l10n, $urlgenerator, $pendingreg, IUserManager $usermanager, IConfig $config, IGroupManager $groupmanager, \OC_Defaults $defaults, - ISecureRandom $random){ + ISecureRandom $random, IUserSession $us){ $this->mailer = $mailer; $this->l10n = $l10n; $this->urlgenerator = $urlgenerator; @@ -52,6 +56,7 @@ class RegisterController extends Controller { $this->defaults = $defaults; $this->appName = $appName; $this->random = $random; + $this->usersession = $us; parent::__construct($appName, $request); } @@ -171,6 +176,7 @@ class RegisterController extends Controller { /** * @PublicPage + * @UseSession */ public function createAccount($token) { $email = $this->pendingreg->findEmailByToken($token); @@ -256,35 +262,10 @@ class RegisterController extends Controller { } // Try to log user in - if (OC_User::login($username, $password)) { - // setting up the time zone - /* - if (isset($_POST['timezone-offset'])) { - self::$server->getSession()->set('timezone', (string)$_POST['timezone-offset']); - self::$server->getConfig()->setUserValue($userId, 'core', 'timezone', (string)$_POST['timezone']); - }*/ + $this->usersession->login($username, $password); + $this->usersession->createSessionToken($this->request, $userId, $username, $password); - $this->cleanupLoginTokens($userId); - /*if (!empty($_POST["remember_login"])) { - $logintoken = $this->random->generate(32); - $this->config->setUserValue($userId, 'login_token', $logintoken, time()); - OC_User::setMagicInCookie($userId, $logintoken); - } else { - OC_User::unsetMagicInCookie(); - }*/ - // FIXME unsetMagicInCookie will fail from session already closed, so now we always remember - $logintoken = $this->random->generate(32); - $this->config->setUserValue($userId, 'login_token', $logintoken, time()); - OC_User::setMagicInCookie($userId, $logintoken); - OC_Util::redirectToDefaultPage(); - - // Render message in case redirect failed - return new TemplateResponse('registration', 'message', array('msg' => - str_replace('{link}', - $this->urlgenerator->getAbsoluteURL('/'), - $this->l10n->t('Your account has been successfully created, you can log in now.')) - ), 'guest'); - } + return new RedirectResponse($this->urlgenerator->linkToRoute('files.view.index')); } } }