I've started developing a kiosk style application (ie, user can do nothing except interact with this one application), and I'm using authorisation services to allow an administrator access to some components (like quitting, or changing preferences).
Part of making a kiosk application is removing access to the Dock. This is fairly simple using Apple's recommended method of setting the UIMode to remove the Dock.
The problem lies in the fact that this only affects the current application and switching to any other application will bring back the Dock, until switching back to the kiosk application. What's the problem, you say, in a kiosk, the user cannot switch to any other application.
Well, that's what I thought too. However, when the Authorisation Services dialogue box appears to show the password, this appears to be treated as though it's an entirely other application, because suddenly the Dock appears (and everything else that was disabled, is re-enabled). It dissappears again when the dialogue is dismissed, but while the dialogue is open, the user can use the Dock, and other items that should have been inaccessible.
Any idea how this can be prevented?
In theory, I could delete (or replace) the Dock, but that is not ideal. I've aready replaced the Finder with the kiosk app (using the defaults write Finder method), but now the user can get at the Finder because it's icon still cannot be removed from the Dock, so I'd have to actually (re)move the Finder itself, which would then make administration of the machine very difficult!