Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 84f0615e authored by AVINASH GUSAIN's avatar AVINASH GUSAIN
Browse files

snappymail oidc autologin

parent 3331af74
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -150,6 +150,7 @@ RUN cd ${BASE_DIR} && patch -u ${BASE_DIR}/3rdparty/sabre/vobject/lib/ITip/Broke
RUN patch -u ${BASE_DIR}/apps/theming/lib/Themes/CommonThemeTrait.php -i ${TMP_PATCH_DIR}/026-primary-color-fix.patch
RUN patch -u ${BASE_DIR}/lib/private/Template/JSResourceLocator.php -i ${TMP_PATCH_DIR}/031-theme-custom-app-translations.patch
RUN patch -u ${BASE_DIR}/lib/private/L10N/Factory.php -i ${TMP_PATCH_DIR}/032-select-lang-from-session.patch
RUN patch -u ${BASE_DIR}/custom_apps/snappymail/lib/Util/SnappyMailHelper.php -i ${TMP_PATCH_DIR}/037-snappy-oidc-autologin.patch
# UserConfigChangedEvent Ref: https://github.com/nextcloud/server/pull/42039
RUN cd ${BASE_DIR} && patch -p1 < ${TMP_PATCH_DIR}/036-user-config-change-event.patch
RUN rm -rf ${TMP_PATCH_DIR}
+28 −0
Original line number Diff line number Diff line
From: Avinash <avinash.gusain.ext@murena.com>
Date: Wed, 01 May 2023 17:50:00 +0530
Subject: [PATCH] Fix oidc autologin in snappymail
With this patch we are actually fixing the autologin in case of oidc login

--- custom_apps/snappymail/lib/Util/SnappyMailHelper.php	2024-05-01 13:13:15
+++ custom_apps/snappymail/lib/Util/SnappyMailHelper-new.php	2024-05-01 13:33:06
@@ -91,9 +91,17 @@
 */
 				if ($doLogin && $aCredentials[1] && $aCredentials[2]) {
 					try {
-						$oAccount = $oActions->LoginProcess($aCredentials[1], $aCredentials[2]);
-						if ($oAccount && $oConfig->Get('login', 'sign_me_auto', \RainLoop\Enumerations\SignMeType::DefaultOff) === \RainLoop\Enumerations\SignMeType::DefaultOn) {
-							$oActions->SetSignMeToken($oAccount);
+						if ($ocSession->get('is_oidc')) {
+							$pwd = new \SnappyMail\SensitiveString($aCredentials[1]);
+                            $oAccount = $oActions->LoginProcess($aCredentials[1], $pwd);
+							if ($oAccount) {
+								$oActions->SetSignMeToken($oAccount);
+							}
+						} else {	
+							$oAccount = $oActions->LoginProcess($aCredentials[1], $aCredentials[2]);
+							if ($oAccount && $oConfig->Get('login', 'sign_me_auto', \RainLoop\Enumerations\SignMeType::DefaultOff) === \RainLoop\Enumerations\SignMeType::DefaultOn) {
+								$oActions->SetSignMeToken($oAccount);
+							}
 						}
 					} catch (\Throwable $e) {
 						// Login failure, reset password to prevent more attempts