diff options
author | Cédric Bonhomme <cedric@cedricbonhomme.org> | 2014-04-24 07:27:55 +0200 |
---|---|---|
committer | Cédric Bonhomme <cedric@cedricbonhomme.org> | 2014-04-24 07:27:55 +0200 |
commit | bc53a04cd576394670678528aa2fb17c48392dc6 (patch) | |
tree | d60773c2e13300caccee88df50e88ea47a5de5cb /pyaggr3g470r/decorators.py | |
parent | Update last_seen field before each request. (diff) | |
download | newspipe-bc53a04cd576394670678528aa2fb17c48392dc6.tar.gz newspipe-bc53a04cd576394670678528aa2fb17c48392dc6.tar.bz2 newspipe-bc53a04cd576394670678528aa2fb17c48392dc6.zip |
Moved all decorators in decorators.py.
Diffstat (limited to 'pyaggr3g470r/decorators.py')
-rw-r--r-- | pyaggr3g470r/decorators.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/pyaggr3g470r/decorators.py b/pyaggr3g470r/decorators.py index f6796224..503b7cf7 100644 --- a/pyaggr3g470r/decorators.py +++ b/pyaggr3g470r/decorators.py @@ -2,9 +2,25 @@ #-*- coding: utf-8 -*- from threading import Thread +from functools import wraps def async(f): def wrapper(*args, **kwargs): thr = Thread(target = f, args = args, kwargs = kwargs) thr.start() - return wrapper + return wrapper + +def feed_access_required(func): + """ + This decorator enables to check if a user has access to a feed. + The administrator of the platform is able to access to the feeds of a normal user. + """ + @wraps(func) + def decorated(*args, **kwargs): + if kwargs.get('feed_id', None) != None: + feed = Feed.query.filter(Feed.id == kwargs.get('feed_id', None)).first() + if (feed == None or feed.subscriber.id != g.user.id) and not g.user.is_admin(): + flash("This feed do not exist.", "danger") + return redirect(url_for('home')) + return func(*args, **kwargs) + return decorated |