aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/base.php13
-rw-r--r--lib/private/appframework/middleware/security/securitymiddleware.php9
-rw-r--r--lib/private/util.php41
3 files changed, 20 insertions, 43 deletions
diff --git a/lib/base.php b/lib/base.php
index 728d9bced95..818e13fbef2 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -951,7 +951,18 @@ class OC {
$error[] = 'internalexception';
}
- OC_Util::displayLoginPage(array_unique($error), $messages);
+ if(!\OC::$server->getUserSession()->isLoggedIn()) {
+ $loginMessages = array(array_unique($error), $messages);
+ \OC::$server->getSession()->set('loginMessages', $loginMessages);
+ // Read current user and append if possible
+ $args = [];
+ if(isset($_POST['user'])) {
+ $args['user'] = $_POST['user'];
+ }
+
+ $redirectionTarget = \OC::$server->getURLGenerator()->linkToRoute('core.login.showLoginForm', $args);
+ header('Location: ' . $redirectionTarget);
+ }
}
/**
diff --git a/lib/private/appframework/middleware/security/securitymiddleware.php b/lib/private/appframework/middleware/security/securitymiddleware.php
index 75bcc29a926..4afd29cd060 100644
--- a/lib/private/appframework/middleware/security/securitymiddleware.php
+++ b/lib/private/appframework/middleware/security/securitymiddleware.php
@@ -192,9 +192,12 @@ class SecurityMiddleware extends Middleware {
);
} else {
if($exception instanceof NotLoggedInException) {
- // TODO: replace with link to route
- $url = $this->urlGenerator->getAbsoluteURL('index.php');
- $url .= '?redirect_url=' . urlencode($this->request->server['REQUEST_URI']);
+ $url = $this->urlGenerator->linkToRoute(
+ 'core.login.showLoginForm',
+ [
+ 'redirect_url' => urlencode($this->request->server['REQUEST_URI']),
+ ]
+ );
$response = new RedirectResponse($url);
} else {
$response = new TemplateResponse('core', '403', ['file' => $exception->getMessage()], 'guest');
diff --git a/lib/private/util.php b/lib/private/util.php
index 039bc7e9156..7caa1efcf54 100644
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -947,44 +947,6 @@ class OC_Util {
}
/**
- * @param array $errors
- * @param string[] $messages
- */
- public static function displayLoginPage($errors = array(), $messages = []) {
- $parameters = array();
- foreach ($errors as $value) {
- $parameters[$value] = true;
- }
- $parameters['messages'] = $messages;
- if (!empty($_REQUEST['user'])) {
- $parameters["username"] = $_REQUEST['user'];
- $parameters['user_autofocus'] = false;
- } else {
- $parameters["username"] = '';
- $parameters['user_autofocus'] = true;
- }
- if (isset($_REQUEST['redirect_url'])) {
- $parameters['redirect_url'] = $_REQUEST['redirect_url'];
- }
-
- $parameters['canResetPassword'] = true;
- if (!\OC::$server->getSystemConfig()->getValue('lost_password_link')) {
- if (isset($_REQUEST['user'])) {
- $user = \OC::$server->getUserManager()->get($_REQUEST['user']);
- if ($user instanceof IUser) {
- $parameters['canResetPassword'] = $user->canChangePassword();
- }
- }
- }
-
- $parameters['alt_login'] = OC_App::getAlternativeLogIns();
- $parameters['rememberLoginAllowed'] = self::rememberLoginAllowed();
- $parameters['rememberLoginState'] = isset($_POST['remember_login']) ? $_POST['remember_login'] : 0;
- \OC_Hook::emit('OC_Util', 'pre_displayLoginPage', array('parameters' => $parameters));
- OC_Template::printGuestPage("", "login", $parameters);
- }
-
- /**
* Check if the user is logged in, redirects to home if not. With
* redirect URL parameter to the request URI.
*
@@ -993,7 +955,8 @@ class OC_Util {
public static function checkLoggedIn() {
// Check if we are a user
if (!OC_User::isLoggedIn()) {
- header('Location: ' . \OCP\Util::linkToAbsolute('', 'index.php',
+ header('Location: ' . \OC::$server->getURLGenerator()->linkToRoute(
+ 'core.login.showLoginForm',
[
'redirect_url' => \OC::$server->getRequest()->getRequestUri()
]