diff --git a/src/backoffice/locale/de/LC_MESSAGES/django.po b/src/backoffice/locale/de/LC_MESSAGES/django.po
index 8f393e510154b53d2ef8f3da70945d9ced02f105..01b290213c7b5f87cbb10d5411d17e320a4545fe 100644
--- a/src/backoffice/locale/de/LC_MESSAGES/django.po
+++ b/src/backoffice/locale/de/LC_MESSAGES/django.po
@@ -960,6 +960,12 @@ msgstr ""
 msgid "Assembly__is_remote"
 msgstr ""
 
+msgid "moderation__public_link"
+msgstr "öffentliche Ansicht"
+
+msgid "moderation__notpublic"
+msgstr "nicht veröffentlicht"
+
 msgid "moderation__assembly__cannotunhide"
 msgstr "Eine versteckte Assembly muss vom Assembly-Team wieder in den passenden Status zurückversetzt werden (multiple Optionen)."
 
@@ -1073,6 +1079,14 @@ msgstr "Projekt Banner"
 msgid "PlatformUser__type"
 msgstr "Typ"
 
+msgid "username"
+msgstr "Benutzername"
+
+# use translation from core
+msgid "PlatformUser__display_name"
+msgstr ""
+
+# use translation from core/Django
 msgid "date joined"
 msgstr ""
 
@@ -1086,15 +1100,20 @@ msgstr ""
 msgid "BulletinBoardEntrys"
 msgstr "Boardeinträge"
 
+# use translation from core
+msgid "EventParticipant__is_accepted"
+msgstr ""
+
+# use translation from core
+msgid "EventParticipant__is_public"
+msgstr ""
+
 msgid "not active"
 msgstr "nicht aktiv"
 
 msgid "PlatformUser__registration"
 msgstr "Registrierung"
 
-msgid "username"
-msgstr "Benutzername"
-
 msgid "StaticPage__title"
 msgstr "Überschrift"
 
diff --git a/src/backoffice/locale/en/LC_MESSAGES/django.po b/src/backoffice/locale/en/LC_MESSAGES/django.po
index 964da351cdfc5905c33b3e1cd0e7dd86fca4b004..5a8ded02d2136cd57c6416572e2522bd22c5ff24 100644
--- a/src/backoffice/locale/en/LC_MESSAGES/django.po
+++ b/src/backoffice/locale/en/LC_MESSAGES/django.po
@@ -963,6 +963,12 @@ msgstr ""
 msgid "Assembly__is_remote"
 msgstr ""
 
+msgid "moderation__public_link"
+msgstr "public link"
+
+msgid "moderation__notpublic"
+msgstr "not public"
+
 msgid "moderation__assembly__cannotunhide"
 msgstr "A hidden assembly can only be reversed by the assembly team as there are multiple valid states/types."
 
@@ -1077,6 +1083,13 @@ msgstr "project banner"
 msgid "PlatformUser__type"
 msgstr ""
 
+msgid "username"
+msgstr ""
+
+# use translation from core
+msgid "PlatformUser__display_name"
+msgstr ""
+
 # use translation from core
 msgid "date joined"
 msgstr ""
@@ -1091,15 +1104,20 @@ msgstr ""
 msgid "BulletinBoardEntrys"
 msgstr "board entries"
 
+# use translation from core
+msgid "EventParticipant__is_accepted"
+msgstr ""
+
+# use translation from core
+msgid "EventParticipant__is_public"
+msgstr ""
+
 msgid "not active"
 msgstr ""
 
 msgid "PlatformUser__registration"
 msgstr "registration"
 
-msgid "username"
-msgstr ""
-
 # use translation from core
 msgid "StaticPage__title"
 msgstr ""
diff --git a/src/backoffice/templates/backoffice/moderation_assembly-detail.html b/src/backoffice/templates/backoffice/moderation_assembly-detail.html
index 750c917236c2c54a47ce2d1f9d5bbee2d79b2d70..1b27538235c4cebd4f25e7b79dd7d2efe2b43e7f 100644
--- a/src/backoffice/templates/backoffice/moderation_assembly-detail.html
+++ b/src/backoffice/templates/backoffice/moderation_assembly-detail.html
@@ -2,6 +2,7 @@
 {% load humanize %}
 {% load i18n %}
 {% load static %}
+{% load hub_absolute %}
 
 {% block content %}
 
@@ -66,6 +67,11 @@
 
     </div>
     <div class="col-md-3">
+      <a class="d-block btn btn-outline-{% if event.is_public %}success{% else %}warning{% endif %} mb-3" href="{% hub_absolute 'plainui:assembly' assembly_slug=assembly.slug %}">
+        {% trans "moderation__public_link" %}
+        {% if not assembly.is_public %}<br><small class="text-muted fst-italic">{% trans "moderation__notpublic" %}</small>{% endif %}
+      </a>
+
       <div class="card border-primary-subtle">
         <div class="card-header bg-primary-subtle text-bg-primary">{% trans "nav_moderation" %}</div>
         <div class="card-body" id="moderation">
diff --git a/src/backoffice/templates/backoffice/moderation_event-detail.html b/src/backoffice/templates/backoffice/moderation_event-detail.html
index 10a3c1c89175e793bf83111c53c8e641354d0362..35d7db8786f6379500fb88a1bec9de8c1e2e314f 100644
--- a/src/backoffice/templates/backoffice/moderation_event-detail.html
+++ b/src/backoffice/templates/backoffice/moderation_event-detail.html
@@ -2,10 +2,11 @@
 {% load humanize %}
 {% load i18n %}
 {% load c3assemblies %}
+{% load hub_absolute %}
 
 {% block content %}
 
-  <h1>Event "{{ object.slug }}": {{ object.name }}</h1>
+  <h1>{% trans "Event" %} "{{ object.slug }}": {{ object.name }}</h1>
 
   <div class="row">
     <div class="col-md-9">
@@ -51,7 +52,7 @@
             <dt class="col-sm-3">{% trans "Event__owner" %}:</dt>
             <dd class="col-sm-9">{% if object.owner %}<a href="{% url "backoffice:moderation-user-detail" pk=object.owner.id %}">{{ object.owner.username }}</a>{% else %}-/-{% endif %}</dd>
             <dt class="col-sm-3">{% trans "Event__public_speakers" %}:</dt>
-            <dd class="col-sm-9">{% for speaker in object.public_speaker %}- <a href="{% url "backoffice:moderation-user-detail" pk=speaker.participant.id %}">{{ speaker.participant.username }}</a><br>{% empty %}-/-{% endfor %}</dd>
+            <dd class="col-sm-9">{% for speaker in object.public_speakers %}- <a href="{% url "backoffice:moderation-user-detail" pk=speaker.participant.id %}" title="{{ speaker.participant.username }}">{{ speaker.participant.get_display_name }}</a><br>{% empty %}-/-{% endfor %}</dd>
           </dl>
         </div>
       </div>
@@ -79,6 +80,11 @@
 
     </div>
     <div class="col-md-3">
+      <a class="d-block btn btn-outline-{% if event.is_public %}success{% else %}warning{% endif %} mb-3" href="{% hub_absolute 'plainui:event' event_slug=event.slug %}">
+        {% trans "moderation__public_link" %}
+        {% if not event.is_public %}<br><small class="text-muted fst-italic">{% trans "moderation__notpublic" %}</small>{% endif %}
+      </a>
+
       <div class="card border-primary-subtle">
         <div class="card-header bg-primary-subtle text-bg-primary">{% trans "nav_moderation" %}</div>
         <div class="card-body" id="moderation">
diff --git a/src/backoffice/templates/backoffice/moderation_user-detail.html b/src/backoffice/templates/backoffice/moderation_user-detail.html
index 4491508a195fc7783527030ff5c628cb0fb72a5f..77bc599934d957b6a7dfd7097e252379b3e353c8 100644
--- a/src/backoffice/templates/backoffice/moderation_user-detail.html
+++ b/src/backoffice/templates/backoffice/moderation_user-detail.html
@@ -20,6 +20,10 @@
             <dd class="col-sm-9">{{ object.id }}</dd>
             <dt class="col-sm-3">UUID:</dt>
             <dd class="col-sm-9">{{ object.uuid }}</dd>
+            <dt class="col-sm-3">{% trans "username" %}:</dt>
+            <dd class="col-sm-9">{{ object.username|default:"-/-" }}</dd>
+            <dt class="col-sm-3">{% trans "PlatformUser__display_name" %}:</dt>
+            <dd class="col-sm-9">{{ object.display_name|default:"-/-" }}</dd>
             <dt class="col-sm-3">{% trans "date joined" %}:</dt>
             <dd class="col-sm-9">{{ object.date_joined }} ({{ object.date_joined|naturaltime }})</dd>
             <dt class="col-sm-3">{% trans "active" %}:</dt>
@@ -51,7 +55,7 @@
           {% endfor %}</ul>
         </div>
       </div>
-    
+
       <div class="row">
         <div class="col-md-6">
 
