fixed problem with on_define
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
### DAL Improvements
|
### DAL Improvements
|
||||||
|
|
||||||
|
- Support for DAL(lazy_tables=True) and db.define_table(on_define=lambda table:), thanks Jonathan
|
||||||
- MongoDB support in DAL (experimental)
|
- MongoDB support in DAL (experimental)
|
||||||
- geodal and spatialite, thanks Denes and Fran (experimental)
|
- geodal and spatialite, thanks Denes and Fran (experimental)
|
||||||
- db.mytable._before_insert, _after_insert, _before_update, _after_update, _before_delete. _after_delete (list of callbacks)
|
- db.mytable._before_insert, _after_insert, _before_update, _after_update, _before_delete. _after_delete (list of callbacks)
|
||||||
@@ -17,6 +18,7 @@
|
|||||||
- experimental Sybase Adapter
|
- experimental Sybase Adapter
|
||||||
- added db.table.field.avg()
|
- added db.table.field.avg()
|
||||||
- Support for Google App Engine projections
|
- Support for Google App Engine projections
|
||||||
|
- Field(... 'upload', default=path) now accepts a path to a local file as default value, if user does not upload a file. Relative path looks inside current application folder, thanks Marin
|
||||||
|
|
||||||
### Auth improvements
|
### Auth improvements
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
Version 2.00.0 (2012-08-23 09:20:22) dev
|
Version 2.00.0 (2012-08-23 10:07:57) dev
|
||||||
|
|||||||
+64
-41
@@ -1460,7 +1460,7 @@ class Auth(object):
|
|||||||
if not settings.email_case_sensitive:
|
if not settings.email_case_sensitive:
|
||||||
table.email.requires.insert(1,IS_LOWER())
|
table.email.requires.insert(1,IS_LOWER())
|
||||||
table.registration_key.default = ''
|
table.registration_key.default = ''
|
||||||
settings.table_user = db[settings.table_user_name]
|
reference_table_user = 'reference %s' % settings.table_user_name
|
||||||
if not settings.table_group_name in db.tables:
|
if not settings.table_group_name in db.tables:
|
||||||
extra_fields = settings.extra_fields.get(
|
extra_fields = settings.extra_fields.get(
|
||||||
settings.table_group_name,[])+signature_list
|
settings.table_group_name,[])+signature_list
|
||||||
@@ -1475,37 +1475,41 @@ class Auth(object):
|
|||||||
migrate=self.__get_migrate(
|
migrate=self.__get_migrate(
|
||||||
settings.table_group_name, migrate),
|
settings.table_group_name, migrate),
|
||||||
fake_migrate=fake_migrate,
|
fake_migrate=fake_migrate,
|
||||||
format = '%(role)s (%(id)s)'))
|
format = '%(role)s (%(id)s)',
|
||||||
table.role.requires = IS_NOT_IN_DB(db, '%s.role'
|
on_define = lambda table:
|
||||||
% settings.table_group_name)
|
table.role.set_attributes(
|
||||||
settings.table_group = db[settings.table_group_name]
|
requires = IS_NOT_IN_DB(
|
||||||
|
db, '%s.role'% settings.table_group_name))))
|
||||||
|
reference_table_group = 'reference %s' % settings.table_group_name
|
||||||
if not settings.table_membership_name in db.tables:
|
if not settings.table_membership_name in db.tables:
|
||||||
extra_fields = settings.extra_fields.get(
|
extra_fields = settings.extra_fields.get(
|
||||||
settings.table_membership_name,[])+signature_list
|
settings.table_membership_name,[])+signature_list
|
||||||
table = db.define_table(
|
table = db.define_table(
|
||||||
settings.table_membership_name,
|
settings.table_membership_name,
|
||||||
Field('user_id', settings.table_user,
|
Field('user_id', reference_table_user,
|
||||||
label=self.messages.label_user_id),
|
label=self.messages.label_user_id),
|
||||||
Field('group_id', settings.table_group,
|
Field('group_id', reference_table_group,
|
||||||
label=self.messages.label_group_id),
|
label=self.messages.label_group_id),
|
||||||
*extra_fields,
|
*extra_fields,
|
||||||
**dict(
|
**dict(
|
||||||
migrate=self.__get_migrate(
|
migrate=self.__get_migrate(
|
||||||
settings.table_membership_name, migrate),
|
settings.table_membership_name, migrate),
|
||||||
fake_migrate=fake_migrate))
|
fake_migrate=fake_migrate,
|
||||||
table.user_id.requires = IS_IN_DB(db, '%s.id' %
|
on_define = lambda table: (
|
||||||
settings.table_user_name,
|
table.user_id.set_attributes(
|
||||||
settings.table_user._format)
|
requires = IS_IN_DB(
|
||||||
table.group_id.requires = IS_IN_DB(db, '%s.id' %
|
db, '%s.id' % settings.table_user_name,
|
||||||
settings.table_group_name,
|
settings.table_user._format)).
|
||||||
'%(role)s (%(id)s)')
|
table.group_id.set_attributes(
|
||||||
settings.table_membership = db[settings.table_membership_name]
|
requires = IS_IN_DB(
|
||||||
|
db, '%s.id' % settings.table_group_name,
|
||||||
|
'%(role)s (%(id)s)')))))
|
||||||
if not settings.table_permission_name in db.tables:
|
if not settings.table_permission_name in db.tables:
|
||||||
extra_fields = settings.extra_fields.get(
|
extra_fields = settings.extra_fields.get(
|
||||||
settings.table_permission_name,[])+signature_list
|
settings.table_permission_name,[])+signature_list
|
||||||
table = db.define_table(
|
table = db.define_table(
|
||||||
settings.table_permission_name,
|
settings.table_permission_name,
|
||||||
Field('group_id', settings.table_group,
|
Field('group_id', reference_table_group,
|
||||||
label=self.messages.label_group_id),
|
label=self.messages.label_group_id),
|
||||||
Field('name', default='default', length=512,
|
Field('name', default='default', length=512,
|
||||||
label=self.messages.label_name),
|
label=self.messages.label_name),
|
||||||
@@ -1517,14 +1521,17 @@ class Auth(object):
|
|||||||
**dict(
|
**dict(
|
||||||
migrate=self.__get_migrate(
|
migrate=self.__get_migrate(
|
||||||
settings.table_permission_name, migrate),
|
settings.table_permission_name, migrate),
|
||||||
fake_migrate=fake_migrate))
|
fake_migrate=fake_migrate,
|
||||||
table.group_id.requires = IS_IN_DB(db, '%s.id' %
|
on_define = lambda table: (
|
||||||
settings.table_group_name,
|
table.group_id.set_attributes(
|
||||||
'%(role)s (%(id)s)')
|
requires = IS_IN_DB(
|
||||||
table.name.requires = IS_NOT_EMPTY(error_message=self.messages.is_empty)
|
db, '%s.id' % settings.table_group_name,
|
||||||
#table.table_name.requires = IS_EMPTY_OR(IS_IN_SET(self.db.tables))
|
'%(role)s (%(id)s)')),
|
||||||
table.record_id.requires = IS_INT_IN_RANGE(0, 10 ** 9)
|
table.name.set_attributes(
|
||||||
settings.table_permission = db[settings.table_permission_name]
|
requires = IS_NOT_EMPTY(
|
||||||
|
error_message=self.messages.is_empty)),
|
||||||
|
table.record_id.set_attributes(
|
||||||
|
requires = IS_INT_IN_RANGE(0, 10 ** 9)))))
|
||||||
if not settings.table_event_name in db.tables:
|
if not settings.table_event_name in db.tables:
|
||||||
table = db.define_table(
|
table = db.define_table(
|
||||||
settings.table_event_name,
|
settings.table_event_name,
|
||||||
@@ -1534,7 +1541,7 @@ class Auth(object):
|
|||||||
Field('client_ip',
|
Field('client_ip',
|
||||||
default=current.request.client,
|
default=current.request.client,
|
||||||
label=self.messages.label_client_ip),
|
label=self.messages.label_client_ip),
|
||||||
Field('user_id', settings.table_user, default=None,
|
Field('user_id', reference_table_user, default=None,
|
||||||
label=self.messages.label_user_id),
|
label=self.messages.label_user_id),
|
||||||
Field('origin', default='auth', length=512,
|
Field('origin', default='auth', length=512,
|
||||||
label=self.messages.label_origin),
|
label=self.messages.label_origin),
|
||||||
@@ -1544,19 +1551,24 @@ class Auth(object):
|
|||||||
**dict(
|
**dict(
|
||||||
migrate=self.__get_migrate(
|
migrate=self.__get_migrate(
|
||||||
settings.table_event_name, migrate),
|
settings.table_event_name, migrate),
|
||||||
fake_migrate=fake_migrate))
|
fake_migrate=fake_migrate,
|
||||||
table.user_id.requires = IS_IN_DB(db, '%s.id' %
|
on_define = lambda table: (
|
||||||
settings.table_user_name,
|
table.user_id.set_attributes(
|
||||||
settings.table_user._format)
|
requires = IS_IN_DB(
|
||||||
table.origin.requires = IS_NOT_EMPTY(error_message=self.messages.is_empty)
|
db, '%s.id' % settings.table_user_name,
|
||||||
table.description.requires = IS_NOT_EMPTY(error_message=self.messages.is_empty)
|
settings.table_user._format)),
|
||||||
settings.table_event = db[settings.table_event_name]
|
table.origin.set_attributes(
|
||||||
|
requires = IS_NOT_EMPTY(
|
||||||
|
error_message=self.messages.is_empty)),
|
||||||
|
table.description.set_attributes(
|
||||||
|
requires = IS_NOT_EMPTY(
|
||||||
|
error_message=self.messages.is_empty)))))
|
||||||
now = current.request.now
|
now = current.request.now
|
||||||
if settings.cas_domains:
|
if settings.cas_domains:
|
||||||
if not settings.table_cas_name in db.tables:
|
if not settings.table_cas_name in db.tables:
|
||||||
table = db.define_table(
|
table = db.define_table(
|
||||||
settings.table_cas_name,
|
settings.table_cas_name,
|
||||||
Field('user_id', settings.table_user, default=None,
|
Field('user_id', reference_table_user, default=None,
|
||||||
label=self.messages.label_user_id),
|
label=self.messages.label_user_id),
|
||||||
Field('created_on','datetime',default=now),
|
Field('created_on','datetime',default=now),
|
||||||
Field('service',requires=IS_URL()),
|
Field('service',requires=IS_URL()),
|
||||||
@@ -1566,15 +1578,26 @@ class Auth(object):
|
|||||||
**dict(
|
**dict(
|
||||||
migrate=self.__get_migrate(
|
migrate=self.__get_migrate(
|
||||||
settings.table_cas_name, migrate),
|
settings.table_cas_name, migrate),
|
||||||
fake_migrate=fake_migrate))
|
fake_migrate=fake_migrate,
|
||||||
table.user_id.requires = IS_IN_DB(db, '%s.id' % \
|
on_define = lambda table: (
|
||||||
settings.table_user_name,
|
table.user_id.set_attributes(
|
||||||
settings.table_user._format)
|
requires = IS_IN_DB(
|
||||||
settings.table_cas = db[settings.table_cas_name]
|
db, '%s.id' % settings.table_user_name,
|
||||||
db._lazy_tables = lazy_tables
|
settings.table_user._format)))))
|
||||||
if settings.cas_provider:
|
|
||||||
|
if not db._lazy_tables:
|
||||||
|
settings.table_user = db[settings.table_user_name]
|
||||||
|
settings.table_group = db[settings.table_group_name]
|
||||||
|
settings.table_membership = db[settings.table_membership_name]
|
||||||
|
settings.table_permission = db[settings.table_permission_name]
|
||||||
|
settings.table_event = db[settings.table_event_name]
|
||||||
|
if settings.cas_domains:
|
||||||
|
settings.table_cas = db[settings.table_cas_name]
|
||||||
|
|
||||||
|
if settings.cas_provider: ### THIS IS NOT LAZY
|
||||||
settings.actions_disabled = \
|
settings.actions_disabled = \
|
||||||
['profile','register','change_password','request_reset_password']
|
['profile','register','change_password',
|
||||||
|
'request_reset_password']
|
||||||
from gluon.contrib.login_methods.cas_auth import CasAuth
|
from gluon.contrib.login_methods.cas_auth import CasAuth
|
||||||
maps = settings.cas_maps
|
maps = settings.cas_maps
|
||||||
if not maps:
|
if not maps:
|
||||||
|
|||||||
Reference in New Issue
Block a user