forked from data-for-change/anyway
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbase.py
More file actions
37 lines (26 loc) · 717 Bytes
/
base.py
File metadata and controls
37 lines (26 loc) · 717 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from flask import session, redirect
from flask import request
from models import User
from functools import wraps
def set_user(user):
session["user"] = user.id
def get_user():
if "user" in session:
return User.query.filter(User.id == session["user"]).scalar()
else:
return None
def user_optional(handler):
@wraps(handler)
def check_login(*args, **kwargs):
return handler(*args, **kwargs)
return check_login
def user_required(handler):
@wraps(handler)
def check_login(*args, **kwargs):
user = get_user()
if not user:
session["last_page_before_login"] = request.path + "?" + request.query_string
return redirect("/")
else:
return handler(*args, **kwargs)
return check_login