diff --git a/Dockerfile b/Dockerfile index 4547d7e6be5933c7984ce90e47093af2ce810f94..b11a0fcdea88fcced2a328900df6235916b6cba7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ FROM nextcloud:20.0.12-fpm ARG BASE_DIR="/usr/src/nextcloud" ARG TMP_PATCH_DIR="/tmp/build_patches" -ARG THEME_VERSION="20.1.1" -ARG THEME_HELPER_VERSION="1.0.0" +ARG THEME_VERSION="20.1.2" +ARG THEME_HELPER_VERSION="1.0.1" ARG NEWS_VERSION="16.0.1" ARG QUOTA_WARN_VERSION="1.9.1" ARG NOTES_VERSION="4.1.1" @@ -13,13 +13,14 @@ ARG EMAIL_RECOVERY_JOB_ID="199763" ARG RAINLOOP_VERSION="7.1.2" ARG RAINLOOP_COMMIT_SHA="aa5c57a7" ARG EDA_TAG="nc-20" -ARG ECLOUD_LAUNCHER_JOB_ID="200382" +ARG ECLOUD_LAUNCHER_JOB_ID="204816" +ARG GOOGLE_INTEGRATION_VERSION="1.0.5-1-nightly" RUN mkdir -p /var/www/skeleton/Documents && mkdir -p /var/www/skeleton/Images COPY patches/ ${TMP_PATCH_DIR}/ COPY custom_entrypoint.sh / RUN chmod +x /custom_entrypoint.sh -RUN sed -i 's/20,0,12,1/20,0,12,12/' ${BASE_DIR}/version.php +RUN sed -i 's/20,0,12,1/20,0,12,13/' ${BASE_DIR}/version.php # Install unzip for unzipping artifacts RUN apt-get update && apt-get install unzip @@ -85,12 +86,21 @@ RUN curl -fsSL -o ecloud-launcher.zip \ mv dist/ecloud-launcher ${BASE_DIR}/custom_apps/ && \ rm ecloud-launcher.zip; +RUN curl -fsSL -o integration_google.tar.gz \ + "https://github.com/nextcloud/integration_google/releases/download/v${GOOGLE_INTEGRATION_VERSION}/integration_google-${GOOGLE_INTEGRATION_VERSION}.tar.gz" && \ + tar -xf integration_google.tar.gz -C ${BASE_DIR}/custom_apps/ && \ + chown -R www-data:www-data ${BASE_DIR}/custom_apps/integration_google && \ + rm integration_google.tar.gz; + # Remove unzip when unzipping is done RUN apt-get -y remove unzip # force eCloud theme not to be disabled even when there is an upgrade process launched RUN sed -i "s/\$systemConfig->setValue('theme', '');/\$systemConfig->setValue('theme', 'eCloud');/g" ${BASE_DIR}/lib/base.php +# fix min version of google data migration app +RUN sed -i "s/min-version=\"22\"/min-version=\"20\"/" ${BASE_DIR}/custom_apps/integration_google/appinfo/info.xml + # Patches RUN patch -u ${BASE_DIR}/core/Controller/LoginController.php -i ${TMP_PATCH_DIR}/002-login-without-domain.patch RUN patch -u ${BASE_DIR}/core/templates/layout.user.php -i ${TMP_PATCH_DIR}/003-contact-search-removal.patch diff --git a/patches/006-recovery-email-changes.patch b/patches/006-recovery-email-changes.patch index a44e13f78cf62c4006fafa2a1f4f3434dafdf3b0..be661bc7efe97d771987d90ef6f42e78338c2218 100644 --- a/patches/006-recovery-email-changes.patch +++ b/patches/006-recovery-email-changes.patch @@ -7,7 +7,21 @@ This patch adds the necessary changes to core NC controller and template for "em diff --git ./core/Controller/LostController.php ./core/Controller/LostController.new.php --- ./core/Controller/LostController.php 2021-03-26 09:51:09.317785801 +0530 +++ ./core/Controller/LostController.new.php 2021-03-26 09:51:35.490073707 +0530 -@@ -205,8 +205,9 @@ +@@ -194,6 +194,13 @@ + * @throws \Exception + */ + protected function checkPasswordResetToken($token, $userId) { ++ $domain = $this->config->getSystemValue("mail_domain"); ++ $domainSuffix = "@$domain"; ++ ++ if(stristr($userId, $domainSuffix) === FALSE ) { ++ $userId = $userId . $domainSuffix; ++ } ++ + $user = $this->userManager->get($userId); + if ($user === null || !$user->isEnabled()) { + throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is invalid')); +@@ -205,8 +212,9 @@ } try { @@ -19,15 +33,24 @@ diff --git ./core/Controller/LostController.php ./core/Controller/LostController } catch (\Exception $e) { throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is invalid')); } -@@ -334,7 +335,7 @@ +@@ -333,8 +341,15 @@ + * @throws \OCP\PreConditionNotMetException */ protected function sendEmail($input) { ++ $domain = $this->config->getSystemValue("mail_domain"); ++ $domainSuffix = "@$domain"; ++ ++ if(stristr($input, $domainSuffix) === FALSE ) { ++ $input = $input . $domainSuffix; ++ } ++ $user = $this->findUserByIdOrMail($input); - $email = $user->getEMailAddress(); + $email = $this->config->getUserValue($user->getUID(), 'email-recovery', 'recovery-email'); if (empty($email)) { throw new ResetPasswordException('Could not send reset e-mail since there is no email for username ' . $input); + diff --git ./apps/settings/templates/settings/personal/personal.info.php ./apps/settings/templates/settings/personal/personal.info.new.php --- ./apps/settings/templates/settings/personal/personal.info.php 2021-04-22 07:49:34.926418855 +0530 +++ ./apps/settings/templates/settings/personal/personal.info.new.php 2021-04-22 07:50:00.026660710 +0530