I don't think that will persist outside of the current request (i.e.
the user won't stay logged in). How about something like (untested):

http://paste.turbogears.org/paste/1067

On Feb 24, 5:03 pm, "Jesse James" <[EMAIL PROTECTED]> wrote:
> Can you validate this code then (assume for now that password is
> cleartext in the DB)?
>
>     @tg.expose()
>     def login(self, username, password):
>         result = 'ok'
>         user=User.get_by(user_name=username)
>         if(user):
>             if(user.password == password):
>                 identity.set_current_identity(user)
>             else:
>                 result = 'invalid login'
>         else:
>             result = "invalid login"
>         return result
>
> On Feb 22, 5:57 am, "Patrick Lewis" <[EMAIL PROTECTED]> wrote:
>
> > On Feb 21, 7:25 pm, "Jesse James" <[EMAIL PROTECTED]> wrote:
>
> > > Howdy,
> > > I am using SqlAlchemy under TG and Flash (with FlexBuilder 2) for the
> > > UI.
> > > I'm trying to figure out how to get login/logout and @require
> > > decorator to work for me.
> > > I am not walking down the garden path of using Kid and SqlObject so it
> > > is not really set up right out of the box. Rather I am attempting to
> > > leverage the auth framework in TG but with  different needs from the
> > > standard template-based app - I need much more explicit rejection of
> > > unauthorized access attempts (not redirects to a login screen). Upon
> > > login, however, it seems that it should be quite straightforward to
> > > setup theidentity, yes?
>
> > > What I need to know is the following:
>
> > > 1. how do I write my own login controller that will explicitly set the
> > >identityfor any future requests.
> > > 2. how do I logout.
>
> > In general terms, whatidentityis doing is associating a 'visit'
> > session (everyone visiting the site gets a unique visit key) with a
> > user.  This starts out in the visit module (http://tinyurl.com/
> > 376wae). Roughly, this works like:
>
> > -Identityreceives a new request, and eventually routes it to
> > identity_from_request
> > - identity_from_request tries to authenticate via the methods you
> > specified in the config (default to form,http_auth,visit). form and
> > http_auth basically check for credentials in the request, and the
> > visit check (via identity_from_visit) asks theidentityprovider to
> > return a user
> > - if all the authentication methods fail, theidentityis set to
> > anonymous
>
> > Ok, that's the authentication path.  Now, when a user doesn't have
> > appropriate permissions, (i.e. theidentity.require check fails), an
> > IdentityFailure exception is raised, which brings up the login form
> > (http://tinyurl.com/2j3ecm).
>
> > Logging out is done by removing the association between the user and
> > the visit key. This happens in SqlObjectIdentity or SqlAlchemyIdentity
> > via the logout() method. Or, in a controller, by 
> > callingidentity.current.logout()
>
> > Ok, so, where does that leave you. I'm not sure, so you may want to
> > ask more questions. Some things to think about.
>
> > If you setidentityconfig options like:
>
> > identity.failure_url="/my_failure_url"identity.source="visit"
>
> > You would get rid of the redirect to the login form. my_failure_url
> > could be a controller that raises an Unauthorized exception, or
> > perhaps shows an error page. You could then setup your own login form
> > and controller that explicitly associated the user with the visit key,
> > usingidentity.current_provider.validate_identity, and 
> > bypassidentity'sdefault form login altogether.  The caveat is that the only
> > way to authenticate will be through your new login form, but it sounds
> > like that is what you want anyways.


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

Reply via email to