def after_login(resp): if resp.email is None or resp.email == "": flash(gettext('Invalid login. Please try again.')) return redirect(url_for('login_view')) user = User.query.filter_by(email = resp.email).first() userdetails = UserDetails(user=user) if user is None: nickname = resp.nickname if nickname is None or nickname == "": nickname = resp.email.split('@')[0] nickname = User.make_valid_nickname(nickname) nickname = User.make_unique_nickname(nickname) user = User(nickname = nickname, email = resp.email, role = ROLE_USER) db.session.add(user) db.session.add(userdetails) db.session.commit() # make the user follow him/herself db.session.add(user.follow(user)) db.session.commit() userdetails = UserDetails.query.filter_by(user=user).first() if userdetails is None: userdetails = UserDetails(user=user) db.session.add(userdetails) db.session.commit() remember_me = False if 'remember_me' in session: remember_me = session['remember_me'] session.pop('remember_me', None) login_user(user, remember = True) return redirect(request.args.get('next') or url_for('main_flow.index'))
def validate(self): valid = True if not Form.validate(self): valid = False if self.name.data != User.make_valid_name(self.name.data): self.name.errors.append(gettext('This name has invalid characters')) valid = False if self.nickname.data != User.make_valid_nickname(self.nickname.data): self.nickname.errors.append(gettext('This nickname has invalid characters')) valid = False if User.is_email_taken(self.email.data): self.email.errors.append(gettext('This email is already in use. Please choose another one.')) valid = False if User.is_nickname_taken(self.nickname.data): self.nickname.errors.append(gettext('This nickname is already in use. Please choose another one.')) valid = False return valid