aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-03-20 00:58:44 +0000
committerrubenwardy <rw@rubenwardy.com>2018-03-20 00:58:44 +0000
commit07a9b79396fd260b2d9aa918751823c70ba709c2 (patch)
treee9eebd6881afe69ff3a0e75b86f3eab8e43fe374
parentbc88027fbe2039aa509de6c958a1ab3939909539 (diff)
downloadcheatdb-07a9b79396fd260b2d9aa918751823c70ba709c2.tar.xz
Check type and author in package details
-rw-r--r--app/models.py11
-rw-r--r--app/views/packages.py7
2 files changed, 17 insertions, 1 deletions
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("/<type>s/<author>/<name>/")
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)