Looks like a solution to me.

If you could throw a very quick "Using AuthKit with TG2 recipe like
this on docs.turbogears.org/2.0/RoughDocs/ I'm sure those who would
follow in your footsteps would be very grateful.  ;)


On Wed, Apr 2, 2008 at 9:02 AM, Michael Brickenstein
<[EMAIL PROTECTED]> wrote:
>
>  Things seem to work with a modified controller:
>
>  from decorator import decorator
>  from pylons import request
>
>  from authkit.authorize import PermissionSetupError
>  from authkit.authorize import NotAuthenticatedError,
>  NotAuthorizedError
>  from authkit.authorize import authorize_request as
>  authkit_authorize_request
>
>  def authorize(permission):
>     """
>     This is a decorator which can be used to decorate a Pylons
>  controller action.
>     It takes the permission to check as the only argument and can be
>  used with
>     all types of permission objects.
>     """
>     def validate(func, self, *args, **kwargs):
>         def app(environ, start_response):
>             return func(self, *args, **kwargs)
>
>         return permission.check(app, request.environ,
>  request.environ["pylons.controller"].start_response)
>     return decorator(validate)
>
>  Is that a solution or a workaround?
>
>
>
>
>  On 2 Apr., 14:06, Michael Brickenstein <[EMAIL PROTECTED]> wrote:
>  > Hi!
>  > I use nested controllers in my TG2 project and have trouble using
>  > authkits authorize decorator:
>  >
>  >  @expose(template="orms.templates.form")
>  >  @authorize(RemoteUser())
>  >   def show_edit_page_form(self,fill_by_page_label=None):
>  >
>  > The decorator works fine in the RootController.
>  >
>  > File '/Users/michael/programming/tg2/tg/controllers.py', line 162 in
>  > _perform_call
>  >   output = controller(*remainder, **dict(params))
>  > File '<string>', line 1 in <lambda>
>  > File '/Users/michael/programming/AuthKit/authkit/authorize/
>  > pylons_adaptors.py', line 32 in validate
>  >   return permission.check(app, request.environ, self.start_response)
>  > AttributeError: 'PageController' object has no attribute
>  > 'start_response'
>  >
>  > The controllers are nested in such a way
>  > class RootController(BaseController):
>  >     page_editor=PageController()
>  >
>  > Best regards,
>  > Michael
>  >
>



-- 
Mark Ramm-Christensen
email: mark at compoundthinking dot com
blog: www.compoundthinking.com/blog

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears Trunk" 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/turbogears-trunk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to