From 9d33ff85ea1713a19e219b775c1bd1725d3cc908 Mon Sep 17 00:00:00 2001 From: Massimo Di Pierro Date: Fri, 6 Apr 2012 09:01:35 -0500 Subject: [PATCH] fixed bug in welcome and added more examples --- VERSION | 2 +- applications/welcome/models/db.py | 4 +++- gluon/dal.py | 1 + gluon/tools.py | 18 ++++++++++++------ 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/VERSION b/VERSION index fdd98de6..fcf36cfd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 1.99.7 (2012-04-05 22:06:40) dev +Version 1.99.7 (2012-04-06 09:01:07) dev diff --git a/applications/welcome/models/db.py b/applications/welcome/models/db.py index 533ea8e6..0fc998d0 100644 --- a/applications/welcome/models/db.py +++ b/applications/welcome/models/db.py @@ -44,7 +44,7 @@ auth = Auth(db, hmac_key=Auth.get_or_create_key()) crud, service, plugins = Crud(db), Service(), PluginManager() ## create all tables needed by auth if not custom tables -auth.define_tables() +auth.define_tables(username=False, signature=False) ## configure email mail=auth.settings.mailer @@ -79,3 +79,5 @@ use_janrain(auth,filename='private/janrain.key') ## >>> for row in rows: print row.id, row.myfield ######################################################################### +## after defining tables, uncomment below to enable auditing +# auth.enable_record_versioning(db) diff --git a/gluon/dal.py b/gluon/dal.py index 609066b0..3f485f26 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -6838,6 +6838,7 @@ class Table(dict): :raises SyntaxError: when a supplied field is of incorrect type. """ + self._actual = False # set to True by define_table() self._tablename = tablename self._sequence_name = args.get('sequence_name',None) or \ diff --git a/gluon/tools.py b/gluon/tools.py index 2f11056a..ee22514b 100644 --- a/gluon/tools.py +++ b/gluon/tools.py @@ -1314,12 +1314,18 @@ class Auth(object): db = self.db settings = self.settings - if signature==True: signature = self.signature - elif signature==None: signature = [] + if signature==True: + signature_list = [self.signature] + elif not signature: + signature_list = [] + elif isinstance(signature,self.db.Table): + signature_list = [signature] + else: + signature_list = signature if not settings.table_user_name in db.tables: passfield = settings.password_field extra_fields = settings.extra_fields.get( - settings.table_user_name,[])+[signature] + settings.table_user_name,[])+signature_list if username or settings.cas_provider: table = db.define_table( settings.table_user_name, @@ -1395,7 +1401,7 @@ class Auth(object): settings.table_user = db[settings.table_user_name] if not settings.table_group_name in db.tables: extra_fields = settings.extra_fields.get( - settings.table_group_name,[])+[signature] + settings.table_group_name,[])+signature_list table = db.define_table( settings.table_group_name, Field('role', length=512, default='', @@ -1413,7 +1419,7 @@ class Auth(object): settings.table_group = db[settings.table_group_name] if not settings.table_membership_name in db.tables: extra_fields = settings.extra_fields.get( - settings.table_membership_name,[])+[signature] + settings.table_membership_name,[])+signature_list table = db.define_table( settings.table_membership_name, Field('user_id', settings.table_user, @@ -1434,7 +1440,7 @@ class Auth(object): settings.table_membership = db[settings.table_membership_name] if not settings.table_permission_name in db.tables: extra_fields = settings.extra_fields.get( - settings.table_permission_name,[])+[signature] + settings.table_permission_name,[])+signature_list table = db.define_table( settings.table_permission_name, Field('group_id', settings.table_group,