diff --git a/Dockerfile b/Dockerfile index fedacf7e524a0076e2e41deaee7d3ac3d5cd18eb..02371989c7d0fa85c6cf3f9d52f1f5b8cf307c0d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,23 +1,23 @@ -FROM nextcloud:22.2.10-fpm AS nextcloud +FROM nextcloud:23.0.9-fpm AS nextcloud ARG BASE_DIR="/usr/src/nextcloud" ARG TMP_PATCH_DIR="/tmp/build_patches" -ARG THEME_VERSION="22.1.4" -ARG THEME_HELPER_VERSION="1.4.1" +ARG THEME_VERSION="22.1.5" +ARG THEME_HELPER_VERSION="1.4.4" ARG NEWS_VERSION="18.1.1" ARG QUOTA_WARN_VERSION="1.14.0" -ARG NOTES_VERSION="4.5.0" -ARG CONTACTS_JOB_ID="372144" -ARG CALENDAR_JOB_ID="372097" +ARG NOTES_VERSION="4.5.1" +ARG CONTACTS_JOB_ID="400045" +ARG CALENDAR_JOB_ID="398394" ARG USER_BACKEND_RAW_SQL_VERSION="1.3.0" -ARG EMAIL_RECOVERY_JOB_ID="314819" +ARG EMAIL_RECOVERY_JOB_ID="389385" ARG RAINLOOP_VERSION="7.2.5" ARG RAINLOOP_COMMIT_SHA="523518ba" -ARG EA_TAG="2.1.0" -ARG ECLOUD_LAUNCHER_JOB_ID="345049" +ARG EA_TAG="2.1.1" +ARG ECLOUD_LAUNCHER_JOB_ID="389373" ARG GOOGLE_INTEGRATION_VERSION="1.0.8" ARG LDAP_WRITE_SUPPORT_VERSION="1.4.0" -RUN sed -i 's/22,2,10,2/22,2,10,5/' ${BASE_DIR}/version.php +RUN sed -i 's/23,0,9,1/23,0,9,10/' ${BASE_DIR}/version.php COPY custom_entrypoint.sh / RUN chmod +x /custom_entrypoint.sh RUN mkdir -p /var/www/skeleton/Documents && mkdir -p /var/www/skeleton/Images @@ -124,13 +124,17 @@ RUN cd ${BASE_DIR} && patch -p0 < ${TMP_PATCH_DIR}/011-privacy-settings.patch RUN cd ${BASE_DIR} && patch -u ${BASE_DIR}/apps/dashboard/lib/Controller/DashboardController.php -i ${TMP_PATCH_DIR}/012-remove-user-status-widget.patch RUN patch -u ${BASE_DIR}/lib/private/Authentication/Token/PublicKeyTokenProvider.php -i ${TMP_PATCH_DIR}/013-revert-token-password-update.patch RUN patch -u ${BASE_DIR}/lib/private/legacy/OC_Helper.php -i ${TMP_PATCH_DIR}/014-add-mail-usage.patch -RUN cd ${BASE_DIR} && patch -p0 < ${TMP_PATCH_DIR}/015-email-mail-template.patch +RUN cd ${BASE_DIR} && patch -u ${BASE_DIR}/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php -i ${TMP_PATCH_DIR}/015-email-mail-template.patch RUN patch -u ${BASE_DIR}/core/templates/layout.guest.php -i ${TMP_PATCH_DIR}/016-login-screen.patch RUN patch -u ${BASE_DIR}/core/Command/User/Setting.php -i ${TMP_PATCH_DIR}/018-occ-user-setting.patch +RUN patch -u ${BASE_DIR}/apps/settings/lib/Sections/Personal/Groupware.php -i ${TMP_PATCH_DIR}/019-groupware.patch RUN rm -rf ${TMP_PATCH_DIR} # show reset pwd page with a query param -RUN cd ${BASE_DIR}/core/js/dist && sed -i 's/resetPassword:!1/resetPassword:!1||re.showResetPassword==="1"/' login.js +RUN cd ${BASE_DIR}/core/js/dist && sed -i 's/resetPassword:!1/resetPassword:!1||Z.showResetPassword==="1"/' login.js + +# sed version of ldap_write_support +RUN cd ${BASE_DIR}/custom_apps/ldap_write_support && sed -i 's/max-version="22"/max-version="23"/' appinfo/info.xml # autocomplete leak tweak apps frontend with sed, disable group suggestion diff --git a/custom_entrypoint.sh b/custom_entrypoint.sh index 87606ea450f1c3cc875c6af073e693b365683e04..08a5ec070dcdeefddb4bd16342d434451d86d42e 100644 --- a/custom_entrypoint.sh +++ b/custom_entrypoint.sh @@ -37,5 +37,10 @@ else echo "Skipping rsync step as version not updated!" fi +if [ "$(id -u)" = 0 ]; then + su -p www-data -s /bin/sh -c "php $DST_DIR/occ config:system:set profile.enabled --value=false --type=boolean" +else + sh -c "php $DST_DIR/occ config:system:set profile.enabled --value=false --type=boolean" +fi /entrypoint.sh "$@" diff --git a/patches/015-email-mail-template.patch b/patches/015-email-mail-template.patch index d6281ed1a5f09b4b9c3b9e0fcde2cbe4f37a8c19..12109ab9e36c7ff46fc172a4b3254f9672a20844 100644 --- a/patches/015-email-mail-template.patch +++ b/patches/015-email-mail-template.patch @@ -1,39 +1,5 @@ ---- apps/dav/lib/CalDAV/Schedule/IMipPlugin.php 2022-04-27 09:57:34.955523100 +0530 -+++ apps/dav/lib/CalDAV/Schedule/IMipPlugin_Modifiednew.php 2022-04-27 09:57:09.345523100 +0530 -@@ -659,7 +659,7 @@ - Message $iTipMessage, $lastOccurrence) { - $token = $this->createInvitationToken($iTipMessage, $lastOccurrence); - -- $template->addBodyButtonGroup( -+ $template->addBodyButtonGroupTentative( - $l10n->t('Accept'), - $this->urlGenerator->linkToRouteAbsolute('dav.invitation_response.accept', [ - 'token' => $token, -@@ -667,18 +667,11 @@ - $l10n->t('Decline'), - $this->urlGenerator->linkToRouteAbsolute('dav.invitation_response.decline', [ - 'token' => $token, -- ]) -+ ]), -+ $l10n->t('Maybe'), -+ $this->urlGenerator->getAbsoluteUrl('apps/calendar/invitation/tentative/'.$token) - ); - -- $moreOptionsURL = $this->urlGenerator->linkToRouteAbsolute('dav.invitation_response.options', [ -- 'token' => $token, -- ]); -- $html = vsprintf('%s', [ -- $moreOptionsURL, $l10n->t('More options …') -- ]); -- $text = $l10n->t('More options at %s', [$moreOptionsURL]); -- -- $template->addBodyText($html, $text); - } - - /** - ---- apps/dav/lib/CalDAV/Schedule/IMipPlugin.php 2022-07-27 13:21:50.294113800 +0530 -+++ apps/dav/lib/CalDAV/Schedule/IMipPlugin-New.php 2022-08-16 16:29:16.531866700 +0530 +--- apps/dav/lib/CalDAV/Schedule/IMipPlugin.php 2022-09-06 17:56:20.875827300 +0530 ++++ apps/dav/lib/CalDAV/Schedule/IMipPlugin-new23.php 2022-09-06 17:13:51.925827300 +0530 @@ -151,15 +151,6 @@ */ public function schedule(Message $iTipMessage) { @@ -50,7 +16,7 @@ $summary = $iTipMessage->message->VEVENT->SUMMARY; if (parse_url($iTipMessage->sender, PHP_URL_SCHEME) !== 'mailto') { -@@ -252,9 +243,25 @@ +@@ -252,7 +243,22 @@ $summary = ((string) $summary !== '') ? (string) $summary : $l10n->t('Untitled event'); @@ -73,43 +39,11 @@ + } $this->addBulletList($template, $l10n, $vevent); -+ // Only add response buttons to invitation requests: Fix Issue #11230 - if (($method == self::METHOD_REQUEST) && $this->getAttendeeRsvpOrReqForParticipant($attendee)) { - -@@ -414,7 +421,7 @@ - return false; - } - -- /** -+ /** +@@ -542,24 +548,84 @@ + /** + * @param IEMailTemplate $template * @param IL10N $l10n - * @param VEvent $vevent - */ -@@ -525,38 +532,99 @@ - private function addSubjectAndHeading(IEMailTemplate $template, IL10N $l10n, - $method, $summary) { - if ($method === self::METHOD_CANCEL) { -- $template->setSubject('Canceled: ' . $summary); -+ //TRANSLATORS Subject for email, when an invitation is cancelled. Ex: "Cancelled: {{Event Name}}" -+ $template->setSubject($l10n->t('Cancelled: %1$s', [$summary])); - $template->addHeading($l10n->t('Invitation canceled')); - } elseif ($method === self::METHOD_REPLY) { -- $template->setSubject('Re: ' . $summary); -+ // TRANSLATORS Subject for email, when an invitation is updated. Ex: "Re: {{Event Name}}" -+ $template->setSubject($l10n->t('Re: %1$s', [$summary])); - $template->addHeading($l10n->t('Invitation updated')); - } else { -- $template->setSubject('Invitation: ' . $summary); -+ // TRANSLATORS Subject for email, when an invitation is sent. Ex: "Invitation: {{Event Name}}" -+ $template->setSubject($l10n->t('Invitation: %1$s', [$summary])); - $template->addHeading($l10n->t('Invitation')); - } - } -- -+ /** -+ * @param IEMailTemplate $template -+ * @param IL10N $l10n + * @param string $method + * @param string $summary + */ @@ -129,9 +63,10 @@ + $template->addHeading($l10n->t('Invitation Update')); + } + } - /** - * @param IEMailTemplate $template - * @param IL10N $l10n ++ ++ /** ++ * @param IEMailTemplate $template ++ * @param IL10N $l10n * @param VEVENT $vevent */ private function addBulletList(IEMailTemplate $template, IL10N $l10n, $vevent) { @@ -201,7 +136,7 @@ $template->addBodyListItem(sprintf('%s', htmlspecialchars($url), htmlspecialchars($url)), -@@ -565,12 +633,18 @@ +@@ -568,12 +634,18 @@ $url,'',self::IMIP_INDENT); } @@ -224,18 +159,34 @@ } } -@@ -671,7 +745,6 @@ - $l10n->t('Maybe'), - $this->urlGenerator->getAbsoluteUrl('apps/calendar/invitation/tentative/'.$token) +@@ -662,7 +734,7 @@ + Message $iTipMessage, $lastOccurrence) { + $token = $this->createInvitationToken($iTipMessage, $lastOccurrence); + +- $template->addBodyButtonGroup( ++ $template->addBodyButtonGroupTentative( + $l10n->t('Accept'), + $this->urlGenerator->linkToRouteAbsolute('dav.invitation_response.accept', [ + 'token' => $token, +@@ -670,18 +742,10 @@ + $l10n->t('Decline'), + $this->urlGenerator->linkToRouteAbsolute('dav.invitation_response.decline', [ + 'token' => $token, +- ]) ++ ]), ++ $l10n->t('Maybe'), ++ $this->urlGenerator->getAbsoluteUrl('apps/calendar/invitation/tentative/'.$token) ); - +- $moreOptionsURL = $this->urlGenerator->linkToRouteAbsolute('dav.invitation_response.options', [ +- 'token' => $token, +- ]); +- $html = vsprintf('%s', [ +- $moreOptionsURL, $l10n->t('More options …') +- ]); +- $text = $l10n->t('More options at %s', [$moreOptionsURL]); +- +- $template->addBodyText($html, $text); } /** -@@ -716,4 +789,4 @@ - - return $token; - } --} -+} -\ No newline at end of file diff --git a/patches/019-groupware.patch b/patches/019-groupware.patch new file mode 100644 index 0000000000000000000000000000000000000000..126c528027cd5a76d1d5a544c543d188d6e69c41 --- /dev/null +++ b/patches/019-groupware.patch @@ -0,0 +1,11 @@ +--- ./apps/settings/lib/Sections/Personal/Groupware.php 2022-09-08 11:20:19.355809900 +0530 ++++ ./apps/settings/lib/Sections/Personal/Groupware-new.php 2022-09-08 11:18:46.905809900 +0530 +@@ -45,7 +45,7 @@ + } + + public function getID(): string { +- return 'groupware'; ++ return ''; + } + + public function getName(): string {