aboutsummaryrefslogtreecommitdiff
path: root/app/models.py
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-03-21 16:41:34 +0000
committerrubenwardy <rw@rubenwardy.com>2018-03-21 16:41:34 +0000
commit5cc49f282882bbf8da7430efeb276f0b9975630b (patch)
tree2f37b023f69fd5ecdfc921086824c8f772c9d93c /app/models.py
parent32ac60256cd24ec75074cb7add6c47ae49a9e78a (diff)
downloadcheatdb-5cc49f282882bbf8da7430efeb276f0b9975630b.tar.xz
Add package release editing and approving
Diffstat (limited to 'app/models.py')
-rw-r--r--app/models.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/app/models.py b/app/models.py
index 70056d2..531737d 100644
--- a/app/models.py
+++ b/app/models.py
@@ -26,13 +26,14 @@ class UserRank(enum.Enum):
class Permission(enum.Enum):
- EDIT_PACKAGE = "EDIT_PACKAGE"
- APPROVE_CHANGES = "APPROVE_CHANGES"
- DELETE_PACKAGE = "DELETE_PACKAGE"
- CHANGE_AUTHOR = "CHANGE_AUTHOR"
- MAKE_RELEASE = "MAKE_RELEASE"
- APPROVE_RELEASE = "APPROVE_RELEASE"
- APPROVE_NEW = "APPROVE_NEW"
+ EDIT_PACKAGE = "EDIT_PACKAGE"
+ APPROVE_CHANGES = "APPROVE_CHANGES"
+ DELETE_PACKAGE = "DELETE_PACKAGE"
+ CHANGE_AUTHOR = "CHANGE_AUTHOR"
+ MAKE_RELEASE = "MAKE_RELEASE"
+ APPROVE_RELEASE = "APPROVE_RELEASE"
+ APPROVE_NEW = "APPROVE_NEW"
+ CHANGE_RELEASE_URL = "CHANGE_RELEASE_URL"
class User(db.Model, UserMixin):
@@ -150,7 +151,7 @@ class Package(db.Model):
return user.rank.atLeast(UserRank.EDITOR)
# Moderators can delete packages
- elif perm == Permission.DELETE_PACKAGE:
+ elif perm == Permission.DELETE_PACKAGE or perm == Permission.CHANGE_RELEASE_URL:
return user.rank.atLeast(UserRank.MODERATOR)
else:
@@ -165,6 +166,14 @@ class PackageRelease(db.Model):
url = db.Column(db.String(100), nullable=False)
approved = db.Column(db.Boolean, nullable=False, default=False)
+
+ def getEditURL(self):
+ return url_for("edit_release_page",
+ type=self.package.type.toName(),
+ author=self.package.author.username,
+ name=self.package.name,
+ id=self.id)
+
def __init__(self):
self.releaseDate = datetime.now()