From f629e873b6bd0c2793ecbc0cf05f89e654ed5ebb Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Aug 21 2017 19:52:05 +0000 Subject: [PATCH 1/2] Consolidate around pagure.lib.git.generate_gitolite_acls This centralize where and how the task is triggered. Signed-off-by: Pierre-Yves Chibon --- diff --git a/pagure/api/project.py b/pagure/api/project.py index e2fb37e..81d1f7c 100644 --- a/pagure/api/project.py +++ b/pagure/api/project.py @@ -1115,10 +1115,8 @@ def api_generate_acls(repo, username=None, namespace=None): wait = json.get('wait', False) try: - taskid = pagure.lib.tasks.generate_gitolite_acls.delay( - namespace=namespace, - name=repo, - user=username + task = pagure.lib.git.generate_gitolite_acls( + project=project, ).id if wait: diff --git a/pagure/lib/git.py b/pagure/lib/git.py index 3619fe1..13f3e92 100644 --- a/pagure/lib/git.py +++ b/pagure/lib/git.py @@ -102,14 +102,15 @@ def generate_gitolite_acls(project=None, group=None): """ if project != -1: - tasks.generate_gitolite_acls.delay( + task = tasks.generate_gitolite_acls.delay( namespace=project.namespace if project else None, name=project.name if project else None, user=project.user.user if project and project.is_fork else None, group=group ) else: - tasks.generate_gitolite_acls.delay(name=-1, group=group) + task = tasks.generate_gitolite_acls.delay(name=-1, group=group) + return task def update_git(obj, repo, repofolder): From fd97af630d67050f55a6f9d5dedc05d6c57561d7 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Aug 21 2017 19:52:43 +0000 Subject: [PATCH 2/2] Regenerate the gitolite ACL when changing the main admin of a project Signed-off-by: Pierre-Yves Chibon --- diff --git a/pagure/api/project.py b/pagure/api/project.py index 81d1f7c..6a53383 100644 --- a/pagure/api/project.py +++ b/pagure/api/project.py @@ -945,6 +945,8 @@ def api_modify_project(repo, namespace=None): raise pagure.exceptions.APIError( 400, error_code=APIERROR.EDBERROR) + pagure.lib.git.generate_gitolite_acls(project=project) + return flask.jsonify(project.to_json(public=False, api=True))