aboutsummaryrefslogtreecommitdiff
path: root/pyaggr3g470r/decorators.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyaggr3g470r/decorators.py')
-rw-r--r--pyaggr3g470r/decorators.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/pyaggr3g470r/decorators.py b/pyaggr3g470r/decorators.py
index 3e808793..a13dacac 100644
--- a/pyaggr3g470r/decorators.py
+++ b/pyaggr3g470r/decorators.py
@@ -5,8 +5,11 @@ from threading import Thread
from functools import wraps
from flask import g, redirect, url_for, flash
+from flask.ext.babel import gettext
+from flask.ext.login import login_required
from pyaggr3g470r.models import Feed
+from pyaggr3g470r.lib.exceptions import PyAggError
def async(f):
@@ -37,3 +40,23 @@ def feed_access_required(func):
else:
return func(*args, **kwargs)
return decorated
+
+
+def handle_pyagg_error(func):
+ @wraps(func)
+ def wrapper(*args, **kwargs):
+ try:
+ return func(*args, **kwargs)
+ except PyAggError, error:
+ flash(gettext(error.default_message), 'warning')
+ return redirect(url_for('home'))
+ return wrapper
+
+
+def pyagg_default_decorator(func):
+ @login_required
+ @handle_pyagg_error
+ @wraps(func)
+ def wrapper(*args, **kwargs):
+ return func(*args, **kwargs)
+ return wrapper
bgstack15