You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by gc...@apache.org on 2022/07/08 17:45:27 UTC

[allura] branch gc/8446 created (now 6a309567c)

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

gcruz pushed a change to branch gc/8446
in repository https://gitbox.apache.org/repos/asf/allura.git


      at 6a309567c [#8446] user links inside pages link directly to profile

This branch includes the following new commits:

     new 6a309567c [#8446] user links inside pages link directly to profile

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: [#8446] user links inside pages link directly to profile

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

gcruz pushed a commit to branch gc/8446
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 6a309567cda979a4dae1a074163d11b9bcfefd78
Author: Guillermo Cruz <gu...@slashdotmedia.com>
AuthorDate: Fri Jul 8 11:45:11 2022 -0600

    [#8446] user links inside pages link directly to profile
---
 Allura/allura/lib/app_globals.py                 | 4 ++++
 Allura/allura/lib/helpers.py                     | 2 +-
 Allura/allura/templates/jinja_master/lib.html    | 3 ++-
 Allura/allura/templates/macro/members.html       | 3 ++-
 Allura/allura/templates/members.html             | 3 ++-
 Allura/allura/templates/repo/merge_requests.html | 6 +++---
 Allura/development.ini                           | 3 +++
 ForgeActivity/forgeactivity/main.py              | 1 +
 8 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/Allura/allura/lib/app_globals.py b/Allura/allura/lib/app_globals.py
index 4a958b19d..7517cb6a5 100644
--- a/Allura/allura/lib/app_globals.py
+++ b/Allura/allura/lib/app_globals.py
@@ -579,6 +579,10 @@ class Globals:
             base = request.scheme + base
         return base + resource
 
+    @property
+    def user_profile_urls_with_profile_path(self):
+        return config['user_profile_url_with_profile_path']
+
     def app_static(self, resource, app=None):
         base = config['static.url_base']
         app = app or c.app
diff --git a/Allura/allura/lib/helpers.py b/Allura/allura/lib/helpers.py
index c6ec0e973..bf7b4d04a 100644
--- a/Allura/allura/lib/helpers.py
+++ b/Allura/allura/lib/helpers.py
@@ -1291,4 +1291,4 @@ def username_project_url(user_or_username):
         user = user_or_username
         url = user.url()
 
-    return url
+    return f'{url}profile/'
diff --git a/Allura/allura/templates/jinja_master/lib.html b/Allura/allura/templates/jinja_master/lib.html
index 41689b43f..3aa3366ca 100644
--- a/Allura/allura/templates/jinja_master/lib.html
+++ b/Allura/allura/templates/jinja_master/lib.html
@@ -112,7 +112,8 @@
 {% macro user_link(user, avatar=False, size=16) -%}
     {% if user %}
         {% if not user.is_anonymous() %}
-            <a href="{{user.url()}}" class="user-mention">
+            {% set profile_path = user.url() + 'profile/' if g.user_profile_urls_with_profile_path == 'true' else user.url() %}
+            <a href="{{profile_path}}" class="user-mention">
                 {% if avatar %}
                     {{ gravatar_or_name(user, size) }}
                 {% else %}
diff --git a/Allura/allura/templates/macro/members.html b/Allura/allura/templates/macro/members.html
index 8ed27fcfb..a3e3db472 100644
--- a/Allura/allura/templates/macro/members.html
+++ b/Allura/allura/templates/macro/members.html
@@ -18,8 +18,9 @@
 -#}
 <h6>Project Members:</h6>
 	<ul class="md-users-list">
+        {% set profile_path = 'profile/' if g.user_profile_urls_with_profile_path == 'true' else '' %}
 		{% for user in users -%}
-			<li><a href="{{user.url}}">{{user.name}}</a>{{user.admin}}</li>
+			<li><a href="{{ user.url ~ profile_path}}">{{user.name}}</a>{{user.admin}}</li>
 		{%- endfor %}
 		{% if over_limit -%}
 				<li class="md-users-list-more"><a href="{{c.project.url()}}_members">All Members</a></li>
diff --git a/Allura/allura/templates/members.html b/Allura/allura/templates/members.html
index 5b4edff8d..8088eb999 100644
--- a/Allura/allura/templates/members.html
+++ b/Allura/allura/templates/members.html
@@ -18,6 +18,7 @@
 -#}
 {% set hide_left_bar = True %}
 {% set h1_text = c.project.name ~ ' ' ~ 'Project' ~ ' ' ~ 'Member List' %}
+{% set profile_path = 'profile/' if g.user_profile_urls_with_profile_path == 'true' else '' %}
 {% extends g.theme.master %}
 {% block title %}{{ h1_text }}{% endblock %}
 {% block header %}Members{% endblock %}
@@ -35,7 +36,7 @@
     {%for user in users%}
     <tr>
         <td>{{ user.display_name }}</td>
-        <td><a href="{{ user.url }}">{{ user.username }}</a></td>
+        <td><a href="{{ user.url ~ profile_path }}">{{ user.username }}</a></td>
         <td>{{user.roles}}</td>
     </tr>
     {%endfor%}
diff --git a/Allura/allura/templates/repo/merge_requests.html b/Allura/allura/templates/repo/merge_requests.html
index 8ca297ca7..8deeb118d 100644
--- a/Allura/allura/templates/repo/merge_requests.html
+++ b/Allura/allura/templates/repo/merge_requests.html
@@ -17,9 +17,9 @@
        under the License.
 -#}
 {% extends 'allura:templates/repo/repo_master.html' %}
-
+{% import 'allura:templates/jinja_master/lib.html' as lib with context %}
 {% set status = request.params.get('status' , '') %}
-
+{% set profile_path = 'profile/' if g.user_profile_urls_with_profile_path == 'true' else '' %}
 {% block title %}
   {{c.project.name}} / {{c.app.config.options.mount_label}} / Merge Requests
 {% endblock %}
@@ -61,7 +61,7 @@
         {% else %}
           <i>(deleted)</i>
         {% endif %}</td>
-        <td><a href="{{req.creator_url}}" rel="nofollow">{{req.creator_name}}</a></td>
+        <td><a href="{{req.creator_url ~ profile_path}}" rel="nofollow">{{req.creator_name}}</a></td>
         <td>{{lib.abbr_date(req.created)}}</td>
         <td>{{lib.abbr_date(req.mod_date)}}</td>
       </tr>
diff --git a/Allura/development.ini b/Allura/development.ini
index f53b9aa75..8680ee77c 100644
--- a/Allura/development.ini
+++ b/Allura/development.ini
@@ -252,6 +252,9 @@ user_prefs.maximum_claimed_emails = 20
 ; Control the order of sections on the user profile page
 user_profile_sections.order = activity, personal-data, skills, social, tools, projects
 
+# append /profile to user profile's urls
+user_profile_url_with_profile_path = true
+
 ; Control the order of sections on the personal dashboard page
 personal_dashboard_sections.order = activity, tickets, merge_requests, projects
 
diff --git a/ForgeActivity/forgeactivity/main.py b/ForgeActivity/forgeactivity/main.py
index a1155a72d..a5b227373 100644
--- a/ForgeActivity/forgeactivity/main.py
+++ b/ForgeActivity/forgeactivity/main.py
@@ -136,6 +136,7 @@ class ForgeActivityController(BaseController):
             if not use_gravatar:
                 # force current user icon (overwrites previous gravatar urls or defaults)
                 if t.actor.activity_url:
+                    t.actor.activity_url = f'{t.actor.activity_url}profile/'
                     t.actor.activity_extras.icon_url = icon_base + t.actor.activity_url + 'user_icon'
                     # ideally ?{icon_timestamp} would be appended to URL for cache-busting when CDN is used, but that
                     # value would only be available by querying and loading the user-project