Skip to content

kcm/[core,qml]: Rework CUPS global server settings

Mike Noe requested to merge work/noee/auth-loop-server into master

With Plasma6 we fixed a number of open issues regarding nagging, repeating auth requests while configuring printers and server settings. This refactor addresses a repeating auth request within server settings when the settings window is "open" and the settings are changed elsewhere (ie. via another CUPS server admin tool). In addition it provides a timely and accurate indication to the user that something is happening after they hit the apply button.

When server settings are changed, the CUPS server does a little stop/start dance and goes unavailable and then restarts, usually in a timely fashion. However, the timing is not predictable, and since we're already monitoring the signals, let's use them to notify the user that something is happening.

NOTE: When the CUPS server stops/starts, this effectively resets any elevated privileges for the process, so any configuration change that requires elevated privileges will have to authenticate to elevate again.

In addition, refactor the UI to a Kirigami.Dialog. With the dialog, we explicitly destroy it on close and this fixes the case where a popped kcm page does not actually get destroyed, causing Connections to remain.

See commits for details

Testing:

There should no functional difference when settings the CUPS server global settings. Authentication should still work properly when "Apply" changes and there will not be another auth request when returning to the main kcm view. The view will look different because it's now a dialog. In addition, if the "Apply" takes more than a few seconds, a status banner will show.

For External Changes: Open the kcm, then open your browser to the CUPS admin page (http://localhost:631/admin), make a change to one of the admin settings and save it. You should not be prompted by the kcm for auth until you actually attempt a task (like add printer or configure printer).

image.png

Edited by Mike Noe

Merge request reports