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 {