diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/flatpages/help.md | 2 | ||||
| -rw-r--r-- | app/flatpages/help/ranks_permissions.md | 26 | ||||
| -rw-r--r-- | app/models.py | 24 |
3 files changed, 41 insertions, 11 deletions
diff --git a/app/flatpages/help.md b/app/flatpages/help.md index 774aa28..7713de8 100644 --- a/app/flatpages/help.md +++ b/app/flatpages/help.md @@ -1,4 +1,4 @@ title: Help -* [Ranks and Permissions](ranks_permissions) * [Package Tags](package_tags) +* [Ranks and Permissions](ranks_permissions) diff --git a/app/flatpages/help/ranks_permissions.md b/app/flatpages/help/ranks_permissions.md index 61b70e3..39e979b 100644 --- a/app/flatpages/help/ranks_permissions.md +++ b/app/flatpages/help/ranks_permissions.md @@ -4,6 +4,7 @@ title: Ranks and Permissions * **New Members** - mostly untrusted, cannot change package meta data or publish releases without approval. * **Members** - Trusted to change the meta data of their own packages', but cannot publish releases. +* **Trusted Members** - Same as above, but can approve their own releases and packages. * **Editors** - Trusted to change the meta data of any package, and also make and publish releases. * **Moderators** - Same as above, but can manage users. * **Admins** - Full access. @@ -16,6 +17,7 @@ title: Ranks and Permissions <th>Rank</th> <th colspan=2>New Member</th> <th colspan=2>Member</th> + <th colspan=2>Trusted Member</th> <th colspan=2>Editor</th> <th colspan=2>Moderator</th> <th colspan=2>Admin</th> @@ -41,6 +43,8 @@ title: Ranks and Permissions <th></th> <th>✓</th> <!-- member --> <th></th> + <th>✓</th> <!-- trusted member --> + <th></th> <th>✓</th> <!-- editor --> <th>✓</th> <th>✓</th> <!-- moderator --> @@ -54,6 +58,8 @@ title: Ranks and Permissions <th></th> <th></th> <!-- member --> <th></th> + <th>✓</th> <!-- trusted member --> + <th></th> <th>✓</th> <!-- editor --> <th>✓</th> <th>✓</th> <!-- moderator --> @@ -67,6 +73,8 @@ title: Ranks and Permissions <th></th> <th>✓</th> <!-- member --> <th></th> + <th>✓</th> <!-- trusted member --> + <th></th> <th>✓</th> <!-- editor --> <th>✓</th> <th>✓</th> <!-- moderator --> @@ -80,6 +88,8 @@ title: Ranks and Permissions <th></th> <th>✓</th> <!-- member --> <th></th> + <th>✓</th> <!-- trusted member --> + <th></th> <th>✓</th> <!-- editor --> <th>✓</th> <th>✓</th> <!-- moderator --> @@ -93,6 +103,8 @@ title: Ranks and Permissions <th></th> <th>✓</th> <!-- member --> <th></th> + <th>✓</th> <!-- trusted member --> + <th></th> <th>✓</th> <!-- editor --> <th>✓</th> <th>✓</th> <!-- moderator --> @@ -106,6 +118,8 @@ title: Ranks and Permissions <th></th> <th>✓</th> <!-- member --> <th></th> + <th>✓</th> <!-- trusted member --> + <th></th> <th>✓</th> <!-- editor --> <th>✓</th> <th>✓</th> <!-- moderator --> @@ -119,6 +133,8 @@ title: Ranks and Permissions <th></th> <th>✓</th> <!-- member --> <th></th> + <th>✓</th> <!-- trusted member --> + <th></th> <th>✓</th> <!-- editor --> <th>✓</th> <th>✓</th> <!-- moderator --> @@ -132,6 +148,8 @@ title: Ranks and Permissions <th></th> <th>✓</th> <!-- member --> <th></th> + <th>✓</th> <!-- trusted member --> + <th></th> <th>✓</th> <!-- editor --> <th>✓</th> <th>✓</th> <!-- moderator --> @@ -145,6 +163,8 @@ title: Ranks and Permissions <th></th> <th></th> <!-- member --> <th></th> + <th>✓</th> <!-- trusted member --> + <th></th> <th>✓</th> <!-- editor --> <th>✓</th> <th>✓</th> <!-- moderator --> @@ -158,6 +178,8 @@ title: Ranks and Permissions <th></th> <th></th> <!-- member --> <th></th> + <th></th> <!-- trusted member --> + <th></th> <th></th> <!-- editor --> <th></th> <th></th> <!-- moderator --> @@ -171,6 +193,8 @@ title: Ranks and Permissions <th></th> <th>✓</th> <!-- member --> <th></th> + <th></th> <!-- trusted member --> + <th></th> <th>✓</th> <!-- editor --> <th></th> <th>✓</th> <!-- moderator --> @@ -184,6 +208,8 @@ title: Ranks and Permissions <th></th> <th></th> <!-- member --> <th></th> + <th></th> <!-- trusted member --> + <th></th> <th></th> <!-- editor --> <th></th> <th>✓<sup>3</sup></th> <!-- moderator --> diff --git a/app/models.py b/app/models.py index e79b00f..d414589 100644 --- a/app/models.py +++ b/app/models.py @@ -31,13 +31,14 @@ migrate = Migrate(app, db) class UserRank(enum.Enum): - BANNED = 0 - NOT_JOINED = 1 - NEW_MEMBER = 2 - MEMBER = 3 - EDITOR = 4 - MODERATOR = 5 - ADMIN = 6 + BANNED = 0 + NOT_JOINED = 1 + NEW_MEMBER = 2 + MEMBER = 3 + TRUSTED_MEMBER = 4 + EDITOR = 5 + MODERATOR = 6 + ADMIN = 7 def atLeast(self, min): return self.value >= min.value @@ -460,11 +461,14 @@ class Package(db.Model): else: return user.rank.atLeast(UserRank.EDITOR) - # Editors can change authors, approve new packages, and approve releases - elif perm == Permission.CHANGE_AUTHOR or perm == Permission.APPROVE_NEW \ - or perm == Permission.APPROVE_RELEASE or perm == Permission.APPROVE_SCREENSHOT: + # Editors can change authors + elif perm == Permission.CHANGE_AUTHOR: return user.rank.atLeast(UserRank.EDITOR) + elif perm == Permission.APPROVE_NEW or perm == Permission.APPROVE_RELEASE \ + or perm == Permission.APPROVE_SCREENSHOT: + return user.rank.atLeast(UserRank.TRUSTED_MEMBER if isOwner else UserRank.EDITOR) + # Moderators can delete packages elif perm == Permission.DELETE_PACKAGE or perm == Permission.CHANGE_RELEASE_URL: return user.rank.atLeast(UserRank.MODERATOR) |
