as Massimo shows here, the kind of thing this does is implement a heirarchy
of permissions - allowing one with more permission to (attempt) to operate
at a lower level (certainly a different level).
In general, this is a useful facility for an application writer to have at
their disposal to use in implementing many useful behaviors;  help desk
managers is one concept;   a hierarchy of groups (in something like a church
or community group) is another.

For testing, I can imagine creating a series of test users with various
permissions, and a test framework driving a test suite...

On unix / Linux, su and sudo implement this kind of thing, so the concept is
an old one.

You can probably think of many, many more uses.


On Fri, Apr 24, 2009 at 3:00 PM, mdipierro <[email protected]> wrote:

>
> 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