import crypt
from PLC.Faults import *
-from PLC.Debug import log
from PLC.Parameter import Parameter, Mixed
from PLC.Filter import Filter
from PLC.Table import Row, Table
Validate email address. Stolen from Mailman.
"""
email = email.lower()
- invalid_email = PLCInvalidArgument("Invalid e-mail address")
+ invalid_email = PLCInvalidArgument("Invalid e-mail address %s"%email)
if not email:
raise invalid_email
# Mark as deleted
self['deleted'] = True
+
+ # delete will fail if timestamp fields aren't validated, so lets remove them
+ for field in ['verification_expires', 'date_created', 'last_updated']:
+ if field in self:
+ self.pop(field)
+
# don't validate, so duplicates can be consistently removed
self.sync(commit, validate=False)
person_filter = Filter(Person.fields, {'person_id': ints, 'email': strs})
sql += " AND (%s) %s" % person_filter.sql(api, "OR")
elif isinstance(person_filter, dict):
- person_filter = Filter(Person.fields, person_filter)
+ allowed_fields=dict(Person.fields.items()+Person.tags.items())
+ person_filter = Filter(allowed_fields, person_filter)
sql += " AND (%s) %s" % person_filter.sql(api, "AND")
elif isinstance (person_filter, StringTypes):
person_filter = Filter(Person.fields, {'email':person_filter})