Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc9283e3 authored by Akhil's avatar Akhil 🙂
Browse files
parents f9063b12 822eedeb
Loading
Loading
Loading
Loading
+81 −142
Original line number Diff line number Diff line
FROM nextcloud:29.0.16-fpm AS nextcloud
FROM nextcloud:31.0.10-fpm AS nextcloud
ARG BASE_DIR="/usr/src/nextcloud"
ARG TMP_PATCH_DIR="/tmp/build_patches"
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="1210606"
ARG EA_JOB_ID="1203572"
ARG LAUNCHER_JOB_ID="1168135"
ARG GOOGLE_INTEGRATION_VERSION="3.2.0"
ARG DASHBOARD_JOB_ID="1210106"
ARG SNAPPY_VERSION="2.37.2"
ARG SNAPPY_THEME_VERSION="4.0.1"
ARG USER_MIGRATION_JOB_ID="1168093"
ARG MEMORIES_VERSION="7.5.2"
ARG DROP_ACCOUNT_VERSION="2.7.1"

RUN sed -i 's/29,0,16,1/29,0,16,1/' ${BASE_DIR}/version.php

ARG CONTACTS_URL="https://gitlab.e.foundation/api/v4/projects/1238/packages/generic/contacts/v7.2.0+murena-20251111/contacts-v7.2.0+murena-20251111.tar.gz"
ARG CALENDAR_URL="https://gitlab.e.foundation/api/v4/projects/1199/packages/generic/calendar/v5.3.5+murena-20251016/calendar-v5.3.5+murena-20251016.tar.gz"
ARG THEME_HELPER_URL="https://gitlab.e.foundation/api/v4/projects/952/packages/generic/ecloud-theme-helper/v9.0.0/ecloud-theme-helper-v9.0.0.tar.gz"
ARG LAUNCHER_URL="https://gitlab.e.foundation/api/v4/projects/927/packages/generic/murena_launcher/v9.0.0/murena_launcher-v9.0.0.tar.gz"
ARG DASHBOARD_URL="https://gitlab.e.foundation/api/v4/projects/1195/packages/generic/murena-dashboard/v9.0.0/murena-dashboard-v9.0.0.tar.gz"
ARG SNAPPY_URL="https://gitlab.e.foundation/api/v4/projects/1367/packages/generic/snappymail/v2.38.2+murena-20251117/snappymail-v2.38.2+murena-20251117.tar.gz"
ARG OIDC_LOGIN_URL="https://gitlab.e.foundation/api/v4/projects/1496/packages/generic/oidc_login/v3.2.2+murena-20251028/oidc_login-v3.2.2+murena-20251028.tar.gz"
ARG SNAPPY_THEME_VERSION="https://gitlab.e.foundation/api/v4/projects/1377/packages/generic/snappymail/v4.0.5/snappymail-v4.0.5.tar.gz"
ARG EA_URL="https://gitlab.e.foundation/api/v4/projects/648/packages/generic/ecloud-accounts/v13.0.0/ecloud-accounts-v13.0.0.tar.gz"
ARG EMAIL_RECOVERY_URL="https://gitlab.e.foundation/api/v4/projects/868/packages/generic/email-recovery/v12.2.0/email-recovery-v12.2.0.tar.gz"
ARG USER_MIGRATION_URL="https://gitlab.e.foundation/api/v4/projects/1468/packages/generic/user_migration/8.0.0+murena-20251020/user_migration-8.0.0+murena-20251020.tar.gz"

ARG NOTES_URL="https://github.com/nextcloud-releases/notes/releases/download/v4.11.0/notes-v4.11.0.tar.gz"
ARG MEMORIES_URL="https://github.com/pulsejet/memories/releases/download/v7.5.2/memories.tar.gz"
ARG DROP_ACCOUNT_URL="https://packages.framasoft.org/projects/nextcloud-apps/drop-account/drop_account-2.7.1.tar.gz"
ARG GOOGLE_INTEGRATION_URL="https://github.com/nextcloud/integration_google/releases/download/v1.0.9/integration_google-1.0.9.tar.gz"

