i have not run the code yet.....

but upon inspection i like that line 1619 of gluon/tools.py is redundant, 
and because it uses an OR query it breaks on GAE.

can someone confirm that:

                user = user or table_user._db(
                    (table_user.registration_id==value)|
                    (table_user[fieldname]==value)).select().first()

can be replaced with :

                user = user or table_user._db(
                    (table_user[fieldname]==value)).select().first()

in auth.get_or_create_user() without breaking anything?
On Thursday, August 30, 2012 3:59:39 AM UTC-7, rif wrote:
>
> After a succesful login from janrain running on GAE I get the following 
> error:
>
> Traceback (most recent call last):
>   File "/home/rif/Documents/webframeworks/homepage/gluon/restricted.py", 
> line 209, in restricted
>     exec ccode in environment
>   File 
> "/home/rif/Documents/webframeworks/homepage/applications/init/controllers/default.py",
>  
> line 105, in <module>
>   File "/home/rif/Documents/webframeworks/homepage/gluon/globals.py", line 
> 185, in <lambda>
>     self._caller = lambda f: f()
>   File 
> "/home/rif/Documents/webframeworks/homepage/applications/init/controllers/default.py",
>  
> line 103, in user
>     return dict(form=auth())
>   File "/home/rif/Documents/webframeworks/homepage/gluon/tools.py", line 
> 1191, in __call__
>     return getattr(self,args[0])()
>   File "/home/rif/Documents/webframeworks/homepage/gluon/tools.py", line 
> 1961, in login
>     user = self.get_or_create_user(table_user._filter_fields(cas_user))
>   File "/home/rif/Documents/webframeworks/homepage/gluon/tools.py", line 
> 1620, in get_or_create_user
>     (table_user[fieldname]==value)).select().first()
>   File "/home/rif/Documents/webframeworks/homepage/gluon/dal.py", line 
> 8682, in select
>     return adapter.select(self.query,fields,attributes)
>   File "/home/rif/Documents/webframeworks/homepage/gluon/dal.py", line 
> 4461, in select
>     (items, tablename, fields) = self.select_raw(query,fields,attributes)
>   File "/home/rif/Documents/webframeworks/homepage/gluon/dal.py", line 
> 4356, in select_raw
>     filters = self.expand(query)
>   File "/home/rif/Documents/webframeworks/homepage/gluon/dal.py", line 
> 4232, in expand
>     return expression.op(expression.first, expression.second)
>   File "/home/rif/Documents/webframeworks/homepage/gluon/dal.py", line 
> 4087, in OR
>     def OR(self,first,second): raise SyntaxError, "Not supported"
> SyntaxError: Not supported
>
>
> Does anybody experience the same problem?
>

-- 



Reply via email to