Skip to content

Display settings report "Configuration saved" in a session that cannot persist #611

Description

@mairas

StorageService.patchConfig returns early when canPersist() is false, but nothing upstream of it knows. DisplayComponent.saveAllSettings() calls every setter and then shows the "Configuration saved" toast unconditionally, and no component under src/app/core/components/settings/ gates on isReadOnlySession or canPersist. app.routes.ts gates /settings only with embedBlockedGuard, so an anonymous or read-only visitor reaches the form, changes a setting, presses Save, and is told it worked. The change holds for that session and is gone after a reload.

This is pre-existing and shared by every display setting, and it surfaced while reviewing #610 rather than being caused by it. What that PR changes is the consequence for one setting: "Keep the toolbar on screen" is the documented way out of a page whose widget swallows every reveal gesture, so on an unauthenticated kiosk showing a chart-plotter page — the exact deployment its help text describes — the recovery path is the thing that silently fails to stick.

Two ways to close it, either acceptable: gate the Save action (or the individual controls) on StorageService.canPersist(), or keep the form live and report the dropped write instead of showing a success toast.

Note the out-of-band workaround that already exists and should stay documented either way: an operator can bake pinToolbar into the shared global "default" slot, which is the only config an anonymous principal reads.

Files: src/app/core/components/settings/display/display.component.ts (saveAllSettings), src/app/core/services/storage.service.ts (patchConfig, canPersist), and the sibling settings components that share the pattern.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions