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

Commit 200189a3 authored by Akhil's avatar Akhil 🙂
Browse files

Merge branch 'login-controller-fix' into 'main'

Fix login controller patch

See merge request !97
parents 3ae8f72c 06972eed
Loading
Loading
Loading
Loading
Loading
+2 −3
Original line number Original line Diff line number Diff line
@@ -7,7 +7,7 @@ ARG NEWS_VERSION="18.0.1"
ARG QUOTA_WARN_VERSION="1.14.0"
ARG QUOTA_WARN_VERSION="1.14.0"
ARG NOTES_VERSION="4.3.1"
ARG NOTES_VERSION="4.3.1"
ARG CONTACTS_VERSION="4.1.1"
ARG CONTACTS_VERSION="4.1.1"
ARG CALENDAR_JOB_ID="309022"
ARG CALENDAR_JOB_ID="321100"
ARG USER_BACKEND_RAW_SQL_VERSION="1.1.1"
ARG USER_BACKEND_RAW_SQL_VERSION="1.1.1"
ARG EMAIL_RECOVERY_JOB_ID="313915"
ARG EMAIL_RECOVERY_JOB_ID="313915"
ARG RAINLOOP_VERSION="7.2.5"
ARG RAINLOOP_VERSION="7.2.5"
@@ -17,7 +17,7 @@ ARG ECLOUD_LAUNCHER_JOB_ID="318040"
ARG GOOGLE_INTEGRATION_VERSION="1.0.6"
ARG GOOGLE_INTEGRATION_VERSION="1.0.6"
ARG LDAP_WRITE_SUPPORT_VERSION="1.4.0"
ARG LDAP_WRITE_SUPPORT_VERSION="1.4.0"


RUN sed -i 's/22,2,8,1/22,2,8,11/' ${BASE_DIR}/version.php
RUN sed -i 's/22,2,8,1/22,2,8,12/' ${BASE_DIR}/version.php
COPY custom_entrypoint.sh /
COPY custom_entrypoint.sh /
RUN chmod +x /custom_entrypoint.sh
RUN chmod +x /custom_entrypoint.sh
RUN mkdir -p /var/www/skeleton/Documents && mkdir -p /var/www/skeleton/Images
RUN mkdir -p /var/www/skeleton/Documents && mkdir -p /var/www/skeleton/Images
@@ -130,7 +130,6 @@ RUN rm -rf ${TMP_PATCH_DIR}
# autocomplete leak tweak apps frontend with sed, disable group suggestion
# autocomplete leak tweak apps frontend with sed, disable group suggestion


RUN cd ${BASE_DIR}/custom_apps/contacts && sed -i 's/"GROUP","INDIVIDUAL"/"INDIVIDUAL"/g' js/contacts-main.js
RUN cd ${BASE_DIR}/custom_apps/contacts && sed -i 's/"GROUP","INDIVIDUAL"/"INDIVIDUAL"/g' js/contacts-main.js
RUN cd ${BASE_DIR}/custom_apps/contacts && sed -i 's/emit("new-contact")/emit("newContact")/g' js/contacts-main.js
RUN cd ${BASE_DIR}/custom_apps/calendar && sed -i 's/"GROUP","INDIVIDUAL"/"INDIVIDUAL"/g' js/calendar-main.js
RUN cd ${BASE_DIR}/custom_apps/calendar && sed -i 's/"GROUP","INDIVIDUAL"/"INDIVIDUAL"/g' js/calendar-main.js
RUN cd ${BASE_DIR}/custom_apps/calendar && sed -i 's/{name:\[a,"displayname"\]},//' js/calendar-main.js
RUN cd ${BASE_DIR}/custom_apps/calendar && sed -i 's/{name:\[a,"displayname"\]},//' js/calendar-main.js


+33 −24
Original line number Original line Diff line number Diff line
@@ -8,11 +8,11 @@ only the admin user (also configured in env var) will not have his login appende


diff --git ./core/Controller/LoginController.php ./core/Controller/LoginController-new.php
diff --git ./core/Controller/LoginController.php ./core/Controller/LoginController-new.php
--- ./core/Controller/LoginController.php	2022-05-11 11:09:58.346364031 +0530
--- ./core/Controller/LoginController.php	2022-05-11 11:09:58.346364031 +0530
+++ ./core/Controller/LoginController-new.php	2022-05-11 11:21:08.460617172 +0530
+++ ./core/Controller/LoginController-new.php	2022-05-30 19:32:45.195279817 +0530
@@ -302,7 +302,22 @@
@@ -303,6 +303,27 @@
 		if (!$this->request->passesCSRFCheck()) {
 			return $this->generateRedirect($redirect_url);
 			return $this->generateRedirect($redirect_url);
 		}
 		}
 
