in reply to How to implement user levels in web apps?
I use a similar approach to checking the user level. I save it in the user session for future checks, but I do check it from the cgiapp_prerun() method, wich gives me the chance to re-direct the user to the front page, where they are given the options available for they level (or to login in case they are not logged in already).
Also, there is a recent thread in the mailing list where Cees Hek does a RFC for a plugin module. You can watch it here. It's on the planning stage and will have to go first with authentication and then to authorization, so it may take some time to finish, but it looks like a very nice addition to the CGI::Application plugin line, as it will have a clean interface to follow (from the doc in the refered thread in the m/l).
You may want to subscribe to the mailing list to follow up the development of those new plugins.