Hmmm... i never call auth.define_tables I guess because I wanted to 
customize the auth_user table.
And yet the following tables all get created:

| auth_cas                             |
| auth_cas_archive                     |
| auth_event                           |
| auth_event_archive                   |
| auth_group                           |
| auth_group_archive                   |
| auth_membership                      |
| auth_membership_archive              |
| auth_permission                      |
| auth_permission_archive              |
| auth_user                            |
| auth_user_archive  

Could that be why?

On Saturday, September 8, 2012 1:51:24 PM UTC-4, Massimo Di Pierro wrote:
>
> works for me
>
> >>> db= DAL()
> >>> from gluon.tools import Auth
> >>> auth = Auth(db)
> >>> auth.define_tables()
> >>> db._common_fields.append(auth.signature)
> >>> db.define_table('thing',
>                 Field('name'),
>                 Field('name2',
>                       writable=False,
>                       compute=lambda r: r.name+'xxx'))
> >>> auth.enable_record_versioning(db)
> >>> print db.thing(2).modified_on
> 2012-09-08 09:22:28
> >>> db.thing(2).update_record(name='test4')
> >>> print db.thing(2).modified_on
> 2012-09-08 12:49:01
>
> Massimo
>
> On Saturday, 8 September 2012 12:48:14 UTC-5, Massimo Di Pierro wrote:
>>
>> Supposed to work any update_record but let me give it a try.
>>
>> On Saturday, 8 September 2012 12:39:20 UTC-5, Joel Carrier wrote:
>>>
>>> At first I thought it was related to running on a windows machine using 
>>> the development server.
>>> Then I deployed to a linux machine using the setup-web2py-ubuntu.sh 
>>> script
>>>
>>> Yes, the version is: Version 2.0.8 (2012-09-07 03:47:51) stable
>>>
>>> db.py:
>>>
>>> # -*- coding: utf-8 -*-
>>> if 0:
>>>     from gluon.sql import *
>>>     from gluon.validators import *
>>>     from gluon import T
>>>
>>>
>>> from gluon import current
>>>
>>>
>>> db = SQLDB('mysql://'+settings.sql_user+':'+settings.sql_password+'@'+
>>> settings.db_host+'/'+settings.db_name,migrate=settings.migrate,pool_size
>>> =10)
>>>
>>>
>>> response.generic_patterns = ['*'] #if request.is_local else []
>>>
>>>
>>> current.db = db
>>> current.T = T
>>>
>>>
>>> from gluon.tools import Auth, Crud, Service, PluginManager, prettydate
>>> auth = Auth(db, hmac_key=settings.hmac_key, salt=True)
>>> crud, service, plugins = Crud(db), Service(), PluginManager()
>>>
>>>
>>> current.auth = auth
>>>
>>>
>>> auth.settings.registration_requires_verification = True
>>> auth.settings.registration_requires_approval = False
>>> auth.settings.reset_password_requires_verification = True
>>>
>>>
>>> db._common_fields.append(auth.signature)
>>>
>>>
>>> db.define_table('auth_user',
>>>     Field('id','id'),
>>>     Field('first_name', type='string',
>>>         label=T('First Name')),
>>>     Field('last_name', type='string',
>>>         label=T('Last Name')),
>>>     Field('email', type='string',
>>>         label=T('Email')),
>>>     Field('password', type='password',
>>>         readable=False,
>>>         label=T('Password')),
>>>     Field('date_of_birth', type='date',
>>>         label=T('Date of Birth')),
>>>     Field('birth_country','integer'),
>>>     Field('birth_city'),
>>>     Field('registration_key',default='',
>>>         writable=False,readable=False),
>>>     Field('reset_password_key',default='',
>>>         writable=False,readable=False),
>>>     Field('registration_id',default='',
>>>         writable=False,readable=False),
>>>     format='[%(id)s] %(first_name)s %(last_name)s',
>>> )
>>>
>>>
>>> db.auth_user.first_name.requires = IS_UPPER()
>>> db.auth_user.last_name.requires = IS_UPPER()
>>> db.auth_user.password.requires = CRYPT(key=auth.settings.hmac_key)
>>> db.auth_user.registration_id.requires = IS_NOT_IN_DB(db, db.auth_user.
>>> registration_id)
>>> db.auth_user.email.requires = (
>>>     IS_EMAIL(error_message=auth.messages.invalid_email),
>>>     IS_NOT_IN_DB(db, db.auth_user.email),
>>>     IS_UPPER()
>>>     )
>>>
>>>
>>> and in models directory i also have a z.py
>>>
>>> auth.enable_record_versioning(db)
>>>
>>> Do I have to update my entities using SQLForms only?  Or is it suppose 
>>> to work with any .update_record()?
>>>
>>> Thanks for your help!
>>>
>>>
>>> On Saturday, September 8, 2012 10:23:05 AM UTC-4, Massimo Di Pierro 
>>> wrote:
>>>>
>>>> I am trying to reproduce the problem but I cannot. Are you running 
>>>> 2.0.8?
>>>>
>>>> On Saturday, 8 September 2012 07:34:19 UTC-5, Joel Carrier wrote:
>>>>>
>>>>> I want to maintain an audit history of all my objects.
>>>>>
>>>>> So near the beginning of my model definition I have
>>>>>
>>>>> db._common_fields.append(auth.signature)
>>>>>
>>>>> and at the very end I have
>>>>>
>>>>> auth.enable_record_versioning(db)
>>>>>
>>>>> The problem I am having is that when I pull up all the records 
>>>>> representing the history of an object, the modified_by and modified_on 
>>>>> fields do not reflect the time and user that performed the change.  In 
>>>>> fact, they appear to be stuck on whoever was logged in when I last 
>>>>> restart 
>>>>> the web2py server and the time at which I restarted it.  (Maybe it's the 
>>>>> first person to perform an edit and the time they do it at since last 
>>>>> restart.)
>>>>>
>>>>> Anyway, is there something obvious I am missing here?
>>>>>
>>>>

-- 



Reply via email to