summaryrefslogtreecommitdiffstats
path: root/core/lostpassword/controller/lostcontroller.php
diff options
context:
space:
mode:
authorVictor Dubiniuk <victor.dubiniuk@gmail.com>2014-05-28 00:09:08 +0300
committerMorris Jobke <hey@morrisjobke.de>2014-06-13 15:34:52 +0200
commita7fbd91e53be5f4fd68f035c999eaa3f187b9d3d (patch)
tree772844629bbb69dd74549b184828bc9a6c75139e /core/lostpassword/controller/lostcontroller.php
parent23ed038a27901b947b75413b966d4beab21cd2bc (diff)
downloadnextcloud-server-a7fbd91e53be5f4fd68f035c999eaa3f187b9d3d.tar.gz
nextcloud-server-a7fbd91e53be5f4fd68f035c999eaa3f187b9d3d.zip
Use appframework
Diffstat (limited to 'core/lostpassword/controller/lostcontroller.php')
-rw-r--r--core/lostpassword/controller/lostcontroller.php66
1 files changed, 66 insertions, 0 deletions
diff --git a/core/lostpassword/controller/lostcontroller.php b/core/lostpassword/controller/lostcontroller.php
new file mode 100644
index 00000000000..0a28779259f
--- /dev/null
+++ b/core/lostpassword/controller/lostcontroller.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+namespace OC\Core\LostPassword\Controller;
+
+use \OCP\AppFramework\Controller;
+use \OCP\AppFramework\Http\TemplateResponse;
+
+class LostController extends Controller {
+
+ protected $urlGenerator;
+
+ public function __construct($appName, IRequest $request, IURLGenerator $urlGenerator) {
+ parent::__construct($appName, $request);
+ $this->urlGenerator = $urlGenerator;
+ }
+
+ /**
+ * @PublicPage
+ * @NoCSRFRequired
+ */
+ public function reset() {
+ // Someone wants to reset their password:
+ if($this->checkToken()) {
+ return new TemplateResponse(
+ 'core/lostpassword',
+ 'resetpassword',
+ array(
+ 'link' => $link
+ ),
+ 'guest'
+ );
+ } else {
+ // Someone lost their password
+ $isEncrypted = \OC_App::isEnabled('files_encryption');
+ return new TemplateResponse(
+ 'core/lostpassword',
+ 'lostpassword',
+ array(
+ 'isEncrypted' => $isEncrypted,
+ 'link' => $this->getResetPasswordLink()
+ ),
+ 'guest'
+ );
+ }
+ }
+
+ protected function getResetPasswordLink(){
+ $parameters = array(
+ 'token' => $this->params('token'),
+ 'user' => $this->params('user')
+ );
+ $link = $this->urlGenerator->linkToRoute('core.ajax.reset', $parameters);
+ return $this->urlGenerator->getAbsoluteUrl($link);
+ }
+
+ protected function checkToken() {
+ $user = $this->params('user');
+ $token = $this->params('token');
+ return \OC_Preferences::getValue($user, 'owncloud', 'lostpassword') === hash('sha256', $token);
+ }
+}