Hi folks, apologies for the cross post, I posted this on the repoze list
but didn't get any solutions, so I'll try here.
I'm using the repoze.what pylons quickstart code, and I'm having
problems with the fact that when @protect_action fails, it tries to call
the login action *for the current controller*. This is causing me pain
when my controller is a wsgi wrapper ( to a bfg app ) because I have
routes that gobble all sub paths and pass them on to the bfg app. So
instead of /login going to the route controller, it gets eaten up. I
have hacked around it by having routes rules like so:
map.connect('/admin', controller='admin', path_info='/', )
# need next rule else third admin rule will catch /admin/login
map.connect('/admin/login', controller='root', action='login')
map.connect('/admin/{path_info:.*}',controller='admin',action='default' )
but it doesn't seem so elegant. Can anyone tell me why the following
tries to call /admin/login and not the root /login, and how to change
that behaviour.
( here's the controller in question ):
# longhanded way of wrapping dram so we can use repoze.what decorators
class AdminController(BaseController):
def __init__(self, *args, **kwargs):
BaseController.__init__(self, *args, **kwargs)
self.dram = DramApp(package=ymh.model, global_config=config)
@protect_action(has_permission('administrate')
def default(self, environ):
response = self.dram(environ, self.start_response)
return response
So in the above when the protect_action fails, it tries to take me
to /admin/login, which I don't want.
let me know if this should have gone to pylons!
iain
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"pylons-discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---