diff --git a/Dockerfile b/Dockerfile index 361bc55492fa0c43e69e1cb09046518bf2f1d5b1..5b6c8c327ba06fc1c8e5f090bde7edf15d3b5561 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,15 @@ -FROM nextcloud:29.0.12-fpm AS nextcloud +FROM nextcloud:29.0.16-fpm AS nextcloud ARG BASE_DIR="/usr/src/nextcloud" ARG TMP_PATCH_DIR="/tmp/build_patches" -ARG THEME_HELPER_JOB_ID="1168069" +ARG THEME_HELPER_JOB_ID="1210583" ARG NOTES_VERSION="4.11.0" ARG CONTACTS_JOB_ID="881946" ARG CALENDAR_JOB_ID="991372" -ARG EMAIL_RECOVERY_JOB_ID="1168177" -ARG EA_JOB_ID="1168157" +ARG EMAIL_RECOVERY_JOB_ID="1210606" +ARG EA_JOB_ID="1203572" ARG LAUNCHER_JOB_ID="1168135" ARG GOOGLE_INTEGRATION_VERSION="3.2.0" -ARG DASHBOARD_JOB_ID="1168115" +ARG DASHBOARD_JOB_ID="1210106" ARG SNAPPY_VERSION="2.37.2" ARG SNAPPY_THEME_VERSION="4.0.1" ARG USER_MIGRATION_JOB_ID="1168093" @@ -212,7 +212,7 @@ RUN sed -i 's|.replace("{linkclose}","")|.replace("{linkclose}","").repl From selfhost as ecloud ARG BASE_DIR="/usr/src/nextcloud" ARG TMP_PATCH_DIR="/tmp/build_patches" -ARG THEME_VERSION="28.0.2" +ARG THEME_VERSION="29.0.16-beta" ARG LDAP_WRITE_SUPPORT_VERSION="1.11.0" ARG IS_SELFHOST=false @@ -232,7 +232,7 @@ RUN cd ${BASE_DIR} && patch -u ${BASE_DIR}/apps/user_ldap/lib/User_LDAP.php -i $ RUN patch -u ${BASE_DIR}/lib/private/User/Manager.php -i ${TMP_PATCH_DIR}/025-optimize-get-by-email.patch RUN patch -u ${BASE_DIR}/apps/dav/lib/Connector/Sabre/Principal.php -i ${TMP_PATCH_DIR}/027-displayname-user-leak-dav.patch RUN patch -u ${BASE_DIR}/apps/dav/lib/HookManager.php -i ${TMP_PATCH_DIR}/028-default-task-calendar.patch -RUN patch -u ${BASE_DIR}/apps/provisioning_api/lib/Controller/UsersController.php -i ${TMP_PATCH_DIR}/029-restrict-user-to-change-primary-email.patch +# RUN patch -u ${BASE_DIR}/apps/provisioning_api/lib/Controller/UsersController.php -i ${TMP_PATCH_DIR}/029-restrict-user-to-change-primary-email.patch RUN patch -u ${BASE_DIR}/lib/private/Security/VerificationToken/VerificationToken.php -i ${TMP_PATCH_DIR}/033-verification-token-private.patch RUN patch -u ${BASE_DIR}/lib/private/AppFramework/Middleware/Security/CORSMiddleware.php -i ${TMP_PATCH_DIR}/034-oidc-bearer-token-auth.patch diff --git a/patches/002-login-without-domain.patch b/patches/002-login-without-domain.patch index aa1f15e6448343196a60c1c278071c1f0d25df73..45e02cb9273376eae389d5b87389c8466e35f486 100644 --- a/patches/002-login-without-domain.patch +++ b/patches/002-login-without-domain.patch @@ -9,11 +9,10 @@ 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 --- ./core/Controller/LoginController.php 2024-04-26 15:08:54.979407062 +0530 +++ ./core/Controller/LoginController-new.php 2024-04-26 15:16:48.582366408 +0530 -@@ -315,7 +315,28 @@ - self::LOGIN_MSG_CSRFCHECKFAILED +@@ -340,6 +340,26 @@ + $this->l10n->t('Unsupported email length (>255)') ); } -+ $user = trim($user); + $user = mb_strtolower($user, 'UTF-8'); + $actualUser = $user; + $legacyDomain = $this->config->getSystemValue('legacy_domain', ''); @@ -22,7 +21,7 @@ diff --git ./core/Controller/LoginController.php ./core/Controller/LoginControll + $mainDomainSuffix = !empty($mainDomain) ? '@' . $mainDomain : ''; + $admin_username = $_ENV["NEXTCLOUD_ADMIN_USER"]; + $is_admin = strcmp($user, $admin_username) === 0; - ++ + if (!$is_admin && str_ends_with($user, $legacyDomainSuffix)) { + $user = str_replace($legacyDomainSuffix, '', $user); + } @@ -34,11 +33,10 @@ diff --git ./core/Controller/LoginController.php ./core/Controller/LoginControll + if (!$this->userManager->userExists($user)) { + $user = $user . $legacyDomainSuffix; + } -+ + $data = new LoginData( $this->request, - trim($user), -@@ -328,7 +349,7 @@ +@@ -353,7 +373,7 @@ if (!$result->isSuccess()) { return $this->createLoginFailedResponse( $data->getUsername(), @@ -49,7 +47,7 @@ diff --git ./core/Controller/LoginController.php ./core/Controller/LoginControll ); --- ./core/Controller/WebAuthnController.php 2023-04-21 15:18:58.813220092 +0530 +++ ./core/Controller/WebAuthnController-new.php 2023-04-21 15:24:40.036538414 +0530 -@@ -66,6 +66,27 @@ +@@ -69,6 +69,27 @@ $this->logger->debug('Converting login name to UID'); $uid = $loginName; @@ -80,9 +78,9 @@ diff --git ./core/Controller/LoginController.php ./core/Controller/LoginControll --- ./lib/private/User/Session.php 2023-04-21 15:27:00.417034490 +0530 +++ ./lib/private/User/Session-new.php 2023-04-21 15:28:18.309111435 +0530 -@@ -430,6 +430,10 @@ +@@ -413,6 +413,10 @@ $remoteAddress = $request->getRemoteAddress(); - $currentDelay = $throttler->sleepDelay($remoteAddress, 'login'); + $currentDelay = $throttler->sleepDelayOrThrowOnMax($remoteAddress, 'login'); + $mainDomain = $this->config->getSystemValue('main_domain', ''); + $mainDomainSuffix = !empty($mainDomain) ? '@' . $mainDomain : ''; diff --git a/patches/003-contact-search-removal.patch b/patches/003-contact-search-removal.patch index aef513aa0fa8c8cd328a7b840706b3e13aa700ef..26b84267c06018b5fe248f76eb24b51e049114f0 100644 --- a/patches/003-contact-search-removal.patch +++ b/patches/003-contact-search-removal.patch @@ -7,7 +7,7 @@ This patch removes the top right icon enabling the global user search function a diff --git layout.user.php layout.user.php-new --- ./core/templates/layout.user.php 2023-03-28 14:54:05.873566570 +0530 +++ ./core/templates/layout.user-new.php 2023-03-28 14:54:35.044218831 +0530 -@@ -76,7 +76,6 @@ +@@ -70,7 +70,6 @@