This should do it
def access_key_gen(form):
import hashlib
print 'called in access_key_gen'
form.vars.access_key = hashlib.md5(form.vars.email).hexdigest()
auth.settings.register_onaccept=access_key_gen
OR in one line
t.auth_user.access_key.compute=lambda r:
hashlib.md5(r['email']).hexdigest()
On Mar 31, 1:01 am, Adi <[email protected]> wrote:
> Hi all,
>
> I have created a custom auth_user table.
>
> -------------------------------------------------------------------------------------------------------
> auth.settings.table_user = db.define_table('auth_user',
> Field('email', length=512,default='',
> requires=[IS_EMAIL(),IS_NOT_IN_DB(db,'auth_user.email')]),
> Field('password', 'password',
> 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('access_key', 'string', readable=False, writable=False))
>
> auth.define_tables() # creates all needed
> tables
> t=auth.settings.table_user
> t.password.requires.insert(0, CRYPT(auth.settings.hmac_key))
> ---------------------------------------------------------------------------------------------------------
>
> I would like the access_key for every user to be a system generated
> hashkey defaulted once when the user is created.
>
> I tried two methods:
>
> # Method 1
> ----------------------------------------------------------------------------
> def access_key_gen():
> if auth.user:
> import hashlib
> print 'called in access_key_gen'
> return hashlib.md5(auth.user.email).hexdigest()
>
> t.access_key.default=access_key_gen()
> -----------------------------------------------------------------------------
>
> # Method 2
> --------------------------------------------------------------------------------------------------
> if auth.user and auth.user.id and not auth.user.access_key:
> print 'inside if block for access_key'
> import hashlib
> auth.user.access_key = hashlib.md5(auth.user.email).hexdigest()
> ---------------------------------------------------------------------------------------------------
>
> Both the methods are being called correctly (verified by print
> statements) but the access_key column value remains "None" - it
> silently fails to update the value of auth_user.access_key for a given
> user. What am I doing wrong here? I know the first method works well
> for normal tables, but somehow not working for auth_user table.
--
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en.