diff --git a/scipost_django/scipost/context_processors.py b/scipost_django/scipost/context_processors.py
index b3a74ec0b9da78c0eac2be84f2021f2357d0c7dc..d02673b70276b3f12f900cf836a8e2322bb54090 100644
--- a/scipost_django/scipost/context_processors.py
+++ b/scipost_django/scipost/context_processors.py
@@ -32,6 +32,8 @@ def roles_processor(request):
         context["user_roles"].append("junior_ambassador")
     if "Production Officers" in group_names:
         context["user_roles"].append("production_officer")
+    if "Publication Officers" in group_names:
+        context["user_roles"].append("publication_officer")
     # Contributor-based roles
     try:
         active_fellowships = request.user.contributor.fellowships.active()
diff --git a/scipost_django/scipost/management/commands/add_groups_and_permissions.py b/scipost_django/scipost/management/commands/add_groups_and_permissions.py
index e549236a7afbff5db81e35c4c7575362c2bd0a12..18df261b7c83def6e71efad939d611775ea113ca 100644
--- a/scipost_django/scipost/management/commands/add_groups_and_permissions.py
+++ b/scipost_django/scipost/management/commands/add_groups_and_permissions.py
@@ -787,6 +787,7 @@ class Command(BaseCommand):
                 can_add_profile_emails,
                 can_manage_organizations,
                 can_publish_accepted_submission,
+                can_manage_issues,
             ]
         )
 
diff --git a/scipost_django/scipost/templates/scipost/personal_page/_hx_edadmin.html b/scipost_django/scipost/templates/scipost/personal_page/_hx_edadmin.html
index dac7113ca07340394777e5348b4c97d3f29e7d72..0ced65ea12871ae36deb5ff18f637b09a32adc47 100644
--- a/scipost_django/scipost/templates/scipost/personal_page/_hx_edadmin.html
+++ b/scipost_django/scipost/templates/scipost/personal_page/_hx_edadmin.html
@@ -35,22 +35,28 @@
       </ul>
     {% endif %}
 
-    {% if perms.scipost.can_oversee_refereeing %}
-      <h3>Editorial Admin actions</h3>
-      <ul>
+    <h3>Editorial Admin actions</h3>
+    <ul>
+      <li><a href="{% url 'submissions:pool:pool' %}">Submissions Pool</a></li>
+      {% if perms.scipost.can_manage_reports %}
         <li><a href="{% url 'submissions:reports_accepted_list' %}">Accepted Reports</a>{% if nr_reports_without_pdf %} ({{nr_reports_without_pdf}} unfinished){% endif %}</li>
-        <li><a href="{% url 'submissions:pool:pool' %}">Submissions Pool</a></li>
         <li><a href="{% url 'submissions:treated_submissions_list' %}">Fully treated Submissions</a>{% if nr_treated_submissions_without_pdf %} ({{nr_treated_submissions_without_pdf}} unfinished){% endif %}</li>
+      {% endif %}
+      {% if perms.scipost.can_publish_accepted_submission %}
         <li><a href="{% url 'journals:harvest_citedby_list' %}">Harvest citedby data</a></li>
-        <li><a href="{% url 'journals:manage_comment_metadata' %}">Manage Comment metadata</a></li>
-        <li><a href="{% url 'journals:admin_volumes_list' %}">Manage Volumes</a></li>
+        <li><a href="{% url 'journals:harvest_citedby_list' %}">Manage Volumes</a></li>
+      {% endif %}
+      {% if perms.scipost.can_manage_issues %}
         <li><a href="{% url 'journals:admin_issue_list' %}">Manage Issues</a></li>
         <li><a href="{% url 'proceedings:proceedings' %}">Manage Proceedings Issues</a></li>
+      {% endif %}
+      {% if perms.scipost.can_publish_accepted_submission %}
         <li><a href="{% url 'journals:manage_metadata' %}">Manage Publication metadata</a></li>
-        <li><a href="{% url 'journals:manage_report_metadata' %}">Manage Report metadata</a></li>
         <li><a href="{% url 'journals:manage_update_metadata' %}">Manage PublicationUpdate metadata</a></li>
-      </ul>
-    {% endif %}
+        <li><a href="{% url 'journals:manage_comment_metadata' %}">Manage Comment metadata</a></li>
+        <li><a href="{% url 'journals:manage_report_metadata' %}">Manage Report metadata</a></li>
+      {% endif %}
+    </ul>
 
   </div>
 
diff --git a/scipost_django/scipost/templates/scipost/personal_page/_hx_tablist.html b/scipost_django/scipost/templates/scipost/personal_page/_hx_tablist.html
index 0fbda50f99207af8ff1e9ee121ea887a28f34fa3..edcde8c5d3518b48beb96dfc1e07c48fb113b41d 100644
--- a/scipost_django/scipost/templates/scipost/personal_page/_hx_tablist.html
+++ b/scipost_django/scipost/templates/scipost/personal_page/_hx_tablist.html
@@ -13,7 +13,7 @@
     >Admin</a>
   {% endif %}
 
-  {% if "scipost_admin" in user_roles or "edadmin" in user_roles or "active_fellow" in user_roles or "advisory_board" in user_roles or "vetting_editor" in user_roles or "ambassador" in user_roles or "junior_ambassador" in user_roles %}
+  {% if "scipost_admin" in user_roles or "edadmin" in user_roles or "active_fellow" in user_roles or "advisory_board" in user_roles or "vetting_editor" in user_roles or "ambassador" in user_roles or "junior_ambassador" in user_roles or "publication_officer" in user_roles %}
     <a hx-get="{% url 'scipost:personal_page_hx_edadmin' %}" 
       {% if selected == 'edadmin' %}class="selected"{% endif %}
     >Editorial Actions</a>
diff --git a/scipost_django/scipost/views.py b/scipost_django/scipost/views.py
index 059c48eb8fa1e853d308e97a2bffb7d7c65557a2..6c19bf0b1434ec3ec20f5f16df1877d2f7b03dde 100644
--- a/scipost_django/scipost/views.py
+++ b/scipost_django/scipost/views.py
@@ -1184,6 +1184,7 @@ def personal_page_hx_edadmin(request):
                 "Editorial College",
                 "Vetting Editors",
                 "Junior Ambassadors",
+                "Publication Officers",
             ]
         ).exists()
         or request.user.is_superuser