Exemplo n.º 1
0
 def cleanupAssociations(self):
     try:
         return OpenIDAssociation.query.filter(
             OpenIDAssociation.lifetime < int(time())
         ).delete()
     finally:
         db_session.commit()
Exemplo n.º 2
0
 def cleanupNonces(self):
     try:
         return OpenIDUserNonce.query.filter(
             OpenIDUserNonce.timestamp <= int(time() - nonce.SKEW)
         ).delete()
     finally:
         db_session.commit()
Exemplo n.º 3
0
 def removeAssociation(self, server_url, handle):
     try:
         return OpenIDAssociation.query.filter(
             (OpenIDAssociation.server_url == server_url) &
             (OpenIDAssociation.handle == handle)
         ).delete()
     finally:
         db_session.commit()
Exemplo n.º 4
0
 def storeAssociation(self, server_url, association):
     assoc = OpenIDAssociation(
         server_url=server_url,
         handle=association.handle,
         secret=association.secret.encode('base64'),
         issued=association.issued,
         lifetime=association.lifetime,
         assoc_type=association.assoc_type
     )
     db_session.add(assoc)
     db_session.commit()
Exemplo n.º 5
0
def profile():
    name = g.user.name
    if request.method == 'POST':
        name = request.form['name'].strip()
        if not name:
            flash(u'Error: a name is required')
        else:
            g.user.name = name
            db_session.commit()
            flash(u'User profile updated')
            return redirect(url_for('.index'))
    return render_template('general/profile.html', name=name)
Exemplo n.º 6
0
def create_or_login(resp):
    session['openid'] = resp.identity_url
    user = g.user or User.query.filter_by(openid=resp.identity_url).first()
    if user is None:
        return redirect(url_for('.first_login', next=oid.get_next_url(),
                                name=resp.fullname or resp.nickname))
    if user.openid != resp.identity_url:
        user.openid = resp.identity_url
        db_session.commit()
        flash(u'OpenID identity changed')
    else:
        flash(u'Successfully signed in')
    return redirect(oid.get_next_url())
Exemplo n.º 7
0
 def useNonce(self, server_url, timestamp, salt):
     if abs(timestamp - time()) > nonce.SKEW:
         return False
     rv = OpenIDUserNonce.query.filter(
         (OpenIDUserNonce.server_url == server_url) &
         (OpenIDUserNonce.timestamp == timestamp) &
         (OpenIDUserNonce.salt == salt)
     ).first()
     if rv is not None:
         return False
     rv = OpenIDUserNonce(server_url=server_url, timestamp=timestamp,
                          salt=salt)
     db_session.add(rv)
     db_session.commit()
     return True
Exemplo n.º 8
0
def first_login():
    if g.user is not None or 'openid' not in session:
        return redirect(url_for('.login'))
    if request.method == 'POST':
        if 'cancel' in request.form:
            del session['openid']
            flash(u'Login was aborted')
            return redirect(url_for('general.login'))
        db_session.add(User(request.form['name'], session['openid']))
        db_session.commit()
        flash(u'Successfully created profile and logged in')
        return redirect(oid.get_next_url())
    return render_template('general/first_login.html',
                           next=oid.get_next_url(),
                           openid=session['openid'])