Mandantentrennung mit Group Admin

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

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

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

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

hg2

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

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

  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

→ rechts auf mehr klicken und Group Admins auswählen

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

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

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

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

Extension Contact Layout Editor

Meldet euch sehr gerne mit Anmerkungen oder Fragen bei mir!

4 „Gefällt mir“