How to disable changing page status (frontend only, allow programmatically)

It’s possible to achieve disabling the ability to change a content entry’s status via the options.changeStatus parameter in the blueprint. However, when doing this, Kirby blocks programmatic changing of a page’s status (returns a 403).

How to prevent content editors from changing an entry’s status while still allowing programmatic changing of it?

Usecase: A collection where all entries are always published, which is achieved by programmatically changing the status of new entries to listed (“published” on the frontend) when they’re created (via the page.create:after hook).

I had thought perhaps that I could simply hide the relevant portions of the UI via CSS, but there aren’t any unique classes or such to appropriately target these (at least not that I’ve been able to find).

There has been a feature request for a very long time, but unfortunately it only got very few votes:

However, since this option can be enabled/disabled for given user roles, you could only disable it for editor users, then update with an admin user?

Thanks for pointing that out!

I replied on the thread there with some thoughts.

However, since this option can be enabled/disabled for given user roles, you could only disable it for editor users, then update with an admin user?

This might actually work. It’s still less preferable because we really want to disable this for all users. But for our immediate needs it may suffice.