aboutsummaryrefslogtreecommitdiff
path: root/app/views/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/views/utils.py')
-rw-r--r--app/views/utils.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/app/views/utils.py b/app/views/utils.py
index 345d5c1..f6e345a 100644
--- a/app/views/utils.py
+++ b/app/views/utils.py
@@ -92,6 +92,32 @@ def rank_required(rank):
return decorated_function
return decorator
+def getPackageByInfo(author, name):
+ user = User.query.filter_by(username=author).first()
+ if user is None:
+ abort(404)
+
+ package = Package.query.filter_by(name=name, author_id=user.id).first()
+ if package is None:
+ abort(404)
+
+ return package
+
+def is_package_page(f):
+ @wraps(f)
+ def decorated_function(*args, **kwargs):
+ if not ("author" in kwargs and "name" in kwargs):
+ abort(400)
+
+ package = getPackageByInfo(kwargs["author"], kwargs["name"])
+
+ del kwargs["author"]
+ del kwargs["name"]
+
+ return f(package=package, *args, **kwargs)
+
+ return decorated_function
+
def triggerNotif(owner, causer, title, url):
if owner.rank.atLeast(UserRank.NEW_MEMBER) and owner != causer:
Notification.query.filter_by(user=owner, url=url).delete()