def validate_python(self, value, state): super(UniqueUserValidator, self).validate_python(value, state) if re.match("^[a-zA-Z0-9_-]*[a-zA-Z_-][a-zA-Z0-9_-]*$", value): reg = DBSession.query(app_model.User).filter_by(user_name=value).first() user = DBSession.query(app_model.User).filter_by(user_name=value).first() if reg or user: raise Invalid(_('username already in use.'), value, state) else: raise Invalid(_('Invalid username'), value, state)
def validate_python(self, value, state): super(UniqueEmailValidator, self).validate_python(value, state) if re.match("^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$", value): reg = DBSession.query(app_model.User).filter_by(email_address=value).first() user = DBSession.query(app_model.User).filter_by(email_address=value).first() if reg or user: raise Invalid(_('Email address has already been taken'), value, state) else: raise Invalid(_('Invalid email'), value, state)
def generate_code(cls, email): code_space = string.ascii_letters + string.digits def _generate_code_impl(): base = ''.join(random.sample(code_space, 8)) base += email base += str(time.time()) return hashlib.sha1(base).hexdigest() code = _generate_code_impl() while DBSession.query(cls).filter_by(code=code).first(): code = _generate_code_impl() return code
def generate_code(cls, email): code_space = string.ascii_letters + string.digits def _generate_code_impl(): base = ''.join(random.sample(code_space, 8)) base += email base += str(time.time()) return hashlib.sha1(base.encode('utf-8')).hexdigest() code = _generate_code_impl() while DBSession.query(cls).filter_by(code=code).first(): code = _generate_code_impl() return code
def get_inactive(cls, email_address, code): return DBSession.query(Registration).filter_by(activated=None)\ .filter_by(code=code)\ .filter_by(email_address=email_address).first()
def clear_expired(cls): expired = DBSession.query(cls).filter_by(activated=None)\ .filter(Registration.time<datetime.now()-timedelta(7)).delete()
def by_email(self, email): return DBSession.query(Registration).filter_by(email_address=email).first()
def get_inactive(cls, code): return DBSession.query(Registration).filter_by(activated=None)\ .filter_by(code=code).first()
def clear_expired(cls): for expired_reg in DBSession.query(cls).filter_by(activated=None)\ .filter(Registration.time<datetime.now()-timedelta(days=2)): DBSession.delete(expired_reg)
def pending_activation(self): return DBSession.query(Registration).filter(Registration.activated==None)