# Mandantentrennung mit Group Admin

**URL:** <https://community.software-fuer-engagierte.de/t/mandantentrennung-mit-group-admin/252>\
**Category:** CiviCRM Wiki\
**Tags:** erweiterungen\
**Created:** [17. Mai 2022 um 15:12 UTC](https://community.software-fuer-engagierte.de/t/mandantentrennung-mit-group-admin/252 "2022-05-17T15:12:03Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![maria](https://community.software-fuer-engagierte.de/user_avatar/community.software-fuer-engagierte.de/maria/32/325_2.png) [@maria](https://community.software-fuer-engagierte.de/u/maria)\
**Post date:** [17. Mai 2022 um 15:12 UTC](https://community.software-fuer-engagierte.de/t/mandantentrennung-mit-group-admin/252/1 "2022-05-17T15:12:03Z")

</div>

CiviCRM bietet zwar mit _ACLs_ eine Funktion, um zu steuern welche Daten gesehen werden dürfen. Allerdings gibt es einige Gründe, die für die Extension _Group Admin_ sprechen.  
In diesem Kochbuchrezept beschreibe ich einen praxisnahen Anwendungsfall am Beispiel _pro familia_.

**Was bedeutet eigentlich Mandantenfähigkeit?**

Als mandantenfähig bezeichnet man ein Softwaresystem, das mehrere Nutzer·innen gleichzeitig verwenden, ohne die Daten der jeweils Anderen einsehen zu können.

Beispiel:

- Mitgliederorganisationen aus Bundesverband / Landesverbänden / Ortsverbänden
- Ziel: Alle Gliederungen („Mandanten“) nutzen dasselbe CiviCRM, aber können nur die ihnen zugeordneten Daten einsehen

**Anforderungen von _pro familia_**

- Ortsverbände sollen nur Zugriff auf die eigenen Mitglieder erhalten
- Landesverbände wollen alle Mitglieder ihrer Ortsverbände sehen
- Ortsverbände und Landesverbände wollen Rundschreiben an ihre Mailinglists versenden
- Jede Organisationseinheit soll neue Kontakte/Mitglieder anlegen können
- Einfache Bedienbarkeit

**Was bietet CiviCRM standardmäßig?**

- Zugangsberechtigung  
 → steuern nur was und nicht wer gesehen werden kann

- ACLs (Access Control Lists)  
 → steuern welche Daten gesehen werden können

 ![acls](https://community.software-fuer-engagierte.de/uploads/default/original/1X/66d6daa0b121223208debda2b6af9b5a5e89374a.png)

Operationen: Ansehen, Bearbeiten, Erstellen, Löschen, Suche, Alle

Allerdings:

- Hoher administrativer Aufwand  
 → Anlegen von Rollen, Zuweisung aller Rollen an eine Gruppe, Zuordnung von Berechtigungen
- Unvollständig implementiert (Achtung: Das ist möglicherweise nicht mehr aktuell und kann sich auch zukünftig ändern)  
 → Keine Einschränkung in Verbindung mit CiviMail möglich → Versand an alle Gruppen möglich  
 → Operation **Ansehen** funktioniert nicht → Kontakte können bearbeitet werden

Hier kommt nun die Extension **Group Admin** ins Spiel.  
Diese Erweiterung ist sehr viel einfacher zu konfigurieren. Sie ermöglicht _Group Administrator·innen_ festzulegen, die Zugriff auf Gruppen und Kontakte in diesen Gruppen haben. Die Administrator·innen können nur die Gruppen und die Kontakte dieser Gruppen sehen, für die sie _Group Admin_ sind.

**Detailkonfiguration: Erstellung der Gruppen**

Im Falle von _pro familia_ gibt es für jeden Landes-/Ortsverband 2 dynamische Gruppen:

- alle Mitglieder (über den kompletten Zeitraum / inkl. ehemaliger Mitglieder)
- alle aktuellen Mitglieder abzüglich Ausgetretener und Verstorbener

 ![mtg](https://community.software-fuer-engagierte.de/uploads/default/original/1X/98d04addd398427d8e4849cb6310ce62af038962.png)

Gruppe 1:  
_Alle Mitglieder (über den kompletten Zeitraum / inkl. ehemaliger Mitglieder)_

Diese Gruppe(n) definieren sich durch ein benutzerdefiniertes Feld (LV/OV).  
Hier ein Beispiel für den LV Bayern, der sich aus mehreren Ortsverbänden zusammensetzt:

![by](https://community.software-fuer-engagierte.de/uploads/default/original/1X/414d9c8cb1bda53583972802ece057a5592eb0be.png)

Mit dieser Gruppe hätten wir allerdings nur eine Liste aller Mitglieder. Eine weitere Anforderung von pro familia war jedoch, dass nur aktuelle Mitglieder angezeigt werden.  
Daher werden im nächsten Schritt die Mitglieder ausselektiert, die ausgetreten oder verstorben sind.

Dazu braucht es 1 dynamische Hilfsgruppe.  
_Mitglieder - ausgetreten bis gestern ODER verstorben_, die sich wie folgt zusammensetzt:

![hg1](https://community.software-fuer-engagierte.de/uploads/default/original/1X/defc736304f157d97bf50ed12ab18db0bea32a27.png)

![hg2](https://community.software-fuer-engagierte.de/uploads/default/original/1X/fc7a5ce5530650a5b60c8e1f0098599757c6f160.png)

Gruppe 2:  
_Alle aktuellen Mitglieder (abzüglich der Gruppe „Mitglieder - ausgetreten bis gestern ODER verstorben“)_

 ![kxy](https://community.software-fuer-engagierte.de/uploads/default/original/1X/78611e4592ea65a07ee22349911fe745c7565fcd.png)

Hier zieht man die Hilfsgruppe von der Gruppe 1 ab.

**Detailkonfiguration: Erstellung neuer Zugriffsrolle**

Im Fall von _pro familia_ sind die folgenden Berechtigungen vergeben:

- Kontakte hinzufügen
- Meine Kontaktdaten ansehen / bearbeiten
- Profil-Listen und -Formulare  
→ Profile können zum vereinfachten Anlegen von neuen Kontakten genutzt werden
- Profil ansehen
- Zugriff auf alle benutzerdefinierten Daten
- Access CiviCRM Backend und API
- Kontaktübersicht

Diese Berechtigungen sollten nicht vergeben werden:

- Alle Kontakte betrachten / bearbeiten
- (Lösche Kontakte)
- CiviCRM verwalten

Weitere Berechtigungen können je nach Bedarf individuell hinzugefügt werden. Oftmals lohnt es sich allerdings, z.B. im Fall von CiviMail-Funktionen, eine weitere Zugriffsrolle anzulegen, weil in den meisten Fällen diese nicht von allen Nutzer·innen verwendet wird.

**Detailkonfiguration: Anlegen von Benutzer·innen und Zuweisen der Rolle**

1. Falls Benutzer·in (zukünftige·r Group Admin) nicht vorhanden, muss erst der Kontakt angelegt werden

2. Die erstellte Zugriffsrolle muss zugewiesen werden

![rolle](https://community.software-fuer-engagierte.de/uploads/default/original/1X/0f1fa6a8a8d299a64e8dff9ae82dea198917a9af.png)

1. Es gibt eine weitere Rolle CiviMail, die nur Mailing-Funktionalitäten steuert und zusätzlich an Personen vergeben wird, die Rundschreiben versenden möchten

**Detailkonfiguration: Benutzer·in zum Group Admin benennen**

Schritt 1: Zugriff auf Gruppe erteilen

![ga](https://community.software-fuer-engagierte.de/uploads/default/original/1X/77de01d7a41e9a35e933590a984997d1085c928b.png)

→ rechts auf _mehr_ klicken und _Group Admins_ auswählen

 ![ga2](https://community.software-fuer-engagierte.de/uploads/default/original/1X/9f57a741664a74edc756950cab1b35992d82e922.png)

Im Fall von _pro familia_ wird nur Zugriff auf die obere Gruppe gegeben, da nur alle aktuellen Mitglieder angezeigt werden sollen.

Schritt 2: Zugriff auf Elterngruppe  
→ nur notwendig, wenn es sich um viele Gruppen handelt, die zur Übersichtlichkeit strukturiert werden sollen

 ![eg](https://community.software-fuer-engagierte.de/uploads/default/original/1X/8220b39c22d7dfa8f9105455dd588ff5e89ccb4d.png)

Hintergrund: Die Extension berücksichtigt bisher keine Gruppenhierarchie und zeigt die Kindgruppe(n) via Suche \> Kontakte finden nicht an.

Hier das Vorgehen von Schritt 1 wiederholen.

Wichtiger Hinweis: Bei Update der Extension sollte gut getestet werden, ob weiterhin nur Zugriff auf die Kindgruppe besteht.

**Detailkonfiguration: Ansicht anpassen**

Schritt 3: Benutzer·in (Group Admin) zu einer Gruppe hinzufügen, die die Sichtbarkeit der angezeigten Felder steuert.

![adminlvov](https://community.software-fuer-engagierte.de/uploads/default/original/1X/f2806073ad7674fcb7258d72d41b7b75739aa635.png)

Diese Gruppe ist mit der Extension **Contact Layout Manager** verknüft. Diese Extension ermöglicht eine individuelle Gestaltung der Kontaktübersicht und damit z.B. das einfache Ausblenden von benutzerdefinierten Feldern.

![clm](https://community.software-fuer-engagierte.de/uploads/default/original/1X/f1d389616e12fced97a0f8c886e7970ee03e1b0c.gif)

_Derzeitiges Problem_: Benutzerdefinierte Daten, die als Inline und nicht als Reiter konfiguriert sind, werden noch angezeigt, wenn man einen Kontakt bearbeitet oder einen Neuen erstellt.

_Empfehlung_: Für besonders sensible Daten sollte aus Sicherheitsgründen dennoch der Weg über ACLs gegangen werden.

_Wichtig_: Nach einem Update der Extension sollte gut getestet werden, ob alle Felder beim Anzeigen, Bearbeiten und Erstellen weiterhin ausgeblendet sind.

**Bekannte „Bugs“ (Fehler)**

_Group Administrator_

- In der Group Admin-Übersicht einer Gruppe werden nur 25 Kontakte angezeigt. Es ist dennoch möglich mehr Kontakte hinzuzufügen. Nicht sichtbare Kontakte müssen jedoch in der Datenbank gelöscht werden (Siehe Issue #8)
- Option Allowed e-mail addresses for this group funktioniert bisher noch nicht. Alle im System eingestellten E-Mail-Adressen sind für alle sichtbar (Siehe Issue #5)
- Group Admins können sich selbst und andere entfernen, wenn Manage Group-Menü aktiviert. Workaround: Menüpunkt verbergen (Siehe Issue #7)
- Falls eine Gruppenhierarchie (Eltern- und Kindgruppen) verwendet wird, muss auch Group Admin-Zugriff auf die Elterngruppe gegeben werden (Siehe Issue #6)

_Contact Layout Manager_

- Benutzerdefinierte Daten, die als Inline und nicht als Reiter konfiguriert sind, werden noch angezeigt, wenn man einen Kontakt bearbeitet oder einen Neuen erstellt (Siehe Issue #118)

**Ressourcen**

_Extension Group Admin_

- Entwickler: Matthew Wire, MJW Consulting → @mattwire
- [Group Administrators | CiviCRM](https://civicrm.org/extensions/group-administrators)
- Issues: [Issues · Extensions / Group Administrators · GitLab](https://lab.civicrm.org/extensions/groupadmin/-/issues)

_Extension Contact Layout Editor_

- [Contact Layout Editor | CiviCRM](https://civicrm.org/extensions/contact-layout-editor)
- Issues: [Issues · civicrm/org.civicrm.contactlayout · GitHub](https://github.com/civicrm/org.civicrm.contactlayout/issues)

Meldet euch sehr gerne mit Anmerkungen oder Fragen bei mir!
