Hello Web2py

I am having trouble with Auth form. As described in Web2py book , i added
this :


in Model db.py:

from gluon.tools import Auth

auth = Auth(globals(),db)                      #
authentication/authorization

auth.settings.hmac_key = 'mwpk120409'   # before define_tables()


auth_table = db.define_table(
    auth.settings.table_user_name,
    Field('first_name', length=128, default=""),
    Field('last_name', length=128, default=""),
    Field('username', length=128, default="",unique=True),
    Field('email', length=128, default="", unique=True),
    Field('password', 'password', length=128,
          readable=False, label='Password'),
    Field('registration_key', length=128, default= "",
          writable=False, readable=False))

auth_table.first_name.requires = \
  IS_NOT_EMPTY(error_message=auth.messages.is_empty)
auth_table.last_name.requires = \
  IS_NOT_EMPTY(error_message=auth.messages.is_empty)
auth_table.password.requires = [IS_STRONG(), CRYPT()]
auth_table.email.requires = [
  IS_EMAIL(error_message=auth.messages.invalid_email),
  IS_NOT_IN_DB(db, auth_table.email)]
auth_table.username.requires = IS_NOT_IN_DB(db, auth_table.username)
auth.settings.table_user = auth_table


auth.settings.actions_disabled.append('register')
#auth.settings.actions_disabled.append('change_password')
auth.settings.actions_disabled.append('verify_email')
auth.settings.actions_disabled.append('retrieve_username')
auth.settings.actions_disabled.append('retrieve_password')
auth.settings.actions_disabled.append('impersonate')
auth.settings.actions_disabled.append('groups')


In Controller :

def user():

    form = auth()
    if form.accepts( request.vars, formname = 'login'):

        """
        exposes:
        http://..../[app]/default/user/login
        http://..../[app]/default/user/logout
        http://..../[app]/default/user/register
        http://..../[app]/default/user/profile
        http://..../[app]/default/user/retrieve_password
        http://..../[app]/default/user/change_password
        use @auth.requires_login()
            @auth.requires_membership('group name')
            @auth.requires_permission('read','table name',record_id)
        to decorate functions that need access control
        """
        return
    return dict( loginform = form )


In View-  layout.html (i did a custom form to fit it in status bar):

      <div class="ez-box statusbar-v2">
        <form action="" enctype="multipart/form-data" method="post">
              Username: <input id="auth_user_username" name="username"
type="text" value="" />
              Password: <input id="auth_user_password" name="password"
type="password" value="" />
            <input type="submit" value="Login" />
            <div class="hidden">
               <input name="_next" type="hidden"
value="/sExtract/default/index" />
               <input name="_formkey" type="hidden"
value="4ae3a7ab-73ab-4d2e-8032-ad525bf88e65" />
               <input name="_formname" type="hidden" value="login" />
            </div>
        </form>
      </div>


Then when i tried to Login

Traceback (most recent call last):

  File "/home/v3ss/workspace-bbb/web2py-clone/gluon/restricted.py",
line 178, in restricted

    exec ccode in environment
  File 
"/home/v3ss/workspace-bbb/web2py-clone/applications/sExtract/controllers/default.py"
<http://localhost:8080/admin/default/edit/sExtract/controllers/default.py>,
line 286, in <module>

  File "/home/v3ss/workspace-bbb/web2py-clone/gluon/globals.py", line
96, in <lambda>

    self._caller = lambda f: f()

  File 
"/home/v3ss/workspace-bbb/web2py-clone/applications/sExtract/controllers/default.py"
<http://localhost:8080/admin/default/edit/sExtract/controllers/default.py>,
line 185, in user

    form = auth()
  File "/home/v3ss/workspace-bbb/web2py-clone/gluon/tools.py", line
962, in __call__

    return self.login()
  File "/home/v3ss/workspace-bbb/web2py-clone/gluon/tools.py", line
1394, in login

    self.log_event(log % self.user)

  File "/home/v3ss/workspace-bbb/web2py-clone/gluon/tools.py", line
1154, in log_event

    self.settings.table_event.insert(description=description,
AttributeError: 'NoneType' object has no attribute 'insert'

Reply via email to