aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-05-01 01:00:10 -0500
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-05-01 01:00:10 -0500
commit4bb4fe5ca0e7e75533d908a91f0d7aa086db9e61 (patch)
tree968c71f3b40987379b3c92371b3abc9d3b5abd62 /docker
parentaba2dc0df5c50c244904f2b1bb458334a851d426 (diff)
Port upstream PR #2374: Nexus OAuth authentication
Replaces legacy API-key flow with OAuth 2.0 PKCE (public client, client_id "modorganizer2", overridable via MO2_NEXUS_CLIENT_ID env). Backwards-compatible: stored API key is used as fallback if no OAuth token is present. Fixes the symptom users hit after Nexus deprecated personal API keys for download endpoints — Settings showed "Connected." (key still validates) but downloads/CDN list returned empty. Cherry-picked from upstream/dev/oauth-graphql against merge-base 925bade3, with these adjustments for our Linux-only fork: - Dockerfile: aqtinstall +qtnetworkauth module - CMakeLists.txt: find_package + link Qt6::NetworkAuth - Dropped Windows-only hunks: dlls.manifest.qt6{,debug}, pch.h QWebSocket include - Skipped src/CMakeLists.txt and .gitignore upstream hunks (their layout differs from ours) - Skipped organizer_en.ts (regenerable via lupdate) - Skipped tutorials/tutorial_firststeps_settings.js (defer to the tutorials-disable PR port) - Kept our defensive default member initialisers in nxmaccessmanager.h (m_Reply{nullptr}, m_Result{None}, etc.) and `override` on createRequest() - Resolved trivial conflicts in modlistviewactions.cpp by taking upstream's NexusOAuthTokens API while retaining our [=, this] capture style - createinstancedialog.h, instancemanager.cpp: only meaningful PR delta is a comment text change / unrelated drift; ours retained OAuth callback uses local loopback http://127.0.0.1:28635/callback served by QOAuthHttpServerReplyHandler (no firewall punch needed). Token storage piggybacks the existing Linux QSettings INI credential backend (~/.config/ModOrganizer/credentials.ini). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile2
1 files changed, 1 insertions, 1 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
index a96fb71..827d45b 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -43,7 +43,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
# ── Qt 6.10 via aqtinstall ──
RUN pip3 install --break-system-packages aqtinstall && \
aqt install-qt linux desktop 6.10.2 linux_gcc_64 \
- -m qtwebsockets qtwaylandcompositor \
+ -m qtwebsockets qtwaylandcompositor qtnetworkauth \
--outputdir /opt/qt6 && \
ls /opt/qt6/6.10.2/gcc_64/bin/qmake && \
(pip3 uninstall -y aqtinstall --break-system-packages 2>/dev/null || true)