Fix being able to see unpublished packages

This commit is contained in:
rubenwardy 2023-01-01 20:39:20 +00:00
parent 01344256a9
commit 8ef737b16c
2 changed files with 47 additions and 0 deletions

@ -116,6 +116,12 @@ def getReleases(package):
@bp.route("/packages/<author>/<name>/") @bp.route("/packages/<author>/<name>/")
@is_package_page @is_package_page
def view(package): def view(package):
if package.state != PackageState.APPROVED and not package.checkPerm(current_user, Permission.EDIT_PACKAGE):
if package.state == PackageState.WIP:
abort(404)
return render_template("packages/gone.html", package=package), 503
show_similar = not package.approved and ( show_similar = not package.approved and (
current_user in package.maintainers or current_user in package.maintainers or
package.checkPerm(current_user, Permission.APPROVE_NEW)) package.checkPerm(current_user, Permission.APPROVE_NEW))

@ -0,0 +1,41 @@
{% extends "base.html" %}
{% block title %}
{{ package.title }}
{% endblock %}
{% block headextra %}
<meta name="og:title" content="{{ package.title }}"/>
<meta name="og:description" content="{{ package.short_desc }}"/>
<meta name="description" content="{{ package.short_desc }}"/>
<meta name="og:url" content="{{ package.getURL("packages.view", absolute=True) }}"/>
{% if package.getThumbnailURL(3, True) %}
<meta name="og:image" content="{{ package.getThumbnailURL(3, True) }}"/>
{% endif %}
{% endblock %}
{% block content %}
{% if package.approved_at %}
<h1>{{ _("Package Removed") }}</h1>
<p>
{{ _("This package has been unpublished.") }}
{{ _("It may have been removed by choice of the author, or by ContentDB staff due to a problem.") }}
</p>
{% elif package.state.name == "READY_FOR_REVIEW" %}
<h1>{{ _("Package Undergoing Review") }}</h1>
<p>
{{ _("This package is currently undergoing review") }}
</p>
{% else %}
<h1>{{ _("Package Undergoing Review") }}</h1>
<p>
{{ _("This package is currently undergoing review, and changes are needed before it can be added.") }}
</p>
{% endif %}
<p>
{{ _("Please check back again later.") }}
</p>
<p>
<a href="{{ url_for('users.login') }}" class="btn btn-primary">{{ _("Login") }}</a>
</p>
{% endblock %}