You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by ke...@apache.org on 2022/09/09 13:29:11 UTC

[allura] branch kt/8462 created (now d678f5b87)

This is an automated email from the ASF dual-hosted git repository.

kentontaylor pushed a change to branch kt/8462
in repository https://gitbox.apache.org/repos/asf/allura.git


      at d678f5b87 [#8462] Redirect any missing tools as 301 instead of 404

This branch includes the following new commits:

     new d678f5b87 [#8462] Redirect any missing tools as 301 instead of 404

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[allura] 01/01: [#8462] Redirect any missing tools as 301 instead of 404

Posted by ke...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kentontaylor pushed a commit to branch kt/8462
in repository https://gitbox.apache.org/repos/asf/allura.git

commit d678f5b872c1b652fe931a5959bae8856332a3d7
Author: Kenton Taylor <kt...@slashdotmedia.com>
AuthorDate: Fri Sep 9 13:21:04 2022 +0000

    [#8462] Redirect any missing tools as 301 instead of 404
---
 Allura/allura/controllers/project.py                |  9 +++++----
 Allura/allura/tests/functional/test_neighborhood.py | 10 +++++-----
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/Allura/allura/controllers/project.py b/Allura/allura/controllers/project.py
index 153bd347b..6b195ebd3 100644
--- a/Allura/allura/controllers/project.py
+++ b/Allura/allura/controllers/project.py
@@ -364,7 +364,9 @@ class ProjectController(FeedController):
             c.project = subproject
             c.app = None
             return ProjectController(), remainder
-        raise exc.HTTPNotFound(name)
+
+        # if a tool doesn't exist, redirect to the first valid tool instead of 404
+        self.index()
 
     @expose('jinja:allura:templates/members.html')
     @with_trailing_slash
@@ -399,11 +401,10 @@ class ProjectController(FeedController):
         if mount is not None:
             if hasattr(app, 'default_redirect'):
                 app.default_redirect()
-            # 301 redirect for user profiles only
-            args = dict(redirect_with=exc.HTTPMovedPermanently) if isinstance(app, UserProfileApp) else dict()
+            args = dict(redirect_with=exc.HTTPMovedPermanently)
             redirect(app.url() if callable(app.url) else app.url, **args)  # Application has property; Subproject has method
         else:
-            redirect(c.project.app_configs[0].url())
+            redirect(c.project.app_configs[0].url(), redirect_with=exc.HTTPMovedPermanently)
 
     def get_feed(self, project, app, user):
         """Return a :class:`allura.controllers.feed.FeedArgs` object describing
diff --git a/Allura/allura/tests/functional/test_neighborhood.py b/Allura/allura/tests/functional/test_neighborhood.py
index a60820621..162377da8 100644
--- a/Allura/allura/tests/functional/test_neighborhood.py
+++ b/Allura/allura/tests/functional/test_neighborhood.py
@@ -861,12 +861,12 @@ class TestNeighborhood(TestController):
     def test_neighborhood_project(self):
         self.app.get('/adobe/adobe-1/admin/', status=200)
         self.app.get('/p/test/sub1/wiki/')
-        self.app.get('/p/test/sub1/', status=302)
-        self.app.get('/p/test/no-such-app/', status=404)
+        self.app.get('/p/test/sub1/', status=301)
+        self.app.get('/p/test/no-such-app/', status=301)
 
     def test_neighborhood_namespace(self):
         # p/test exists, so try creating adobe/test
-        self.app.get('/adobe/test/wiki/', status=404)
+        self.app.get('/adobe/test/wiki/', status=301)
         r = self.app.post('/adobe/register',
                           params=dict(
                               project_unixname='test', project_name='Test again',
@@ -984,7 +984,7 @@ class TestPhoneVerificationOnProjectRegistration(TestController):
 
     def test_verify_phone_no_params(self):
         with h.push_config(config, **{'project.verify_phone': 'true'}):
-            self.app.get('/p/verify_phone', status=404)
+            self.app.get('/p/verify_phone', status=301)
 
     def test_verify_phone_error(self):
         with h.push_config(config, **{'project.verify_phone': 'true'}):
@@ -1039,7 +1039,7 @@ class TestPhoneVerificationOnProjectRegistration(TestController):
 
     def test_check_phone_verification_no_params(self):
         with h.push_config(config, **{'project.verify_phone': 'true'}):
-            self.app.get('/p/check_phone_verification', status=404)
+            self.app.get('/p/check_phone_verification', status=301)
 
     @patch.object(g, 'phone_service', autospec=True)
     def test_check_phone_verification_error(self, phone_service):