I found the problem. I think someone broke backward compatibility. A
new field was added to auth_user after I started the project. I think
the field was added to improve the security of the reset password
process so that's a good thing. Why this broken compatibility wasn't
disclosed and explained is a mystery. I discovered it by creating a
new project with the latest code and comparing the auth_user table to
what I had.
Anyway, for anyone experiencing this issue you need to add a field to
auth_user:

  Field('reset_password_key', length=512, default='', writable=False,
readable=False)


On Dec 14, 9:02 am, DenesL <denes1...@yahoo.ca> wrote:
> As you suspect, the error is caused by the missing arguments **b, but
> it is hard to tell why without seeing your code.
>
> On Dec 13, 5:58 pm, kevski <corbett.ke...@gmail.com> wrote:
>
>
>
> > I snipped a lot of the intermediate stuff out but basically I try to
> > use the lost_password link on the login page and get the following
> > traceback. Looking at the sql statement it appears that the parameters
> > for SET are missing.
>
> > from below: Function argument list: (*a=('UPDATE auth_user SET WHERE
> > auth_user.id=806;',), **b={})
>
> > I have a custom auth_user table in that I added some fields.
>
> > Other data: I can set a new password by using change_password after
> > logging in.
>
> > Let me know what kind of additional information might help.
>
> > Pieces of the traceback information.
>
> > ***************************************************************
>
> > web2py Version 1.89.5 (2010-11-21 22:12:54)
>
> > Error traceback:
>
> > Traceback (most recent call last):
> >   File "gluon/restricted.py", line 188, in restricted
> >   File "E:/web2py/applications/psc/controllers/default.py", line 55,
> > in <module>
> >   File "gluon/globals.py", line 96, in <lambda>
> >   File "E:/web2py/applications/psc/controllers/default.py", line 34,
> > in user
> >   File "gluon/tools.py", line 1038, in __call__
> >   File "gluon/tools.py", line 1998, in request_reset_password
> >   File "gluon/sql.py", line 3416, in <lambda>
> >   File "gluon/sql.py", line 3551, in update_record
> >   File "gluon/sql.py", line 3506, in update
> >   File "gluon/sql.py", line 965, in <lambda>
> > OperationalError: near "WHERE": syntax error
>
> > Error snapshot
> > Detailed traceback description
>
> >     * Exception: <class 'sqlite3.OperationalError'>(near "WHERE":
> > syntax error)
> >     * Python 2.5.4: E:\web2py\web2py.exe
>
> > File E:\web2py\gluon\sql.py in <lambda> at line 965
> > [ code | arguments | variables ]
> > Function argument list: (*a=('UPDATE auth_user SET WHERE
> > auth_user.id=806;',), **b={})- Hide quoted text -
>
> - Show quoted text -

Reply via email to