summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2014-11-19 03:14:29 +0100
committerAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2014-11-19 03:14:29 +0100
commit2c59dcacc2163ac48e36f1fde5fa6b10f769442f (patch)
tree2962def04eb00ce79cc0b490577fb1b5d71c1963
parent4f377e9e70cce40fec9bed51b76d0650d5a750df (diff)
downloadpadlite-teams-2c59dcacc2163ac48e36f1fde5fa6b10f769442f.tar.gz
padlite-teams-2c59dcacc2163ac48e36f1fde5fa6b10f769442f.tar.bz2
padlite-teams-2c59dcacc2163ac48e36f1fde5fa6b10f769442f.zip
utils: add after_this_request
With after_this_request you can simple set cookies. Used as a decorator, it registers a function as callback to be executed just before sending the response to the client. The callback will be executed with the response object as argument.
-rw-r--r--utils.py10
-rw-r--r--views.py8
2 files changed, 17 insertions, 1 deletions
diff --git a/utils.py b/utils.py
index fbec4c9..c424850 100644
--- a/utils.py
+++ b/utils.py
@@ -1,5 +1,5 @@
from functools import wraps
-from flask import request, render_template
+from flask import g, request, render_template
from wtforms import Field, ValidationError
from widgets import Static
@@ -21,6 +21,14 @@ def templated(template=None):
return decorated_function
return decorator
+
+def after_this_request(f):
+ if not hasattr(g, 'after_request_callbacks'):
+ g.after_request_callbacks = []
+ g.after_request_callbacks.append(f)
+ return f
+
+
class Unique(object):
""" validator that checks field uniqueness """
def __init__(self, model, field, message=None):
diff --git a/views.py b/views.py
index 51b17ef..eed49df 100644
--- a/views.py
+++ b/views.py
@@ -13,6 +13,14 @@ def get_group_or_404(*query):
Member.user == g.user, *query)
return group
+
+@app.after_request
+def call_after_request_callbacks(response):
+ for callback in getattr(g, 'after_request_callbacks', ()):
+ callback(response)
+ return response
+
+
@app.route('/', methods=['GET', 'POST'])
@templated('index.html')
@auth.login_required