hi i simply upgraded from 1.84.1 to 1.85.1 and get a ticket. i
narrowed down the issue to this:

db.py
....

auth.settings.hmac_key = 'sha512:97655ab8-04d0-4321-
b8fa-84f525fb8fe0'   # before define_tables()

db.define_table(
    auth.settings.table_user_name,
    Field('username', length=128, default='', unique=True),

    Field('password', 'password', length=512,
          readable=False, label='Password'),
    Field('registration_key', length=512,
          writable=False, readable=False, default=''),
    Field('reset_password_key', length=512,
          writable=False, readable=False, default=''),
    Field('registration_id', length=512,
          writable=False, readable=False, default=''))

custom_auth_table = db[auth.settings.table_user_name] # get the
custom_auth_table
custom_auth_table.username.requires =
IS_NOT_EMPTY(error_message=auth.messages.is_empty)

#custom_auth_table.password.requires = [IS_STRONG(), CRYPT()]

auth.settings.table_user = custom_auth_table # tell auth to use
custom_auth_tabl

auth.define_tables()                           # creates all needed
tables
.....

test.py (controller)
....
def myLogin():

    username = "peter"
    password = "pass"

    user = auth.login_bare(username, password)
    if not user:
        return "failed"
    else:
        return "ok"
...

by invoking the test controllers myLogin function i get :

Traceback (most recent call last):
  File "D:\DEV\python\web2py\stable\web2py_src\web2py\gluon
\restricted.py", line 188, in restricted
    exec ccode in environment
  File "D:/DEV/python/web2py/stable/web2py_src/web2py/applications/
error/controllers/test.py", line 23, in <module>
  File "D:\DEV\python\web2py\stable\web2py_src\web2py\gluon
\globals.py", line 96, in <lambda>
    self._caller = lambda f: f()
  File "D:/DEV/python/web2py/stable/web2py_src/web2py/applications/
error/controllers/test.py", line 15, in iphoneLogin
    user = auth.login_bare(username, password)
  File "D:\DEV\python\web2py\stable\web2py_src\web2py\gluon\tools.py",
line 1306, in login_bare
    user = self.db(table_user[userfield] == username).select().first()
UnboundLocalError: local variable 'userfield' referenced before
assignment

in:

 def login_bare(self, username, password):
......
        elif 'username' in table_user.fields:
            userfield = 'username'
        else:
            userfield = 'email'
        passfield = self.settings.password_field
        user = self.db(table_user[userfield] ==
username).select().first() <-------- local variable 'userfield'
referenced before assignment

        password = table_user[passfield].validate(password)[0]
        if user:
            if not user.registration_key and user[passfield] ==
password:
                user = Storage(table_user._filter_fields(user,
id=True))

seems to be there is no userfield 'username' anyhow?

interestingly it works with 1.84.1 as expected

for testing here the project if your interested:
http://rapidshare.com/files/420164051/web2py.app.error.w2p

Reply via email to