def create_model(self, request, instance=None, data=None, session=None, **kw): auth_backend = request.cache.auth_backend if self.type == 1: # Create the user data.pop('password_repeat', None) user = auth_backend.create_user(request, **data) else: user = auth_backend.get_user(request, email=data['email']) if not user: raise ValidationError("Can't find user, sorry") days = request.config['ACCOUNT_ACTIVATION_DAYS'] data = { 'id': digest(user.email), 'expiry': datetime.utcnow() + timedelta(days=days), 'type': self.type, 'user_id': user.id } with self.session(request, session=session) as session: reg = super().create_model(request, instance, data, session=session, **kw) send_email_confirmation(request, reg.obj) return reg
def create_auth_key(self, request, user, expiry=None, **kw): '''Create a registration entry and return the registration id ''' if not expiry: expiry = request.cache.auth_backend.auth_key_expiry(request) odm = request.app.odm() with odm.begin() as session: reg = odm.registration(id=digest(user.username), user_id=user.id, expiry=expiry, confirmed=False) session.add(reg) return reg.id