diff --git a/app/models.py b/app/models.py index 9c17da6..545a7f1 100644 --- a/app/models.py +++ b/app/models.py @@ -78,6 +78,7 @@ class Permission(enum.Enum): EDIT_EDITREQUEST = "EDIT_EDITREQUEST" SEE_THREAD = "SEE_THREAD" CREATE_THREAD = "CREATE_THREAD" + UNAPPROVE_PACKAGE = "UNAPPROVE_PACKAGE" # Only return true if the permission is valid for *all* contexts # See Package.checkPerm for package-specific contexts @@ -449,8 +450,8 @@ class Package(db.Model): return url_for("approve_package_page", author=self.author.username, name=self.name) - def getDeleteURL(self): - return url_for("delete_package_page", + def getRemoveURL(self): + return url_for("remove_package_page", author=self.author.username, name=self.name) def getNewScreenshotURL(self): @@ -505,7 +506,8 @@ class Package(db.Model): 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: + elif perm == Permission.DELETE_PACKAGE or perm == Permission.UNAPPROVE_PACKAGE \ + or perm == Permission.CHANGE_RELEASE_URL: return user.rank.atLeast(UserRank.MODERATOR) else: diff --git a/app/templates/packages/delete.html b/app/templates/packages/remove.html similarity index 51% rename from app/templates/packages/delete.html rename to app/templates/packages/remove.html index 96f37f3..fd20637 100644 --- a/app/templates/packages/delete.html +++ b/app/templates/packages/remove.html @@ -6,13 +6,14 @@ {% block content %}
{% endblock %} diff --git a/app/templates/packages/view.html b/app/templates/packages/view.html index 71cbbaf..d97e376 100644 --- a/app/templates/packages/view.html +++ b/app/templates/packages/view.html @@ -130,8 +130,8 @@ {# {% if current_user.is_authenticated %} Suggest Changes {% endif %} #} - {% if package.checkPerm(current_user, "DELETE_PACKAGE") %} - Delete + {% if package.checkPerm(current_user, "DELETE_PACKAGE") or package.checkPerm(current_user, "UNAPPROVE_PACKAGE") %} + Remove {% endif %} diff --git a/app/views/packages/__init__.py b/app/views/packages/__init__.py index db6753b..0d96830 100644 --- a/app/views/packages/__init__.py +++ b/app/views/packages/__init__.py @@ -402,25 +402,44 @@ def approve_package_page(package): return redirect(package.getDetailsURL()) -@app.route("/packages/