diff options
author | rubenwardy <rw@rubenwardy.com> | 2018-03-21 16:41:34 +0000 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2018-03-21 16:41:34 +0000 |
commit | 5cc49f282882bbf8da7430efeb276f0b9975630b (patch) | |
tree | 2f37b023f69fd5ecdfc921086824c8f772c9d93c /app/models.py | |
parent | 32ac60256cd24ec75074cb7add6c47ae49a9e78a (diff) | |
download | cheatdb-5cc49f282882bbf8da7430efeb276f0b9975630b.tar.xz |
Add package release editing and approving
Diffstat (limited to 'app/models.py')
-rw-r--r-- | app/models.py | 25 |
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() |