Please open a ticket about this.

On Jul 22, 2:25 am, Heng Zeng Aun <[email protected]> wrote:
> Good day Massimo,
>
> the following are the snippets:
>
> ---- AppAuth/models/db.py ----
> db = DAL('sqlite://storage.sqlite')
> session.connect(request, response, db)
> auth = Auth(globals(), db)
> crud = Crud(globals(), db)
> auth.settings.hmac_key = 'sha512:<secret key here>'
> auth.define_tables(username=True)
> crud.settings.auth = auth
>
> ---- AppA/models/db.py ----
> db = DAL('sqlite://../../appauth/storage.sqlite') # <-- yes, point to the db
> file in AppAuth
> session.connect(request, response, db, masterapp='appauth')
> auth = Auth(globals(), db)
> auth.define_tables(migrate=False, username=True)
> auth.settings.login_url = '/appauth/default/user/login'
>
> ---- AppA/controllers/default.py ----
> @auth.requires_login()
> def index():
>     response.view='index.html'
>     return dict()
>
> @auth.requires_permission('sayhello')
> def hello():
>     response.view='saysomething.html'
>     return dict(message=T("hello"))
>
> The behavior of this in 1.96.1 (and 1.97.1) is that I will be able to login
> and view the page provided in AppAuth, but when browse to AppA or AppB, it
> will not be able to access it because auth says its not loggin. However all
> this works in 1.95.1
>
> If i go into web2py.gluon.tools.Auth and hack "current" to "current =
> Storage(globals())" like it used to be in 1.95.1, and things works again.
>
> I'm sure forcing "current" from threading.local() to something else
> definitely is not the correct way of doing this (as i dont know what is the
> intention of the "current" is using for as well : ).
>
> Awaits your input, Many Thanks Massimo.
>
> best,
> Zeng
>
> On Thu, Jul 21, 2011 at 8:44 PM, Massimo Di Pierro <
>
>
>
>
>
>
>
> [email protected]> wrote:
> > This change should not break it. Can you please show us the code that
> > breaks and we will check what is going on? It is possible that one of
> > the auth modules has not been patched correctly.
>
> > Massimo
>
> > On Jul 21, 11:02 am, zeng <[email protected]> wrote:
> > > Hey guys,
>
> > > I'm currently running version 1.95.1 and have 3 application,
> > > "AppAuth", "AppA", "AppB", AppA and AppB is using "AppAuth" to
> > > authenticate logged in user and it has been working great.
>
> > > After upgrading 1.96.1 and cross app authentication no longer works,
> > > some debuging lead to:
> > > ----- web2py.gluon.tools.Auth ----
> > > self.environment = current
> > > request = current.request
> > > session = current.session
> > > ----- web2py.gluon.tools.Auth ----
>
> > > and "current" is a threading.local() in gluon.globals.py !!!
>
> > > In the good'o 1.95.1 the session and auth object is retrieved from
> > > global() ,
>
> > > Question is, why is this changed? this seems to break the backward
> > > compatibility "feature" of web2py, and what are the recommended
> > > solutions now that global() is no longer used?
>
> > > Thanks!

Reply via email to