+		$user = trim($user);
+		$user = trim($user);
+		$user = mb_strtolower($user, 'UTF-8');
+		$user = mb_strtolower($user, 'UTF-8');
+		$domain = $this->config->getSystemValue('mail_domain', '');
+		$domain = $this->config->getSystemValue('mail_domain', '');
@@ -21,39 +21,48 @@ diff --git ./core/Controller/LoginController.php ./core/Controller/LoginControll
+		$alt_domain_suffix = !empty($alt_domain) ? '@'  . $alt_domain : '';
+		$alt_domain_suffix = !empty($alt_domain) ? '@'  . $alt_domain : '';
+		$admin_username = $_ENV["NEXTCLOUD_ADMIN_USER"];
+		$admin_username = $_ENV["NEXTCLOUD_ADMIN_USER"];
+		$is_admin = strcmp($user, $admin_username) === 0;
+		$is_admin = strcmp($user, $admin_username) === 0;
 
+
+		if(!$is_admin) {
+		if(!$is_admin && stristr($user, $domain_suffix) !== FALSE) {
+				$user = str_replace($alt_domain_suffix, $domain_suffix, $user);
+			$user = str_replace($domain_suffix, '', $user);
+		}
+
+		if (!$is_admin && stristr($user, $alt_domain_suffix) !== FALSE) {
+			$user = str_replace($alt_domain_suffix, '', $user);
+		}
+		}
+
+
+		if (!$is_admin && stristr($user, $domain_suffix) === FALSE) {
+		if(!$this->userManager->userExists($user)) {
+			$user = $user . $domain_suffix;
+			$user = $user . $domain_suffix;
+		}
+		}
+
 		$data = new LoginData(
 		$data = new LoginData(
 			$this->request,
 			$this->request,
 			trim($user),
 			trim($user),
--- ./core/Controller/WebAuthnController.php	2022-05-11 11:11:55.469731468 +0530
--- ./core/Controller/WebAuthnController.php	2022-05-11 11:11:55.469731468 +0530
+++ ./core/Controller/WebAuthnController-new.php	2022-05-11 11:27:43.978963021 +0530
+++ ./core/Controller/WebAuthnController-new.php	2022-05-30 19:34:53.540848852 +0530
@@ -73,6 +73,22 @@
@@ -73,6 +73,26 @@
 
 
 		$this->logger->debug('Converting login name to UID');
 		$this->logger->debug('Converting login name to UID');
 		$uid = $loginName;
 		$uid = $loginName;
+		$uid = trim($uid);
+		$uid = trim($uid);
+		$uid = mb_strtolower($uid, 'UTF-8');
+		$uid = mb_strtolower($uid, 'UTF-8');
+                $domain = \OC::$server->getConfig()->getSystemValue('mail_domain', '');
+		$domain = $this->config->getSystemValue('mail_domain', '');
+		$domain_suffix = !empty($domain) ? '@' . $domain : '';
+		$domain_suffix = !empty($domain) ? '@' . $domain : '';
+                $alt_domain = \OC::$server->getConfig()->getSystemValue('alt_mail_domain', '');
+		$alt_domain = $this->config->getSystemValue('alt_mail_domain', '');
+		$alt_domain_suffix = !empty($alt_domain) ? '@'  . $alt_domain : '';
+		$alt_domain_suffix = !empty($alt_domain) ? '@'  . $alt_domain : '';
+		$admin_username = $_ENV["NEXTCLOUD_ADMIN_USER"];
+		$admin_username = $_ENV["NEXTCLOUD_ADMIN_USER"];
+		$is_admin = strcmp($uid, $admin_username) === 0;
+		$is_admin = strcmp($uid, $admin_username) === 0;
+
+
+                if(!$is_admin) {
+		if(!$is_admin && stristr($uid, $domain_suffix) !== FALSE) {
+                                                $uid = str_replace($alt_domain_suffix, $domain_suffix, $uid);
+			$uid = str_replace($domain_suffix, '', $uid);
+		}
+		if (!$is_admin && stristr($uid, $alt_domain_suffix) !== FALSE) {
+			$uid = str_replace($alt_domain_suffix, '', $uid);
+		}
+		}
+
+
+                if (!$is_admin && stristr($uid, $domain_suffix) === FALSE) {
+		if(!$this->userManager->userExists($uid)) {
+			$uid = $uid . $domain_suffix;
+			$uid = $uid . $domain_suffix;
+		}
+		}
+
 		Util::emitHook(
 		Util::emitHook(
 			'\OCA\Files_Sharing\API\Server2Server',
 			'\OCA\Files_Sharing\API\Server2Server',
 			'preLoginNameUsedAsUserName',
 			'preLoginNameUsedAsUserName',