mobile-connector: merge pairing+devices into one self-service Mobile App page
Nightly Build / build (push) Successful in 7m3s

The two admin-only console pages become a single "Mobile App" page
visible to every logged-in user: connection status (with the last
connection error for troubleshooting), the device list (admin sees all,
others only their own), a pairing dialog with the QR, and — admin-only —
a settings dialog hosting the plugin config, including a relay picker
(official grayed out, test, custom URL). The generic plugin-detail
config form defers to it via the new Plugin::config_in_detail_page flag.

Pairing is now self-service: any user opens a window and the device
auto-binds to them; revocation is admin-for-anyone, owner-for-self;
(re)binding to another user stays admin-only. Binding-managed plugins
(manages_own_access) now expose their non-admin pages to all users and
self-scope per caller (web_pages_for). The relay client records the
error that ends a WS session and clears it on reconnect.
This commit is contained in:
2026-07-27 23:49:50 +01:00
parent a78259551e
commit 50e1333d99
18 changed files with 834 additions and 411 deletions
+3 -1
View File
@@ -2,5 +2,7 @@
"plugin.mobile-connector.err.relay_not_connected": "Relay not connected. Set the connector's relay_url and make sure the relay is reachable, then try again.",
"plugin.mobile-connector.err.admin_only": "Admin only.",
"plugin.mobile-connector.err.user_id_empty": "The user must not be empty.",
"plugin.mobile-connector.err.pubkey_hex": "The device key must be 32-byte hex."
"plugin.mobile-connector.err.pubkey_hex": "The device key must be 32-byte hex.",
"plugin.mobile-connector.err.not_device_owner": "You can only revoke your own devices.",
"plugin.mobile-connector.err.not_pairing_owner": "Only whoever opened the pairing window can close it."
}