Looks like the OpenIDAuth uses the reserved keyword "user" for the name of 
a field.

On Monday, December 31, 2012 7:00:14 AM UTC-7, mweissen wrote:
>
> Hi,
> I want to try OpenID. I have found the following chapter in the book (rev. 
> 4.9):
>
> ---------------------------------
> OpenID
>
> We have previously discussed integration with Janrain (which has OpenID 
> support) and that is the easiest way to use OpenID. Yet sometimes you do 
> not want to rely on a third party service and you want to access the OpenID 
> provider directly from the consumer (your app).
>
> Here is an example:
>
> from gluon.contrib.login_methods.openid_auth import OpenIDAuth
> auth.settings.login_form = OpenIDAuth(auth)
>
> OpenIDAuth requires the *python-openid* module to be installed 
> separately. Under the hood, this login method defines the following table:
>
> db.define_table('alt_logins',
>     Field('username', length=512, default=''),
>     Field('type', length =128, default='openid', readable=False),
>     Field('user', self.table_user, readable=False))
>
> which stores the openid usernames for each user. If you want to display 
> the openids for the current logged in user:
>
> {{=auth.settings.login_form.list_user_openids()}}
>
> ---------------------------------
>
>
> I created a new application and I added this line at the top of db.py
>
> from gluon.contrib.login_methods.openid_auth import OpenIDAuth
>
> This line is at the end:
>
> auth.settings.login_form = OpenIDAuth(auth)
>
> After starting the index-function I got the following error message:
> <type 'exceptions.SyntaxError'> invalid table/column name "type" is a 
> "ALL" reserved SQL keyword
> Version
>   web2py™ (2, 3, 2, datetime.datetime(2012, 12, 19, 11, 52, 16), 'dev')  
> Python Python 2.7.3: D:\Python27\python.exe  
> Traceback
>  
> 1.
> 2.
> 3.
> 4.
> 5.
> 6.
> 7.
> 8.
> 9.
> 10.
> 11.
> 12.
> 13.
> 14.
> 15.
> 16.
> 17.
> 18.
> 19.
>
> Traceback (most recent call last):
>   File "D:\dropbox\InfoSMS\web2py\gluon\restricted.py", line 212, in 
> restricted
>
>
>     exec ccode in environment
>   File "D:/dropbox/InfoSMS/web2py/applications/logins/models/db.py" 
> <http://127.0.0.1:8000/admin/default/edit/logins/models/db.py>, line 88, in 
> <module>
>
>
>     auth.settings.login_form = OpenIDAuth(auth)
>
>
>   File 
> "D:\dropbox\InfoSMS\web2py\gluon\contrib\login_methods\openid_auth.py", line 
> 103, in __init__
>
>
>     self._define_alt_login_table()
>   File 
> "D:\dropbox\InfoSMS\web2py\gluon\contrib\login_methods\openid_auth.py", line 
> 143, in _define_alt_login_table
>
>
>     Field('user', self.table_user, readable=False),
>
>
>   File "D:\dropbox\InfoSMS\web2py\gluon\dal.py", line 7186, in define_table
>
>
>     table = self.lazy_define_table(tablename,*fields,**args)
>
>
>   File "D:\dropbox\InfoSMS\web2py\gluon\dal.py", line 7203, in 
> lazy_define_table
>
>
>     table = table_class(self, tablename, *fields, **args)
>
>
>   File "D:\dropbox\InfoSMS\web2py\gluon\dal.py", line 7609, in __init__
>
>
>     db.check_reserved_keyword(field_name)
>   File "D:\dropbox\InfoSMS\web2py\gluon\dal.py", line 6930, in 
> check_reserved_keyword
>
>
>     'invalid table/column name "%s" is a "%s" reserved SQL keyword' % (name, 
> backend.upper()))
>
> SyntaxError: invalid table/column name "type" is a "ALL" reserved SQL keyword
>
>   Error snapshot [image: help] 
>
> <type 'exceptions.SyntaxError'>(invalid table/column name "type" is a 
> "ALL" reserved SQL keyword) 
> Any comments?
> Regards, Martin
>
>

-- 



Reply via email to