RUN sed -i 's/31,0,10,2/31,0,10,11/' ${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
# Install unzip for unzipping artifacts
RUN apt-get update && apt-get install -y unzip ffmpeg

RUN curl -fsSL -o notes.tar.gz \
  "https://github.com/nextcloud-releases/notes/releases/download/v${NOTES_VERSION}/notes-v${NOTES_VERSION}.tar.gz" && \
  tar -xf notes.tar.gz -C ${BASE_DIR}/custom_apps/ && \
  rm notes.tar.gz;

# custom Contact
RUN curl -fsSL -o contacts.zip \
  "https://gitlab.e.foundation/e/infra/ecloud/nextcloud-apps/contacts/-/jobs/${CONTACTS_JOB_ID}/artifacts/download" && \
  unzip contacts.zip && \
  mv dist/contacts ${BASE_DIR}/custom_apps/ && \
  rm contacts.zip;

RUN curl -fsSL -o calendar.zip \
  "https://gitlab.e.foundation/e/infra/ecloud/nextcloud-apps/calendar/-/jobs/${CALENDAR_JOB_ID}/artifacts/download" && \
  unzip calendar.zip && \
  mv dist/calendar ${BASE_DIR}/custom_apps/ && \
  rm calendar.zip;

RUN curl -fsSL -o email-recovery.zip \
  "https://gitlab.e.foundation/e/infra/ecloud/nextcloud-apps/email-recovery/-/jobs/${EMAIL_RECOVERY_JOB_ID}/artifacts/download" && \
  unzip email-recovery.zip && \
  mv dist/email-recovery ${BASE_DIR}/custom_apps/ && \
  rm email-recovery.zip;


RUN curl -fsSL -o ecloud-theme-helper.zip \
  "https://gitlab.e.foundation/e/infra/ecloud/nextcloud-apps/ecloud-theme-helper/-/jobs/${THEME_HELPER_JOB_ID}/artifacts/download" && \
  unzip ecloud-theme-helper.zip && \
  mv dist/ecloud-theme-helper ${BASE_DIR}/custom_apps/ && \
  rm ecloud-theme-helper.zip;

RUN curl -fsSL -o murena_launcher.zip \
  "https://gitlab.e.foundation/e/infra/ecloud/nextcloud-apps/launcher/-/jobs/${LAUNCHER_JOB_ID}/artifacts/download" && \
  unzip murena_launcher.zip && \
  mv dist/murena_launcher ${BASE_DIR}/custom_apps/ && \
  rm murena_launcher.zip;

RUN curl -fsSL -o integration_google.tar.gz \
  "https://github.com/nextcloud-releases/integration_google/releases/download/v${GOOGLE_INTEGRATION_VERSION}/integration_google-v${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;

RUN curl -fsSL -o ecloud-accounts.zip \
  "https://gitlab.e.foundation/e/infra/ecloud/nextcloud-apps/ecloud-accounts/-/jobs/${EA_JOB_ID}/artifacts/download" && \
  unzip ecloud-accounts.zip && \
  mv dist/ecloud-accounts ${BASE_DIR}/custom_apps/ && \
  rm ecloud-accounts.zip;

RUN curl -fsSL -o ecloud-dashboard.zip \
  "https://gitlab.e.foundation/e/infra/ecloud/nextcloud-apps/murena-dashboard/-/jobs/${DASHBOARD_JOB_ID}/artifacts/download" && \
  unzip ecloud-dashboard.zip && \
  mv dist/murena-dashboard ${BASE_DIR}/custom_apps/ && \
  rm ecloud-dashboard.zip;

RUN curl -fsSL -o snappymail.tar.gz \
  "https://snappymail.eu/repository/nextcloud/snappymail-${SNAPPY_VERSION}-nextcloud.tar.gz" && \
  tar -xf snappymail.tar.gz -C ${BASE_DIR}/custom_apps/ && \
  rm snappymail.tar.gz;

RUN curl -fsSL -o user_migration.zip \
  "https://gitlab.e.foundation/e/infra/ecloud/nextcloud-apps/user_migration/-/jobs/${USER_MIGRATION_JOB_ID}/artifacts/download" && \
  unzip user_migration.zip && \
  mv dist/user_migration ${BASE_DIR}/custom_apps/ && \
  rm user_migration.zip;

RUN rm -rf ${BASE_DIR}/core/skeleton/* ${BASE_DIR}/themes/example \
 && mkdir -p ${BASE_DIR}/core/skeleton/Documents \
 && mkdir -p ${BASE_DIR}/core/skeleton/Images \
 && mkdir -p ${BASE_DIR}/themes/Murena \
 && mkdir -p ${BASE_DIR}/themes/eCloud

# Install unzip for unzipping artifacts
RUN apt-get update && apt-get install -y unzip ffmpeg syslog-ng

# Murena apps
RUN curl -sL ${CONTACTS_URL} | tar xzf - -C ${BASE_DIR}/custom_apps
RUN curl -sL ${CALENDAR_URL} | tar xzf - -C ${BASE_DIR}/custom_apps
RUN curl -sL ${THEME_HELPER_URL} | tar xzf - -C ${BASE_DIR}/custom_apps
RUN curl -sL ${LAUNCHER_URL} | tar xzf - -C ${BASE_DIR}/custom_apps
RUN curl -sL ${DASHBOARD_URL} | tar xzf - -C ${BASE_DIR}/custom_apps
RUN curl -sL ${SNAPPY_URL} | tar xzf - -C ${BASE_DIR}/custom_apps
RUN curl -sL ${OIDC_LOGIN_URL} | tar xzf - -C ${BASE_DIR}/custom_apps
RUN curl -sL ${EA_URL} | tar xzf - -C ${BASE_DIR}/custom_apps
RUN curl -sL ${EMAIL_RECOVERY_URL} | tar xzf - -C ${BASE_DIR}/custom_apps
RUN curl -sL ${USER_MIGRATION_URL} | tar xzf - -C ${BASE_DIR}/custom_apps

# External apps
RUN curl -sL ${NOTES_URL} | tar xzf - -C ${BASE_DIR}/custom_apps
RUN curl -sL ${MEMORIES_URL} | tar xzf - -C ${BASE_DIR}/custom_apps
RUN curl -sL ${DROP_ACCOUNT_URL} | tar xzf - -C ${BASE_DIR}/custom_apps
RUN curl -sL ${GOOGLE_INTEGRATION_URL} | tar xzf - -C ${BASE_DIR}/custom_apps

# Fix snappymail icon
RUN sed -i 's/logo-white-64x64.png/app.svg/' ${BASE_DIR}/custom_apps/snappymail/appinfo/info.xml
#RUN sed -i 's/logo-white-64x64.png/app.svg/' ${BASE_DIR}/custom_apps/snappymail/appinfo/info.xml

# Hide personal settings of snappymail
RUN sed -i "s/'additional'/null/" ${BASE_DIR}/custom_apps/snappymail/lib/Settings/PersonalSettings.php
#RUN sed -i "s/'additional'/null/" ${BASE_DIR}/custom_apps/snappymail/lib/Settings/PersonalSettings.php

# Snappy theme
RUN curl -fsSL -o Murena-snappymail-theme.tar.gz \
  "https://gitlab.e.foundation/e/infra/ecloud/nextcloud-apps/snappymail-theme/-/archive/${SNAPPY_THEME_VERSION}/snappymail-theme-${SNAPPY_THEME_VERSION}.tar.gz" && \
  tar -xf Murena-snappymail-theme.tar.gz -C /tmp/ && \
  mkdir -p ${BASE_DIR}/themes/Murena && \
  mv /tmp/snappymail-theme-${SNAPPY_THEME_VERSION}/ ${BASE_DIR}/themes/Murena/snappymail && \
  chown -R www-data:www-data ${BASE_DIR}/themes/Murena/ && \
  rm -rf Murena-snappymail-theme.tar.gz

RUN curl -fsSL -o memories.tar.gz \
  "https://github.com/pulsejet/memories/releases/download/v${MEMORIES_VERSION}/memories.tar.gz" && \
  tar -xf memories.tar.gz -C ${BASE_DIR}/custom_apps/ && \
  rm memories.tar.gz;

RUN curl -fsSL -o drop_account.tar.gz \
  "https://packages.framasoft.org/projects/nextcloud-apps/drop-account/drop_account-${DROP_ACCOUNT_VERSION}.tar.gz" && \
  tar -xf drop_account.tar.gz -C ${BASE_DIR}/custom_apps/ && \
  rm drop_account.tar.gz;

RUN rm -rf ${BASE_DIR}/themes/Murena/* && \
    curl -sL ${SNAPPY_THEME_VERSION} | tar xzf - -C ${BASE_DIR}/themes/Murena/


# Remove unzip when unzipping is done
@@ -123,7 +72,7 @@ RUN apt-get -y remove unzip
RUN sed -i "s/\$systemConfig->setValue('theme', '');/\$systemConfig->setValue('theme', 'eCloud');/g" ${BASE_DIR}/lib/base.php

# Disable editor feature of media viewer
RUN sed -i 's/canEdit(){return!this.isMobile&&L()/canEdit(){return!this.isMobile&&false&&L()/' ${BASE_DIR}/apps/viewer/js/viewer-main.mjs
RUN sed -i 's/canEdit(){return!this.isMobile\&\&L()/canEdit(){return!this.isMobile\&\&false\&\&L()/' ${BASE_DIR}/apps/viewer/js/viewer-main.mjs


ENTRYPOINT ["/custom_entrypoint.sh"]
@@ -132,8 +81,8 @@ CMD ["php-fpm"]
From nextcloud as selfhost
ARG BASE_DIR="/usr/src/nextcloud"
ARG TMP_PATCH_DIR="/tmp/build_patches"
ARG THEME_VERSION="26.0.2"
ARG USER_BACKEND_RAW_SQL_VERSION="2.0.1"
ARG THEME_VERSION="https://gitlab.e.foundation/api/v4/projects/315/packages/generic/eCloud/v26.0.2/eCloud-v26.0.2.tar.gz"
#ARG USER_BACKEND_RAW_SQL_VERSION="2.0.1"
ARG SELFHOST_THEME_VERSION="2.0.0"
ARG IS_SELFHOST=true

@@ -149,7 +98,7 @@ RUN patch -u ${BASE_DIR}/lib/private/Authentication/Token/PublicKeyTokenProvider
RUN cd ${BASE_DIR} && patch -p0 < ${TMP_PATCH_DIR}/014-add-mail-usage.patch
RUN cd ${BASE_DIR} && patch -p0 < ${TMP_PATCH_DIR}/015-email-mail-template.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/files/js/files.js -i ${TMP_PATCH_DIR}/021-repeated-storage-dialog-fix.patch
#RUN patch -u ${BASE_DIR}/apps/files/js/files.js -i ${TMP_PATCH_DIR}/021-repeated-storage-dialog-fix.patch
RUN cd ${BASE_DIR} && patch -u ${BASE_DIR}/3rdparty/sabre/vobject/lib/ITip/Broker.php -i ${TMP_PATCH_DIR}/022-significantchange.patch
RUN cd ${BASE_DIR} && patch -p0 < ${TMP_PATCH_DIR}/026-primary-color-fix.patch
RUN patch -u ${BASE_DIR}/lib/private/Template/JSResourceLocator.php -i ${TMP_PATCH_DIR}/031-theme-custom-app-translations.patch
@@ -160,18 +109,15 @@ RUN cd ${BASE_DIR} && patch -p1 < ${TMP_PATCH_DIR}/036-user-config-change-event.
RUN rm -rf ${TMP_PATCH_DIR}

# Custom theme
RUN curl -fsSL -o eCloud-theme.tar.gz \
  "https://gitlab.e.foundation/e/infra/ecloud/nextcloud-apps/nextcloud-theme/-/archive/${THEME_VERSION}/nextcloud-theme-${THEME_VERSION}.tar.gz" && \
  tar -xf eCloud-theme.tar.gz -C /tmp/ && \
  mv /tmp/nextcloud-theme-${THEME_VERSION}/ ${BASE_DIR}/themes/eCloud && \
  chown -R www-data:www-data ${BASE_DIR}/themes/eCloud/ && \
  rm -rf eCloud-theme.tar.gz ${BASE_DIR}/themes/example/
RUN rm -rf ${BASE_DIR}/themes/eCloud && \
    curl -sL ${THEME_VERSION} | tar xzf - -C ${BASE_DIR}/themes


# User Backend
RUN curl -fsSL -o user_backend_sql_raw.tar.gz \
  "https://github.com/PanCakeConnaisseur/user_backend_sql_raw/releases/download/v${USER_BACKEND_RAW_SQL_VERSION}/user_backend_sql_raw.tar.gz" && \
  tar -xf user_backend_sql_raw.tar.gz -C ${BASE_DIR}/custom_apps/ && \
  rm user_backend_sql_raw.tar.gz;
#RUN curl -fsSL -o user_backend_sql_raw.tar.gz \
#  "https://github.com/PanCakeConnaisseur/user_backend_sql_raw/releases/download/v${USER_BACKEND_RAW_SQL_VERSION}/user_backend_sql_raw.tar.gz" && \
#  tar -xf user_backend_sql_raw.tar.gz -C ${BASE_DIR}/custom_apps/ && \
#  rm user_backend_sql_raw.tar.gz;

# Selfhost theme
RUN if [ "$IS_SELFHOST" = true ]; then \
@@ -198,22 +144,16 @@ RUN sed -i 's/this.appLimit=e/this.appLimit=this.appList.length/' ${BASE_DIR}/di

# Fix total quota value for users in settings and files
RUN sed -i "s/'total'/'quota'/" ${BASE_DIR}/apps/settings/lib/Settings/Personal/PersonalInfo.php
RUN sed -i "s/\['total'\]/\['quota'\]/" ${BASE_DIR}/apps/provisioning_api/lib/Controller/AUserData.php

# Fix API call in files script
RUN sed -i "s/ajax\/getstoragestats/api\/v1\/stats/g" ${BASE_DIR}/apps/files/js/files.js
RUN sed -i "s/\['total'\]/\['quota'\]/" ${BASE_DIR}/apps/provisioning_api/lib/Controller/AUserDataOCSController.php

#fix for who can access data- its needed with 011-privacy-settings.patch
RUN sed -i 's|Your home storage is encrypted using {linkopen}server-side-encryption ↗{linkclose} with a master key\. It means that administrators can access your files, but not read their content\.|Like in most cloud services, a reduced number of administrators can see your files and all the information in the database as they need to make backups, perform upgrades, reset passwords, etc.<br>{linkopen1}Learn more about this topic here.  ↗{linkclose1}|g' ${BASE_DIR}/apps/privacy/js/privacy-main.js
RUN sed -i 's/t((0,n\.Iu)("privacy","Your files on external storages may be encrypted using {linkopen}server-side-encryption ↗{linkclose} with a master key based on their configuration\."))/t("{linkopen}"+(0,n\.Iu)("privacy","To protect your data, we have implemented server-side-encryption on our servers which hides by default the content of your files and notes even to these administrators")+"↗{linkclose}")/g' ${BASE_DIR}/apps/privacy/js/privacy-main.js
RUN sed -i 's|t=t=>e.push(t.replace("{linkopen}",'"'"'<a href="https://nextcloud.com/blog/encryption-in-nextcloud/" target="_blank" rel="noreferrer noopener" class="encryption__link">'"'"').replace("{linkclose}","</a>"))|t=t=>e.push(t.replace("{linkopen}",'"'"'<a href="https://nextcloud.com/blog/encryption-in-nextcloud/" target="_blank" rel="noreferrer noopener" class="encryption__link">'"'"').replace("{linkclose}","</a>"))|g'  ${BASE_DIR}/apps/privacy/js/privacy-main.js
RUN sed -i 's|.replace("{linkclose}","</a>")|.replace("{linkclose}","</a>").replace("{linkopen1}",'"'"'<a href="https://doc.e.foundation/support-topics/services#can-the-ecloud-admin-access-my-data" target="_blank" rel="noreferrer noopener" class="encryption__link">'"'"').replace("{linkclose1}","</a>")|g' ${BASE_DIR}/apps/privacy/js/privacy-main.js
# Fix API call in files script -Not needed in NC 31
#RUN sed -i "s/ajax\/getstoragestats/api\/v1\/stats/g" ${BASE_DIR}/apps/files/js/files.js

From selfhost as ecloud
ARG BASE_DIR="/usr/src/nextcloud"
ARG TMP_PATCH_DIR="/tmp/build_patches"
ARG THEME_VERSION="29.0.16-beta"
ARG LDAP_WRITE_SUPPORT_VERSION="1.11.0"
ARG THEME_VERSION="https://gitlab.e.foundation/api/v4/projects/315/packages/generic/eCloud/v31.0.3/eCloud-v31.0.3.tar.gz"
ARG LDAP_WRITE_SUPPORT_VERSION="1.13.0"
ARG IS_SELFHOST=false

RUN curl -fsSL -o ldap_write_support.tar.gz \
@@ -228,25 +168,28 @@ RUN patch -u ${BASE_DIR}/core/Controller/ContactsMenuController.php -i ${TMP_PAT
RUN cd ${BASE_DIR} && patch -p0 < ${TMP_PATCH_DIR}/005-autocomplete-user-leak-core.patch
RUN patch -u ${BASE_DIR}/core/templates/layout.guest.php -i ${TMP_PATCH_DIR}/016-login-screen.patch
RUN patch -u ${BASE_DIR}/lib/private/Notification/Manager.php -i ${TMP_PATCH_DIR}/020-fairuse-notification-fix.patch
RUN cd ${BASE_DIR} && patch -u ${BASE_DIR}/apps/user_ldap/lib/User_LDAP.php -i ${TMP_PATCH_DIR}/023-ldap-check-pwd-optimization.patch
#RUN cd ${BASE_DIR} && patch -u ${BASE_DIR}/apps/user_ldap/lib/User_LDAP.php -i ${TMP_PATCH_DIR}/023-ldap-check-pwd-optimization.patch - already added in nc31
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

#RUN patch -u ${BASE_DIR}/custom_apps/snappymail/app/snappymail/v/2.38.2+murena-20251112/app/libraries/RainLoop/Actions/Contacts.php -i ${TMP_PATCH_DIR}/037-snappymail-contact.patch
RUN rm -rf ${TMP_PATCH_DIR}


# Remove user avatar generation for system addressbook card
RUN sed -i 's/$this->getAvatarImage($user)/null/' ${BASE_DIR}/apps/dav/lib/CardDAV/Converter.php

# redirect user to sso login on successful resetting password
#RUN cd ${BASE_DIR}/dist && sed -i "s|window\.location\.href=(0,g\.Jv)(\"login\")|window.location.href = '/'|g" core-login.js

# show reset pwd page with a query param
# RUN cd ${BASE_DIR}/dist && sed -i 's/resetPassword:!1/resetPassword:!1||Z.showResetPassword==="1"/' core-login.js

# add attr about how many notifications to notif icon
RUN sed -i 's/attrs:{id:"notifications",/attrs:{id:"notifications","data-has-notifications":0!==t.notifications.length,/' ${BASE_DIR}/apps/notifications/js/notifications-src_NotificationsApp_vue.js
RUN sed -i 's/attrs:{id:"notifications",/attrs:{id:"notifications","data-has-notifications":0!==u.notifications.length,/' ${BASE_DIR}/apps/notifications/js/NotificationsApp-CL5l4zBd.chunk.mjs

# Rename Memories to Gallery
RUN sed -i 's/<name>Memories<\/name>/<name>Gallery<\/name>/g' ${BASE_DIR}/custom_apps/memories/appinfo/info.xml
@@ -255,14 +198,14 @@ RUN cd ${BASE_DIR}/custom_apps/memories/js && sed -i 's/Memories Settings/Galler

# autocomplete leak tweak apps frontend with sed, disable group suggestion

RUN cd ${BASE_DIR}/custom_apps/contacts && sed -i ' s/"GROUP","INDIVIDUAL"/"INDIVIDUAL"/g' js/contacts-main.js
#RUN cd ${BASE_DIR}/custom_apps/contacts && sed -i 's/\["INDIVIDUAL"\]/\[\]/g' js/contacts-main.mjs
RUN cd ${BASE_DIR}/custom_apps/calendar && sed -i 's/"GROUP","INDIVIDUAL"/"INDIVIDUAL"/g' js/calendar-main.js
RUN cd ${BASE_DIR}/custom_apps/calendar && sed -i 's/{name:\[a,"displayname"\]},//' js/calendar-main.js
RUN cd ${BASE_DIR}/custom_apps/notes && sed -i 's/<step>OCA\\Notes\\Migration\\EditorHint<\/step>//g' appinfo/info.xml
RUN cd ${BASE_DIR}/apps/theming && sed -i 's/<step>OCA\\Theming\\Migration\\MigrateUserConfig<\/step>//g' appinfo/info.xml

# sharing search by email
RUN cd ${BASE_DIR}/custom_apps/contacts && sed -i 's/kM.principalPropertySearchByDisplayname(t);/kM.principalPropertySearch(\[{name:\["http:\/\/sabredav.org\/ns","email-address"\]\}],t,"anyof");/g' js/contacts-main.js
#RUN cd ${BASE_DIR}/custom_apps/contacts && sed -i 's/kM.principalPropertySearchByDisplayname(t);/kM.principalPropertySearch(\[{name:\["http:\/\/sabredav.org\/ns","email-address"\]\}],t,"anyof");/g' js/contacts-main.js

# Remove colored background from email template logo
RUN sed -i 's/$this->header, \[$this->themingDefaults->getDefaultColorPrimary()/$this->header, \["none"/' ${BASE_DIR}/lib/private/Mail/EMailTemplate.php
@@ -275,7 +218,7 @@ RUN sed -i 's/$this->changeAvatar/\/\/ $this->changeAvatar/' ${BASE_DIR}/custom_
RUN sed -i '/<step>OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue<\/step>/d' ${BASE_DIR}/apps/dav/appinfo/info.xml

# Hide `Play sound when a call started (requires Nextcloud Talk)` checkbox from notification setting
RUN sed -i 's/attrs:{checked:e\.config\.sound_talk}/staticClass:"notification_talk",attrs:{checked:e\.config\.sound_talk}/g' ${BASE_DIR}/apps/notifications/js/notifications-settings.js
RUN sed -i 's/attrs:{checked:r\.config\.sound_talk}/staticClass:"notification_talk",attrs:{checked:r\.config\.sound_talk}/g' ${BASE_DIR}/apps/notifications/js/notifications-settings.mjs

# Hide `Navigation bar settings` from theming
RUN sed -i 's/{attrs:{name:t.t("theming","Navigation bar settings")}}/{staticClass:"navigation-bar-settings",attrs:{name:t.t("theming","Navigation bar settings")}}/g' ${BASE_DIR}/dist/theming-personal-theming.js
@@ -283,12 +226,7 @@ RUN sed -i 's/{attrs:{name:t.t("theming","Navigation bar settings")}}/{staticCla

# Custom theme
RUN rm -rf ${BASE_DIR}/themes/eCloud && \
  curl -fsSL -o eCloud-theme.tar.gz \
  "https://gitlab.e.foundation/e/infra/ecloud/nextcloud-apps/nextcloud-theme/-/archive/${THEME_VERSION}/nextcloud-theme-${THEME_VERSION}.tar.gz" && \
  tar -xf eCloud-theme.tar.gz -C /tmp/ && \
  mv /tmp/nextcloud-theme-${THEME_VERSION}/ ${BASE_DIR}/themes/eCloud && \
  chown -R www-data:www-data ${BASE_DIR}/themes/eCloud/ && \
  rm -rf eCloud-theme.tar.gz ${BASE_DIR}/themes/example/
    curl -sL ${THEME_VERSION} | tar xzf - -C ${BASE_DIR}/themes

# Remove Selfhost theme
RUN if [ "$IS_SELFHOST" = false ]; then \
@@ -308,5 +246,6 @@ RUN sed -i ':a;N;$!ba;s/t("NcActionButton",{on:{click:e.onToggleSharing},scopedS
# Add id to delete account settings section and hide it by default
RUN sed -i 's/"NcSettingsSection",{attrs:{/"NcSettingsSection",{attrs:{id:"delete-account-settings-section",style:"visibility:hidden;",/' ${BASE_DIR}/custom_apps/drop_account/js/drop_account-personal-settings.mjs

# Fix of https://github.com/nextcloud/server/commit/e727a3b00bd9b574279d25c006a0bc6b8fa4eec3 for availability setting
RUN sed -i 's/n.data/await n.text()/' ${BASE_DIR}/dist/dav-settings-personal-availability.js
 No newline at end of file
# Hide personal settings of files_external
RUN sed -i "s/'externalstorages'/null/" ${BASE_DIR}/apps/files_external/lib/Settings/Personal.php
+2 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ if version_greater "$image_version" "$installed_version"; then
    rsync $rsync_options --include "/user_backend_sql_raw/" --exclude '/*' $SRC_DIR/custom_apps/ $DST_DIR/custom_apps/
    rsync $rsync_options --include "/email-recovery/" --exclude '/*' $SRC_DIR/custom_apps/ $DST_DIR/custom_apps/
    rsync $rsync_options --include "/ecloud-accounts/" --exclude '/*' $SRC_DIR/custom_apps/ $DST_DIR/custom_apps/
    rsync $rsync_options --include "/oidc_login/" --exclude '/*' $SRC_DIR/custom_apps/ $DST_DIR/custom_apps/
    rsync $rsync_options --include "/ecloud-theme-helper/" --exclude '/*' $SRC_DIR/custom_apps/ $DST_DIR/custom_apps/
    rsync $rsync_options --include "/murena_launcher/" --exclude '/*' $SRC_DIR/custom_apps/ $DST_DIR/custom_apps/
    rsync $rsync_options --include "/integration_google/" --exclude '/*' $SRC_DIR/custom_apps/ $DST_DIR/custom_apps/
@@ -34,6 +35,7 @@ if version_greater "$image_version" "$installed_version"; then
    rsync $rsync_options --include "/Murena/" --exclude '/*' $SRC_DIR/themes/ $DST_DIR/themes/
    rsync $rsync_options --include "/memories/" --exclude '/*' $SRC_DIR/custom_apps/ $DST_DIR/custom_apps/
    rsync $rsync_options --include "/drop_account/" --exclude '/*' $SRC_DIR/custom_apps/ $DST_DIR/custom_apps/
    rsync $rsync_options --include "/user_migration/" --exclude '/*' $SRC_DIR/custom_apps/ $DST_DIR/custom_apps/
    rsync $rsync_options --include "/selfhost-theme-helper/" --exclude '/*' $SRC_DIR/custom_apps/ $DST_DIR/custom_apps/
else
    echo "Skipping rsync step as version not updated!"
+11 −9
Original line number Diff line number Diff line
@@ -9,10 +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
@@ -340,6 +340,26 @@
 				$this->l10n->t('Unsupported email length (>255)')
@@ -315,6 +315,27 @@
 			);
 		}
 
+		$user = mb_strtolower($user, 'UTF-8');
+		$actualUser = $user;
+		$legacyDomain = $this->config->getSystemValue('legacy_domain', '');
@@ -33,10 +33,11 @@ diff --git ./core/Controller/LoginController.php ./core/Controller/LoginControll
+		if (!$this->userManager->userExists($user)) {
+			$user = $user . $legacyDomainSuffix;
+		}
 
+
 		$data = new LoginData(
 			$this->request,
@@ -353,7 +373,7 @@
 			$user,
@@ -327,7 +348,7 @@
 		if (!$result->isSuccess()) {
 			return $this->createLoginFailedResponse(
 				$data->getUsername(),
@@ -45,13 +46,13 @@ diff --git ./core/Controller/LoginController.php ./core/Controller/LoginControll
 				$redirect_url,
 				$result->getErrorMessage()
 			);

--- ./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
@@ -69,6 +69,27 @@
@@ -48,6 +48,27 @@
 
 		$this->logger->debug('Converting login name to UID');
 		$uid = $loginName;
+
+        $uid = trim($uid);
+        $uid = mb_strtolower($uid, 'UTF-8');
+        $legacyDomain = \OC::$server->getConfig()->getSystemValue('legacy_domain', '');
@@ -72,13 +73,14 @@ diff --git ./core/Controller/LoginController.php ./core/Controller/LoginControll
+        if (!\OC::$server->get(\OCP\IUserManager::class)->userExists($uid)) {
+                $uid = $uid . $legacyDomainSuffix;
+        }
+
 		Util::emitHook(
 			'\OCA\Files_Sharing\API\Server2Server',
 			'preLoginNameUsedAsUserName',

--- ./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
@@ -413,6 +413,10 @@
@@ -383,6 +383,10 @@
 		$remoteAddress = $request->getRemoteAddress();
 		$currentDelay = $throttler->sleepDelayOrThrowOnMax($remoteAddress, 'login');
 
+1 −1
Original line number Diff line number Diff line
@@ -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
@@ -70,7 +70,6 @@
@@ -76,7 +76,6 @@
 			<div class="header-right">
 				<div id="unified-search"></div>
 				<div id="notifications"></div>
+2 −2

File changed.

Preview size limit exceeded, changes collapsed.

Loading