From dc8b2cf10530209a17ea5b476975fc903ae7b49b Mon Sep 17 00:00:00 2001 From: Nicolas Frandeboeuf Date: Fri, 1 Oct 2021 13:12:56 +0000 Subject: [PATCH] Fix patch by & transform EOL to CRLF as agendav 2.2.1+ archive uses --- sources/patches/app-00-add-http-auth.patch | 108 +++++++++++---------- 1 file changed, 55 insertions(+), 53 deletions(-) diff --git a/sources/patches/app-00-add-http-auth.patch b/sources/patches/app-00-add-http-auth.patch index abd4452..00b82a4 100644 --- a/sources/patches/app-00-add-http-auth.patch +++ b/sources/patches/app-00-add-http-auth.patch @@ -1,53 +1,55 @@ ---- a/web/app/controllers.php -+++ b/web/app/controllers.php -@@ -58,14 +58,20 @@ $controllers->before(function(Request $request, Silex\Application $app) { - // processing the request - if ($app['session']->has('username')) { - $username = $app['session']->get('username'); -- $preferences = $app['preferences.repository']->userPreferences($username); -- $app['user.preferences'] = $preferences; -- $app['user.timezone'] = $preferences->get('timezone'); -- -- // Set application language -- $request->setLocale($preferences->get('language')); -- $app['translator']->setLocale($preferences->get('language')); -- return; -+ // Clear user session if HTTP authentication changed -+ if (isset($_SERVER['PHP_AUTH_USER']) -+ && $username != $_SERVER['PHP_AUTH_USER']) { -+ $app['session']->clear(); -+ } else { -+ $preferences = $app['preferences.repository']->userPreferences($username); -+ $app['user.preferences'] = $preferences; -+ $app['user.timezone'] = $preferences->get('timezone'); -+ -+ // Set application language -+ $request->setLocale($preferences->get('language')); -+ $app['translator']->setLocale($preferences->get('language')); -+ return; -+ } - } - - if ($request->isXmlHttpRequest()) { -diff --git a/web/src/Controller/Authentication.php b/web/src/Controller/Authentication.php -index deebb751..134cc9a8 100644 ---- a/web/src/Controller/Authentication.php -+++ b/web/src/Controller/Authentication.php -@@ -34,9 +34,14 @@ class Authentication - $success = false; - $template_vars = []; - -- if ($request->isMethod('POST')) { -- $user = $request->request->get('user'); -- $password = $request->request->get('password'); -+ if ($request->isMethod('POST') || isset($_SERVER['PHP_AUTH_USER'])) { -+ if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) { -+ $user = $_SERVER['PHP_AUTH_USER']; -+ $password = $_SERVER['PHP_AUTH_PW']; -+ } else { -+ $user = $request->request->get('user'); -+ $password = $request->request->get('password'); -+ } - - if (empty($user) || empty($password)) { - $template_vars['error'] = $app['translator']->trans('messages.error_empty_fields'); +diff --git a/web/app/controllers.php b/web/app/controllers.php +index 08db57e3..3d186c5e 100644 +--- a/web/app/controllers.php ++++ b/web/app/controllers.php +@@ -58,14 +58,20 @@ $controllers->before(function(Request $request, Silex\Application $app) { + // processing the request + if ($app['session']->has('username')) { + $username = $app['session']->get('username'); +- $preferences = $app['preferences.repository']->userPreferences($username); +- $app['user.preferences'] = $preferences; +- $app['user.timezone'] = $preferences->get('timezone'); +- +- // Set application language +- $request->setLocale($preferences->get('language')); +- $app['translator']->setLocale($preferences->get('language')); +- return; ++ // Clear user session if HTTP authentication changed ++ if (isset($_SERVER['PHP_AUTH_USER']) ++ && $username != $_SERVER['PHP_AUTH_USER']) { ++ $app['session']->clear(); ++ } else { ++ $preferences = $app['preferences.repository']->userPreferences($username); ++ $app['user.preferences'] = $preferences; ++ $app['user.timezone'] = $preferences->get('timezone'); ++ ++ // Set application language ++ $request->setLocale($preferences->get('language')); ++ $app['translator']->setLocale($preferences->get('language')); ++ return; ++ } + } + + if ($request->isXmlHttpRequest()) { +diff --git a/web/src/Controller/Authentication.php b/web/src/Controller/Authentication.php +index deebb751..134cc9a8 100644 +--- a/web/src/Controller/Authentication.php ++++ b/web/src/Controller/Authentication.php +@@ -34,9 +34,14 @@ class Authentication + $success = false; + $template_vars = []; + +- if ($request->isMethod('POST')) { +- $user = $request->request->get('user'); +- $password = $request->request->get('password'); ++ if ($request->isMethod('POST') || isset($_SERVER['PHP_AUTH_USER'])) { ++ if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) { ++ $user = $_SERVER['PHP_AUTH_USER']; ++ $password = $_SERVER['PHP_AUTH_PW']; ++ } else { ++ $user = $request->request->get('user'); ++ $password = $request->request->get('password'); ++ } + + if (empty($user) || empty($password)) { + $template_vars['error'] = $app['translator']->trans('messages.error_empty_fields');