def _create(self, user_name, email, domain, domain_user, email_verified=False, display_name=None, redirect_url=None): """ Create a user based on data gathered from velruse. """ model.meta.Session.begin(subtransactions=True) try: user = User.find_by_email(email) if user is None: user = model.User.create(user_name, email, locale=c.locale, display_name=display_name) if email_verified: user.set_email_verified() v = Velruse(unicode(domain), unicode(domain_user), user) model.meta.Session.add(v) model.meta.Session.commit() event.emit(event.T_USER_CREATE, user) return user, v except Exception as e: model.meta.Session.rollback() raise e