Place a dedicated Logout button at the top of the Benutzer-Einstellungen page and wire it to the existing logout flow. Keep button state in sync with login status like the header menu logout action.
Seed rms.auth.oauth plugin settings with a Google OIDC example while keeping the plugin disabled by default, add admin API/UI support to delete individual reservation entries, and extend auth flow handling for OAuth callback redirects and errors.
Introduce a new rms.auth.oauth auth method plugin for OAuth/OIDC code flow with standard provider settings (authorize/token/userinfo URLs, client credentials, scope, redirect URI and extra params). Add server callback handling and OAuth challenge state tracking, UI redirect/error handling, and keep the plugin disabled by default via manifest defaultEnabled=false.
Keep periodic/status-driven SWR image reloads disabled, but refresh the SWR report when swr.run.finished or swr.report.changed events arrive so newly generated images are loaded once via updated timestamps.
Disable periodic and station-status-triggered SWR report refreshes on the web UI, and only use per-band updatedAt values for cache-busting image URLs. This prevents constant image refetching while still loading new images when their timestamps actually change.
Show a persistent red hint in the reservations section that users must delete their reservation to free the station for others, with matching DE/EN i18n entries.
Add the reusable RMS core application (server, web UI, plugins, tests, tools) with generic defaults, GPL licensing, and maintainer context documentation so deployments can consume this repo as software source independent of station-specific overlays.