diff options
author | rubenwardy <rw@rubenwardy.com> | 2019-07-29 20:29:55 +0100 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2019-07-29 20:29:55 +0100 |
commit | e87db8b87fbfb826882ccf12bd28ed9d0e9918de (patch) | |
tree | 4211f7da187b489fdc8b90bffdfe70aa41a964a2 /app/models.py | |
parent | b36273a848e6dd1a7971283cb3134b6a1e5e39ee (diff) | |
download | cheatdb-e87db8b87fbfb826882ccf12bd28ed9d0e9918de.tar.xz |
Prevent users from changing the name of approved packages
Diffstat (limited to 'app/models.py')
-rw-r--r-- | app/models.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/app/models.py b/app/models.py index 583c92a..4b835bb 100644 --- a/app/models.py +++ b/app/models.py @@ -76,6 +76,7 @@ class Permission(enum.Enum): APPROVE_CHANGES = "APPROVE_CHANGES" DELETE_PACKAGE = "DELETE_PACKAGE" CHANGE_AUTHOR = "CHANGE_AUTHOR" + CHANGE_NAME = "CHANGE_NAME" MAKE_RELEASE = "MAKE_RELEASE" ADD_SCREENSHOTS = "ADD_SCREENSHOTS" APPROVE_SCREENSHOT = "APPROVE_SCREENSHOT" @@ -572,6 +573,10 @@ class Package(db.Model): else: return user.rank.atLeast(UserRank.EDITOR) + # Anyone can change the package name when not approved, but only editors when approved + elif perm == Permission.CHANGE_NAME: + return not self.approved or user.rank.atLeast(UserRank.EDITOR) + # Editors can change authors and approve new packages elif perm == Permission.APPROVE_NEW or perm == Permission.CHANGE_AUTHOR: return user.rank.atLeast(UserRank.EDITOR) |