From 07a9b79396fd260b2d9aa918751823c70ba709c2 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Tue, 20 Mar 2018 00:58:44 +0000 Subject: [PATCH] Check type and author in package details --- app/models.py | 11 +++++++++++ app/views/packages.py | 7 ++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/models.py b/app/models.py index 177e4c8..c5ce4b6 100644 --- a/app/models.py +++ b/app/models.py @@ -71,6 +71,17 @@ class PackageType(enum.Enum): else: return "TXP" + @staticmethod + def fromName(name): + if name == "mod": + return PackageType.MOD + elif name == "game": + return PackageType.GAME + elif name == "texturepacks": + return PackageType.TXP + else: + return None + class Package(db.Model): id = db.Column(db.Integer, primary_key=True) diff --git a/app/views/packages.py b/app/views/packages.py index 73c9edd..8aaf324 100644 --- a/app/views/packages.py +++ b/app/views/packages.py @@ -24,7 +24,12 @@ def txp_page(): @app.route("/s///") def package_page(type, author, name): - package = Package.query.filter_by(name=name).first() + 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, + type=PackageType.fromName(type)).first() if package is None: abort(404)