add logout route
This commit is contained in:
@@ -57,6 +57,15 @@ def create_session(user_id, temporary=False):
|
|||||||
'expires_at': int(time.time()) + (expires_days * 24 * 60 * 60),
|
'expires_at': int(time.time()) + (expires_days * 24 * 60 * 60),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
def revoke_session(user_id):
|
||||||
|
if not is_logged_in():
|
||||||
|
return
|
||||||
|
sess = Sessions.find({'key': session['pyrom_session_key']})
|
||||||
|
if not sess:
|
||||||
|
return
|
||||||
|
sess.delete()
|
||||||
|
session.clear()
|
||||||
|
|
||||||
def parse_username(username: str) -> Tuple[str, str]:
|
def parse_username(username: str) -> Tuple[str, str]:
|
||||||
"""first is the unmodified name/display name, second is username"""
|
"""first is the unmodified name/display name, second is username"""
|
||||||
if len(username) < 3:
|
if len(username) < 3:
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import time
|
|||||||
from ..auth import (
|
from ..auth import (
|
||||||
digest, verify, create_session,
|
digest, verify, create_session,
|
||||||
is_logged_in, parse_username, is_password_valid,
|
is_logged_in, parse_username, is_password_valid,
|
||||||
login_required
|
login_required, revoke_session, get_active_user
|
||||||
)
|
)
|
||||||
from ..models import Users, Posts, Reactions, Threads
|
from ..models import Users, Posts, Reactions, Threads
|
||||||
from ..constants import PermissionLevel
|
from ..constants import PermissionLevel
|
||||||
@@ -29,11 +29,6 @@ def redirect_if_logged_in(destination='topics.all_topics'):
|
|||||||
def log_in():
|
def log_in():
|
||||||
return render_template('users/log_in.html')
|
return render_template('users/log_in.html')
|
||||||
|
|
||||||
@bp.post('/log-out/')
|
|
||||||
@login_required
|
|
||||||
def log_out():
|
|
||||||
return 'stub'
|
|
||||||
|
|
||||||
@bp.post('/log-in/')
|
@bp.post('/log-in/')
|
||||||
@redirect_if_logged_in()
|
@redirect_if_logged_in()
|
||||||
def log_in_post():
|
def log_in_post():
|
||||||
@@ -52,6 +47,12 @@ def log_in_post():
|
|||||||
session.permanent = True
|
session.permanent = True
|
||||||
return redirect(request.form.get('return_to', default=url_for('topics.all_topics')))
|
return redirect(request.form.get('return_to', default=url_for('topics.all_topics')))
|
||||||
|
|
||||||
|
@bp.post('/log-out/')
|
||||||
|
@login_required
|
||||||
|
def log_out():
|
||||||
|
revoke_session(get_active_user().id)
|
||||||
|
return redirect(url_for('topics.all_topics'))
|
||||||
|
|
||||||
@bp.get('/sign-up/')
|
@bp.get('/sign-up/')
|
||||||
@redirect_if_logged_in()
|
@redirect_if_logged_in()
|
||||||
def sign_up():
|
def sign_up():
|
||||||
|
|||||||
Reference in New Issue
Block a user