From 93a74b7681bac8cfe5ea5092943bf76af207a3d0 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Fri, 29 Mar 2019 20:47:48 +0000 Subject: [PATCH] Fix release auto-approval --- app/models.py | 9 +++++++++ app/tasks/importtasks.py | 2 ++ app/views/packages/releases.py | 3 +-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/models.py b/app/models.py index 1dfa017..ed9a21f 100644 --- a/app/models.py +++ b/app/models.py @@ -696,6 +696,15 @@ class PackageRelease(db.Model): def __init__(self): self.releaseDate = datetime.datetime.now() + def approve(self, user): + if not self.package.checkPerm(user, Permission.APPROVE_RELEASE): + return False + + assert(self.task_id is None and self.url is not None and self.url != "") + + self.approved = True + return True + class PackageReview(db.Model): id = db.Column(db.Integer, primary_key=True) diff --git a/app/tasks/importtasks.py b/app/tasks/importtasks.py index dc46f46..a9277c5 100644 --- a/app/tasks/importtasks.py +++ b/app/tasks/importtasks.py @@ -348,6 +348,7 @@ def makeVCSReleaseFromGithub(id, branch, release, url): release.url = urlmaker.getCommitDownload(commits[0]["sha"]) release.task_id = None release.commit_hash = commits[0]["sha"] + release.approve(release.package.author) print(release.url) db.session.commit() @@ -379,6 +380,7 @@ def makeVCSRelease(id, branch): release.url = "/uploads/" + filename release.task_id = None release.commit_hash = repo.head.object.hexsha + release.approve(release.package.author) print(release.url) db.session.commit() diff --git a/app/views/packages/releases.py b/app/views/packages/releases.py index 45935e3..af17c93 100644 --- a/app/views/packages/releases.py +++ b/app/views/packages/releases.py @@ -85,7 +85,6 @@ def create_release_page(package): rel.task_id = uuid() rel.min_rel = form["min_rel"].data.getActual() rel.max_rel = form["max_rel"].data.getActual() - rel.approved = package.checkPerm(current_user, Permission.APPROVE_RELEASE) db.session.add(rel) db.session.commit() @@ -105,7 +104,7 @@ def create_release_page(package): rel.url = uploadedPath rel.min_rel = form["min_rel"].data.getActual() rel.max_rel = form["max_rel"].data.getActual() - rel.approved = package.checkPerm(current_user, Permission.APPROVE_RELEASE) + rel.approve(current_user) db.session.add(rel) db.session.commit()