summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2014-12-02 02:25:06 +0200
committerLV-426 <lv-426@taproot.org.il>2014-12-02 02:34:35 +0200
commitd8af6c4be6120fab236f614fb93cb632fae174b5 (patch)
tree17bd7532cf4e6fa2712715721acdc59429267916
parent162e1e04660fc0e80635bbd9ad56ece564531a94 (diff)
REST mapping: apply login_decorator() to all but /login paths
-rw-r--r--src-py/rhizi_server.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/src-py/rhizi_server.py b/src-py/rhizi_server.py
index bda762a3..2edce5dd 100644
--- a/src-py/rhizi_server.py
+++ b/src-py/rhizi_server.py
@@ -72,6 +72,21 @@ def init_rest_api(flask_webapp):
"""
map REST API calls
"""
+
+ def rest_entry(path, f, flask_args={}):
+ return (path, f, flask_args)
+
+ def login_decorator(f):
+ """
+ check user is logged in before executing REST api call
+ """
+ def wrapped_function(*args, **kw):
+ if not 'username' in session:
+ return redirect('/login')
+ return f(*args, **kw)
+
+ return wrapped_function
+
rest_entry_set = [
rest_entry('/add/node-set' , rhizi_api.add_node_set),
rest_entry('/graph/clone', rhizi_api.rz_clone),
@@ -94,6 +109,9 @@ def init_rest_api(flask_webapp):
flask_webapp.f = route_decorator(f)
if '/login' != rest_path:
+ # currently require login on all but /login paths
+ flask_webapp.f = login_decorator(f)
+
if __name__ == "__main__":