def create_or_login(resp): session['openid'] = resp.identity_url session.permanent = True user = User.query.filter_by(openid=resp.identity_url).first() if user is not None: flash(u'You were successfully signed in.', 'success') g.user = user return redirect(oid.get_next_url()) return redirect(url_for('create_profile', next=oid.get_next_url(), name=resp.nickname, email=resp.email))
def wrapper(*args, **kwargs): if g.user.is_guest: flash(u'Please sign in to view this page.', 'info') return rt('account/login.html', next=oid.get_next_url(), page=page, create=app.debug, error=oid.fetch_error()) return target(*args, **kwargs)
def signin(t): if not g.user.is_guest: return redirect(oid.get_next_url()) if request.method == 'POST': if app.debug: openid = request.form.get('openid') else: openid = "http://steamcommunity.com/openid" if openid: return oid.try_login(openid, ask_for=['nickname','email']) n = request.url or oid.get_next_url() if n.endswith('signin') or n.endswith('signin/'): n = n.replace('signin', '') error = oid.fetch_error() if error: flash(error, "error") return rt('account/login.html', n=n, next=oid.get_next_url(), create=app.debug)
def create_profile(): if app.debug and 'openid' not in session: session['openid'] = 'test' if not g.user.is_guest or 'openid' not in session: return redirect(url_for('.index')) names = set() emails = set() for u in User.query.all(): if u.name is not None: names.add(u.name.lower()) if u.email is not None: emails.add(u.email.lower()) form = UserForm() form.name.validators[0].values = names form.email.validators[0].values = emails if form.validate_on_submit(): user = User(name=form.name.data, email=form.email.data, openid=session['openid']) db.session.add(user) db.session.commit() flash(u'Your profile was successfully created.', 'success') return redirect(oid.get_next_url()) if not len(form.errors): form.name.data = request.values.get('name') form.email.data = request.values.get('email') form.next.data = oid.get_next_url() return rt('account/create.html', form=form)