Fix soft deleted and unapproved packages appearing where they shouldn't

This commit is contained in:
rubenwardy 2018-05-29 17:15:53 +01:00
parent bf5080aa18
commit 7e80adad56
No known key found for this signature in database
GPG Key ID: A1E29D52FF81513C
4 changed files with 8 additions and 4 deletions

View File

@ -336,7 +336,7 @@ class Package(db.Model):
forums = db.Column(db.Integer, nullable=True)
provides = db.relationship("MetaPackage", secondary=provides, lazy="subquery",
backref=db.backref("packages", lazy=True))
backref=db.backref("packages", lazy="dynamic"))
dependencies = db.relationship("Dependency", backref="depender", lazy="dynamic", foreign_keys=[Dependency.depender_id])

View File

@ -8,5 +8,5 @@ Packages providing '{{ mpackage.name }}''
<h1>Packages providing '{{ mpackage.name }}''</h1>
{% from "macros/packagegridtile.html" import render_pkggrid %}
{{ render_pkggrid(mpackage.packages) }}
{{ render_pkggrid(mpackage.packages.filter_by(approved=True, soft_deleted=False).all()) }}
{% endblock %}

View File

@ -49,7 +49,7 @@
<h2>Packages</h2>
<div class="box-body">
<ul>
{% for p in user.packages %}
{% for p in packages %}
<li><a href="{{ p.getDetailsURL() }}">
{{ p.title }} by {{ p.author.display_name }}
</a></li>

View File

@ -49,6 +49,10 @@ def user_profile_page(username):
if not user:
abort(404)
packages = user.packages.filter_by(soft_deleted=False)
if not current_user.is_authenticated or (user != current_user and not current_user.canAccessTodoList()):
packages = packages.filter_by(approved=True)
form = None
if user.checkPerm(current_user, Permission.CHANGE_DNAME) or \
user.checkPerm(current_user, Permission.CHANGE_EMAIL) or \
@ -92,7 +96,7 @@ def user_profile_page(username):
# Process GET or invalid POST
return render_template("users/user_profile_page.html",
user=user, form=form)
user=user, form=form, packages=packages)
@app.route("/users/claim/", methods=["GET", "POST"])