aboutsummaryrefslogtreecommitdiff
path: root/app/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/models.py')
-rw-r--r--app/models.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/app/models.py b/app/models.py
index 711d9fd..e6ff6f0 100644
--- a/app/models.py
+++ b/app/models.py
@@ -84,6 +84,8 @@ class Permission(enum.Enum):
APPROVE_SCREENSHOT = "APPROVE_SCREENSHOT"
APPROVE_RELEASE = "APPROVE_RELEASE"
APPROVE_NEW = "APPROVE_NEW"
+ EDIT_TAGS = "EDIT_TAGS"
+ CREATE_TAG = "CREATE_TAG"
CHANGE_RELEASE_URL = "CHANGE_RELEASE_URL"
CHANGE_USERNAMES = "CHANGE_USERNAMES"
CHANGE_RANK = "CHANGE_RANK"
@@ -111,11 +113,22 @@ class Permission(enum.Enum):
self == Permission.APPROVE_CHANGES or \
self == Permission.APPROVE_RELEASE or \
self == Permission.APPROVE_SCREENSHOT or \
+ self == Permission.EDIT_TAGS or \
+ self == Permission.CREATE_TAG or \
self == Permission.SEE_THREAD:
return user.rank.atLeast(UserRank.EDITOR)
else:
raise Exception("Non-global permission checked globally. Use Package.checkPerm or User.checkPerm instead.")
+ @staticmethod
+ def checkPerm(user, perm):
+ if type(perm) == str:
+ perm = Permission[perm]
+ elif type(perm) != Permission:
+ raise Exception("Unknown permission given to Permission.check")
+
+ return perm.check(user)
+
def display_name_default(context):
return context.get_current_parameters()["username"]