diff --git a/Dockerfile b/Dockerfile index 9d8482d8111b8323e42e56e586f50606b4fc745a..d06aae4ef540b18cf6cf3b05cdc8a3cd1f0281eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,13 @@ -FROM nextcloud:21.0.7-fpm AS nextcloud +FROM nextcloud:21.0.9-fpm AS nextcloud ARG BASE_DIR="/usr/src/nextcloud" ARG TMP_PATCH_DIR="/tmp/build_patches" ARG THEME_VERSION="21.1.1" ARG THEME_HELPER_VERSION="1.0.2" ARG NEWS_VERSION="17.0.1" ARG QUOTA_WARN_VERSION="1.13.0" -ARG NOTES_VERSION="4.2.0" -ARG CONTACTS_VERSION="4.0.6" -ARG CALENDAR_VERSION="3.0.1" +ARG NOTES_VERSION="4.3.1" +ARG CONTACTS_VERSION="4.0.8" +ARG CALENDAR_VERSION="3.1.0" ARG USER_BACKEND_RAW_SQL_VERSION="1.1.1" ARG EMAIL_RECOVERY_JOB_ID="199763" ARG RAINLOOP_VERSION="7.1.2" @@ -16,8 +16,7 @@ ARG EA_TAG="1.0.0" ARG ECLOUD_LAUNCHER_JOB_ID="222001" ARG GOOGLE_INTEGRATION_VERSION="1.0.6" -COPY patches/ ${TMP_PATCH_DIR}/ -RUN sed -i 's/21,0,7,0/21,0,7,18/' ${BASE_DIR}/version.php +RUN sed -i 's/21,0,9,1/21,0,9,4/' ${BASE_DIR}/version.php # Install unzip for unzipping artifacts RUN apt-get update && apt-get install unzip @@ -39,12 +38,12 @@ RUN curl -fsSL -o notes.tar.gz \ rm notes.tar.gz; RUN curl -fsSL -o contacts.tar.gz \ - "https://github.com/nextcloud-releases/contacts/releases/download/v${CONTACTS_VERSION}/contacts.tar.gz" && \ + "https://github.com/nextcloud-releases/contacts/releases/download/v${CONTACTS_VERSION}/contacts-v${CONTACTS_VERSION}.tar.gz" && \ tar -xf contacts.tar.gz -C ${BASE_DIR}/custom_apps/ && \ rm contacts.tar.gz; RUN curl -fsSL -o calendar.tar.gz \ - "https://github.com/nextcloud-releases/calendar/releases/download/v${CALENDAR_VERSION}/calendar.tar.gz" && \ + "https://github.com/nextcloud-releases/calendar/releases/download/v${CALENDAR_VERSION}/calendar-v${CALENDAR_VERSION}.tar.gz" && \ tar -xf calendar.tar.gz -C ${BASE_DIR}/custom_apps/ && \ rm calendar.tar.gz; @@ -97,6 +96,7 @@ RUN apt-get -y remove unzip RUN sed -i "s/\$systemConfig->setValue('theme', '');/\$systemConfig->setValue('theme', 'eCloud');/g" ${BASE_DIR}/lib/base.php # Patches +COPY patches/ ${TMP_PATCH_DIR}/ 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 RUN patch -u ${BASE_DIR}/core/Controller/ContactsMenuController.php -i ${TMP_PATCH_DIR}/004-contact-search-controller-removal.patch @@ -247,7 +247,7 @@ RUN apt-get -y install imagemagick;\ rm -rf /var/lib/apt/lists/*; VOLUME /var/www/html -ENV NEXTCLOUD_VERSION 21.0.7 +ENV NEXTCLOUD_VERSION 21.0.9 ENTRYPOINT ["/custom_entrypoint.sh"] CMD ["php-fpm"] diff --git a/patches/005-autocomplete-user-leak-core.patch b/patches/005-autocomplete-user-leak-core.patch index 51c01eddda9466279df92bf2e3cce60e2d1c87ca..26cbf3344b0a407e31f468b077a225541f884fce 100644 --- a/patches/005-autocomplete-user-leak-core.patch +++ b/patches/005-autocomplete-user-leak-core.patch @@ -33,13 +33,13 @@ diff --git lib/private/Collaboration/Collaborators/MailPlugin.php lib/private/Co +use OCP\IUserManager; use OCP\IUserSession; use OCP\Share\IShare; - -@@ -71,13 +72,15 @@ - IConfig $config, + use OCP\Mail\IMailer; +@@ -75,13 +76,15 @@ IGroupManager $groupManager, KnownUserService $knownUserService, -- IUserSession $userSession) { -+ IUserSession $userSession, + IUserSession $userSession, +- IMailer $mailer) { ++ IMailer $mailer, + IUserManager $userManager) { $this->contactsManager = $contactsManager; $this->cloudIdManager = $cloudIdManager; @@ -47,11 +47,11 @@ diff --git lib/private/Collaboration/Collaborators/MailPlugin.php lib/private/Co $this->groupManager = $groupManager; $this->knownUserService = $knownUserService; $this->userSession = $userSession; -+ $this->userManager = $userManager; ++ $this->userManager = $userManager; + $this->mailer = $mailer; $this->shareeEnumeration = $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes'; - $this->shareWithGroupOnly = $this->config->getAppValue('core', 'shareapi_only_share_with_group_members', 'no') === 'yes'; -@@ -209,27 +212,62 @@ +@@ -218,27 +221,62 @@ if ($exactEmailMatch) { $searchResult->markExactIdMatch($emailType); } @@ -67,31 +67,31 @@ diff --git lib/private/Collaboration/Collaborators/MailPlugin.php lib/private/Co - ]; + $isUserinInstance = $this->userManager->get($emailAddress); + if ($isUserinInstance === null) { -+ // /e/ user is not in ecloud ++ // /e/ user is not in ecloud + + $result['exact'][] = [ -+ 'label' => $displayName, -+ 'uuid' => $contact['UID'], -+ 'name' => $contact['FN'], -+ 'type' => $emailAddressType ?? '', -+ 'value' => [ -+ 'shareType' => IShare::TYPE_EMAIL, -+ 'shareWith' => $emailAddress, -+ ], -+ ]; ++ 'label' => $displayName, ++ 'uuid' => $contact['UID'], ++ 'name' => $contact['FN'], ++ 'type' => $emailAddressType ?? '', ++ 'value' => [ ++ 'shareType' => IShare::TYPE_EMAIL, ++ 'shareWith' => $emailAddress, ++ ], ++ ]; + } else { -+ // /e/ user IS an ecloud user, convert to user share type -+ if (!$isUserinInstance->isEnabled()) { -+ // Ignore disabled users -+ continue; -+ } -+ $result['exact'][] = [ -+ 'label' => $displayName, -+ 'value' => [ -+ 'shareType' => IShare::TYPE_USER, -+ 'shareWith' => $emailAddress, -+ ], -+ ]; ++ // /e/ user IS an ecloud user, convert to user share type ++ if (!$isUserinInstance->isEnabled()) { ++ // Ignore disabled users ++ continue; ++ } ++ $result['exact'][] = [ ++ 'label' => $displayName, ++ 'value' => [ ++ 'shareType' => IShare::TYPE_USER, ++ 'shareWith' => $emailAddress, ++ ], ++ ]; + } } else { - $result['wide'][] = [ @@ -105,32 +105,32 @@ diff --git lib/private/Collaboration/Collaborators/MailPlugin.php lib/private/Co - ], - ]; + $isUserinInstance = $this->userManager->get($emailAddress); -+ if ($isUserinInstance === null) { -+ // /e/ user is not in ecloud -+ $result['wide'][] = [ -+ 'label' => $displayName, -+ 'uuid' => $contact['UID'], -+ 'name' => $contact['FN'], -+ 'type' => $emailAddressType ?? '', -+ 'value' => [ -+ 'shareType' => IShare::TYPE_EMAIL, -+ 'shareWith' => $emailAddress, -+ ], -+ ]; -+ } else { -+ // /e/ user IS an ecloud user, convert to user share type -+ if (!$isUserinInstance->isEnabled()) { -+ // Ignore disabled users -+ continue; -+ } -+ $result['wide'][] = [ -+ 'label' => $displayName, -+ 'value' => [ -+ 'shareType' => IShare::TYPE_USER, -+ 'shareWith' => $emailAddress, -+ ], -+ ]; -+ } ++ if ($isUserinInstance === null) { ++ // /e/ user is not in ecloud ++ $result['wide'][] = [ ++ 'label' => $displayName, ++ 'uuid' => $contact['UID'], ++ 'name' => $contact['FN'], ++ 'type' => $emailAddressType ?? '', ++ 'value' => [ ++ 'shareType' => IShare::TYPE_EMAIL, ++ 'shareWith' => $emailAddress, ++ ], ++ ]; ++ } else { ++ // /e/ user IS an ecloud user, convert to user share type ++ if (!$isUserinInstance->isEnabled()) { ++ // Ignore disabled users ++ continue; ++ } ++ $result['wide'][] = [ ++ 'label' => $displayName, ++ 'value' => [ ++ 'shareType' => IShare::TYPE_USER, ++ 'shareWith' => $emailAddress, ++ ], ++ ]; ++ } } } } diff --git a/patches/009-help-links.patch b/patches/009-help-links.patch index baae85b8c876f5a514e14ac94d0025bd6232b165..d5ec7a66cd04815d6062ba264a477b5a6cda8451 100644 --- a/patches/009-help-links.patch +++ b/patches/009-help-links.patch @@ -19,48 +19,54 @@ help links are shown $policy->addAllowedFrameDomain('\'self\''); --- ./apps/settings/templates/help.php 2021-07-01 15:13:08.000000000 +0530 +++ ./apps/settings/templates/help-new.php 2021-08-10 17:22:42.771569854 +0530 -@@ -3,38 +3,21 @@ - ?> +@@ -4,45 +4,25 @@
- +- -