From 66df5bc9f1939a196580ff7b9278ba7f2f727611 Mon Sep 17 00:00:00 2001 From: Ryan Lerch Date: Mar 15 2016 10:26:48 +0000 Subject: [PATCH 1/2] allow owners of a repo to fork the repo Removes the check to see if an owner is trying to fork a repo, as we want to allow this now. Also changes the repos_master template so the fork button is presented to the owners as well. --- diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index b7cff50..2288385 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -1272,10 +1272,6 @@ def fork_project(session, user, repo, gitfolder, reponame = os.path.join(gitfolder, repo.path) forkreponame = '%s.git' % os.path.join(forkfolder, user, repo.name) - if repo.user.user == user: - raise pagure.exceptions.RepoExistsException( - 'You may not fork your own repo') - if os.path.exists(forkreponame): raise pagure.exceptions.RepoExistsException( 'Repo "%s/%s" already exists' % (user, repo.name)) diff --git a/pagure/templates/repo_master.html b/pagure/templates/repo_master.html index 247c2c6..00e46f9 100644 --- a/pagure/templates/repo_master.html +++ b/pagure/templates/repo_master.html @@ -12,7 +12,7 @@ {% if repo.is_fork %}{% endif %}{{ repo.fullname }} - {% if authenticated and not repo_admin and not repo.is_fork %} + {% if authenticated and not repo.is_fork %}
From 364f90b83bf82e5a3cd83fb64ab4d36154f001f4 Mon Sep 17 00:00:00 2001 From: Ryan Lerch Date: Mar 15 2016 10:26:48 +0000 Subject: [PATCH 2/2] fix tests for everyone being able to fork --- diff --git a/tests/test_pagure_flask_ui_fork.py b/tests/test_pagure_flask_ui_fork.py index 2417027..543188a 100644 --- a/tests/test_pagure_flask_ui_fork.py +++ b/tests/test_pagure_flask_ui_fork.py @@ -1319,13 +1319,6 @@ index 0000000..2a552bb '/do_fork/foo', data=data, follow_redirects=True) self.assertEqual(output.status_code, 404) - output = self.app.post( - '/do_fork/test', data=data, follow_redirects=True) - self.assertEqual(output.status_code, 200) - self.assertIn( - '\n You may not fork your ' - 'own repo', output.data) - user.username = 'foo' with tests.user_set(pagure.APP, user): output = self.app.post('/do_fork/test') diff --git a/tests/test_pagure_lib.py b/tests/test_pagure_lib.py index 4837c99..327db04 100644 --- a/tests/test_pagure_lib.py +++ b/tests/test_pagure_lib.py @@ -1135,23 +1135,6 @@ class PagureLibtests(tests.Modeltests): self.assertTrue(os.path.exists(ticketrepo)) self.assertTrue(os.path.exists(requestrepo)) - # Fail to fork - - # Cannot fail your own project - self.assertRaises( - pagure.exceptions.PagureException, - pagure.lib.fork_project, - session=self.session, - user='pingou', - repo=repo, - gitfolder=gitfolder, - forkfolder=forkfolder, - docfolder=docfolder, - ticketfolder=ticketfolder, - requestfolder=requestfolder, - ) - self.session.rollback() - # Git repo exists grepo = '%s.git' % os.path.join(forkfolder, 'foo', 'testproject') os.makedirs(grepo)