@@ -86,7 +90,32 @@
           </div>
         </div>
       </div>
-    
+
+    <div class="row">
+            <div class="col-md-12">
+
+          <div class="card mb-3">
+            <div class="card-header">{% trans "Events" %} (beteiligt)</div>
+            <div class="card-body">
+              <ul>{% for e in object.events.all %}
+                <li>
+                  <strong>{{ e.get_role_display }}</strong>
+                  {% if e.is_accepted %}<span class="badge text-bg-success">{% trans "EventParticipant__is_accepted" %}</span>
+                  {% else %}<span class="badge text-bg-warning text-decoration-line-through">{% trans "EventParticipant__is_accepted" %}</span>
+                  {% endif %}
+                  {% if e.is_public %}<span class="badge text-bg-success">{% trans "EventParticipant__is_public" %}</span>
+                  {% else %}<span class="badge text-bg-warning text-decoration-line-through">{% trans "EventParticipant__is_public" %}</span>
+                  {% endif %}
+                  <a href="{% url "backoffice:moderation-event-detail" pk=e.event.pk %}">{{ e.event.name }}</a><br>
+                  <small>{{ e.event.schedule_start }} .. {{ e.event.schedule_end }} ({{ e.event.schedule_duration|naturaltimespan }})</small>
+                </li>
+                {% empty %}
+                <span class="text-muted">-/-</span>
+              {% endfor %}</ul>
+            </div>
+          </div>
+        </div>
+    </div>
     </div>
     <div class="col-md-3">
       <div class="card border-primary-subtle mb-3">
@@ -106,7 +135,7 @@
           <a class="mb-3 w-100 btn btn-outline-primary" href="{% url "backoffice:moderation-user-rename" pk=object.pk %}"><i class="bi bi-mask"></i> rename</a>
         </div>
       </div>
-    
+
       <div class="card mb-3">
         <div class="card-header">DMs</div>
         <div class="card-body">
diff --git a/src/backoffice/templates/backoffice/moderation_user-item.html b/src/backoffice/templates/backoffice/moderation_user-item.html
index 2a755f0e4d73dd1a688a246ef2dbfb9b2e3ca2d0..05dc57661d06e04afc8bec341faec782430f1331 100644
--- a/src/backoffice/templates/backoffice/moderation_user-item.html
+++ b/src/backoffice/templates/backoffice/moderation_user-item.html
@@ -2,7 +2,7 @@
 {% load humanize %}
 <div class="card mb-1">
   <div class="card-body">
-    User "<a href="{% url 'backoffice:moderation-user-detail' pk=user.pk %}" class="fw-bold">{{ user.username }}</a>"
+    User <a href="{% url 'backoffice:moderation-user-detail' pk=user.pk %}" class="fw-bold"><code>{{ user.username }}</code> "{{ user.display_name }}"</a>
     <br>
 
     {% if user.is_active %}<span class="text-success">{% trans "active" %}</span>{% else %}<span class="text-danger">{% trans "not active" %}</span>{% endif %}
diff --git a/src/backoffice/views/moderation.py b/src/backoffice/views/moderation.py
index e8bc456dbb5de94c082f07bd67bc712548568119..01c233b86ec4e19c2202a7fe2d858db05514e762 100644
--- a/src/backoffice/views/moderation.py
+++ b/src/backoffice/views/moderation.py
@@ -102,11 +102,13 @@ def lookup_moderation_items(conference: Conference, query: str):
         q_slug = Q()
         q_name = Q()
         q_username = Q()
+        q_display_name = Q()
 
         for word in words:
             q_slug = q_slug & Q(slug__icontains=word)
             q_name = q_name & Q(name__icontains=word)
             q_username = q_username & Q(username__icontains=word)
+            q_display_name = q_display_name & Q(display_name__icontains=word)
 
         for a in conference.assemblies.filter(q_slug).values('pk'):
             candidates.append(('assembly', a['pk']))
@@ -114,7 +116,7 @@ def lookup_moderation_items(conference: Conference, query: str):
             candidates.append(('badge', b['pk']))
         for e in conference.events.filter(q_slug).values('pk'):
             candidates.append(('event', e['pk']))
-        for u in PlatformUser.objects.filter(conferences__conference=conference).filter(q_username | q_slug).values('pk'):
+        for u in PlatformUser.objects.filter(conferences__conference=conference).filter(q_username | q_display_name | q_slug).values('pk'):
             candidates.append(('user', u['pk']))
         for p in conference.pages.filter(q_slug).values('pk'):
             candidates.append(('wiki', p['pk']))