I am doing this in trunk and actually I am allowing A to impersonate B
(if A has permission) which can impersonates C (if B has permission)
etc etc recursively. Needs a little bit more work and testing.

Massimo

On Apr 24, 9:19 am, Yarko Tymciurak <[email protected]> wrote:
> management function for an application.
> Imagine someone asking for help to check some information on their form, and
> you have dozens of even managers to help people...
>
> Admin view of tables is not so safe, or so useful (how can someone at a desk
> help if they do not see what the end user sees, or even more - see a balance
> due when it is calculated from several tables).
>
> For this, an "impersonate" is useful - allows a manager to say things like
> "let's look at your balance"  or "let me have your receipt for you when you
> come to the registration desk."  ....
>
> On Fri, Apr 24, 2009 at 6:00 AM, Francisco Gama 
> <[email protected]>wrote:
>
>
>
> > it's nice to have more power to do the things users want, go for it
> > but please mind me asking...
> > why would anyone want to impersonate a different user while logged in?
> > Isn't that what a good authentication system isn't trying to avoid as
> > a possibility?
>
> > Thank you
>
> > On Apr 24, 5:27 am, mdipierro <[email protected]> wrote:
> > > will do that...
>
> > > On 23 Apr, 18:32, TheDude <[email protected]> wrote:
>
> > > > Yes we should :) Also, another class/key that checks of the person is
> > > > impersonating or not. :D
>
> > > > @auth.is_impersonating() returns boolean
>
> > > > On Apr 23, 3:07 pm, mdipierro <[email protected]> wrote:
>
> > > > > If you are using Auth you may want to be able to impersonate a
> > > > > different user without logout and without resetting all your session
> > > > > variables.
>
> > > > > This is how you can do it
>
> > > > > #optonal: @auth.requires_permission
> > > > > ('impersonate',auth.table_user,request.args[0] if request.args else
> > 0)
> > > > > def impersonate():
> > > > >     """ usagehttp://..../impersonate/[id] """
> > > > >     auth.original_user = auth.user
> > > > >     auth.user = auth.table_user._filter_fields(auth.table_user
> > > > > [request.args[0]],True)
> > > > >     return dict()
>
> > > > > def un_impersonate():
> > > > >     if auth.original_user:
> > > > >         auth.user = auth.original_user
> > > > >         auth.original_user = None
> > > > >     return dict()
>
> > > > > You can already do this. Should we make it easier and make them
> > > > > methods of the Auth class?
>
> > > > > Massimo
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" 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/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to