Daten im Frontend editieren
Dieses Feature ist Teil der Visforms Subscription und in der freien Visforms Version nicht enthalten..
Die Visforms Subscription fügt Ihrer Visforms Installation zusätzliche Menüeitragstypen hinzu, die Sie verwenden müssen, wenn Sie Benutzern Ihrer Webseite erlauben wollen, Daten im Frontend zu bearbeiten. Mit Hilfe des Menüeintrag vom Typ Visforms >> Formulardaten mit Edit Link, können Sie alle Übertragungen für ein bestimmtes Formular anzeigen und für alle Benutzer mit entsprechender Berechtigung zur Bearbeitung freigeben. Im Gegensatz dazu werden mit dem Menüeintrag vom Typ Visforms >> "Meine Übertragungen" alle Übertragungen eines bestimmten Benutzers für alle Formulare angezeigt. Um die Unterschiede zwischen diesen beiden Ansätzen zu verstehen ist auch der Beitrag Formulardaten im Frontend anzeigen - Überblick interessant.
Um das "Daten im Frontend editieren" aufsetzen zu können, müssen Sie weiterhin die Joomla! Benutzerrechte Verwaltung (ACL = Access Control List) verstanden haben und korrekt einsetzen, denn über diese Rechte wird gesteuert, wer welche Daten wie bearbeiten darf. Der folgende Beitrag erläutert die wichtigsten Aspekte der Joomla! Benutzerrechte Verwaltung, die im Hinblick auf die Konfiguration des "Daten im Frontend editieren" wichtig sind sowie die konkreten Optionen die Visforms Ihnen bietet. Diese Ausführungen gelten sowohl für das Aufsetzen einer Sicht "Formulardaten mit Edit Link" als auch für das Aufsetzen einer Sicht "Meine Übertragungen". Weiterhin erläutert dieser Beitrag, wie Sie die Sicht "Formulardaten mit Edit Link" aufsetzen. Die Schritt für Schritt Anleitung für ein Beispiel gibt ein ganz konkrete Beispiel für die Konfiguration einer Sicht "Formulardaten mit Edit Link". Wie Sie die Sicht "Meine Übertragungen" konkret aufsetzen wird im Beitrag Alle Übertragungen eines angemeldeten Benutzers anzeigen dieser Dokumentation erläutert.
Joomla! Zugriffsrechte - Einige Basics
Obwohl dieser Artikel eine grundsätzliche Erläuterungen zur Verwendung des ACL (Access Control List) in Joomla! enthält ist es wichtig, dass Sie verstanden haben, wie Joomla! ACL in Joomla! funktioniert, bevor Sie versuchen Rechte für das Editieren von Daten im Frontend zu vergeben.
Zugriffsrecht in Joomla! unterstützen Vererbung. Es gibt zwei unterschiedliche Linien, entlang derer die Zugriffsrechte vererbt werden. Eine Linie arbeitet entlang der Benutzergruppen (z.B. Registered -> Author -> Editor -> Publisher) wobei hier jedes Level Rechte von der Benutergruppe, die weiter links steht, erbt. In Visforms arbeitet die andere Vererbungslinie entlang der Linie Komponenteneinstellungen -> Formulareinstellungen -> Feldeinstellungen, wobei hier die Feldeinstellungen von den Formulareinstellungen erben und diese von den Visformseinstellungen. Die Vererbung von Rechten ermöglicht es Zugriffsrechte mit wenig Aufwand zu erstellen (indem man die Option für das am weitesten links stehende Level setzt). Beispielsweise reicht es aus die Option "Eigene Daten Editieren" für die Benutzergruppe "Registered" auf dem Ebenen der Komponente Visforms auf "Erlaubt" zu setzen und alle registrieren Benutzer, Autoren, Editoren und Publisher können Daten, die sie selbst übermittelt haben in allen Formularen editieren.
Auf der anderen Seite erlaubt Joomla! Ihnen ererbet Zugriffsrechte auf jeder Ebene explizit auf "erlaubt" oder "verweigert" zu setzen. Hierdurch kann man sehr individuelle Zugriffrechte für jeden Bereich setzen. Diese Kombination macht das Joomla! ACL zu einem so mächtigen Werkzeug.
Joomla! kommt mit vordefinierten Aktionen für die Zugriffsrechte festgelegt werden können. Damit Sie noch mehr individuelle Kontrolle darüber haben, wer in Visforms was tun darf, habe wir einige zusätzliche Aktionen definiert. Diese sind 'core.edit.css', 'core.delete.data', 'core.export.data', 'core.edit.data' and 'core.edit.own.data'. (Bitte beachten Sie, dass 'core.edit.css', 'core.delete.data' and 'core.export.data' Aktionen sind, die nur in der Joomla! Administration ausgeführt werden können.)
Eine Eigenschaft der Joomla! ACL ist, dass alle Aktionen, die für eine Komponente individuell definiert wurden, für alle Benutzergruppen außer den Super Administratoren per Default das Zugriffsrecht "verweigert" erben. Deshalb ist es notwendig, visformsspezifische Aktionen (wie das Editieren von Daten) für alle Benutzergruppen außer den Super Administratoren explizit zu erlauben, wenn Sie wollen, dass eine Benutzergruppe diese Aktion durchführen darf. Wie wir bereits gelernt haben kann dies einfach geschehen. Sie müssen nur auf den Vererbungslinien die höchste (am weitesten links stehende) Benutzergruppe auswählen, der Sie das Recht geben wollen und dieser Gruppe auf der Ebenen der Komponente Visforms oder eines spezifischen Formulars das Editieren von Daten erlauben.
Wo werden die Zugangsregeln gesetzt?
Auf der Ebenen der Komponente Visforms werden die Regeln über den "Optionen"-Button in der Hauptansicht von Visforms gesetzt (Formular Listen Übersicht) oder über die Konfiguration (System->Konfiguration) in der Administration.
Zugriffsrechte für spezifische Formulare werden in der Formularkonfiguration unter dem Reiter "Formularberechtigungen" gesetzt.
Zugriffsrechte für spezifische Felder werden in der Feldkonfiguration unter dem Reiter "Feldberechtigungen" gesetzt.
Es gibt für jede Aktion und jede Benutzergruppe einen Wert "Neue Einstellung" und einen Wert "Errechnete Einstellung". In der Auswahlliste für die "Neue Einstellung" können Sie zwischen "Vererbt", "Erlaubt" und "Verweigert" wählen. Entsprechend dieser Auswahl berechnet Joomla! die Berechtigung für eine gewählte Benutzergruppe und eine gewählte Aktion entlang der Vererbungslinien und zeigt das Ergebenis in den "Errechneten Einstellungen". Obwohl die "Erreichtenten Einstellungen" im großen und ganzen hilfreich sind, können Sie doch irreführend sein. Deshalb müssen Sie, wenn eine Berechtigung nicht wie erwartet arbeitet, alle Werte für "Neue Einstellung" aller übergeordenten Benutzergruppen überprüfen.
Obwohl es mit Visforms möglich ist die Aktionen 'core.edit.data' und 'core.edit.own.data' bis auf Feldebene hinunter zu "erlauben" oder zu "verweigern" kann ein Benutzer Daten nur editieren, wenn er auf Formularebene die Berechtigung zum Editieren hat. Abweichende Regeln auf Feldebene dienen nur dazu, eine Benuztergruppe, die prinziell berechtigt ist die Daten zu editieren, trotzdem daran zu hindern die Daten ausgewählter Felder zu editieren.
Visforms ACL Aktionen für das Editieren von Daten im Frontend
- Daten Editieren: Erlaubt einem Benutzer mit entsprechender Benutzergruppe alle Daten zu editieren. Diese Berechtigung sollte Administratoren vorbehalten bleiben.
- Eigene Daten Editieren: Erlaubt einem Benutzer mit ensprechender Benutzergruppe Daten, die er selbst mit dem Formular übermittelt hat, zu bearbeiten.
Nur Daten, die von einem angemeldeten Benutzer übertragen wurden können mit der Option "Eigene Daten Editieren" bearbeitet werden.
Visforms speichert die Id eines angemeldeten Benutzers zusammen mit den übermittelten Formulardaten. Diese Benutzer Id wird später verwendet um zu entscheiden, welche Datensätze ein Benutzer bearbeiten darf und welche nicht.
Benutzer, die mehreren Benutzergruppen angehören
Mit Joomla! können Sie einen Benutzer mehreren unterschiedlichen Benutzergruppen zuordenen, z.B. der Gruppe "Registriert" und der Gruppe "Manager". Welche Rechte ein Benutzer, der mehreren Benutzergruppen angehört, tatsächlich erhält, kann auf den ersten Blick unter Umständen verwirrend sein. Nichtsdestotrotzt ist dies ein wichtiges Feature, das häufig verwendet wird. Sie müssen nur daran denken, dass "Verweigert" über "Erlaubt" gewinnt. Haben Sie also für eine Benutzergruppe das Recht explizit auf "Verweigert" gesetzt, so kann ein Benutzer diese Aktion auch dann nicht auführen, wenn er einer zweiten Benutzergruppe angehört, für die die Aktion "Erlaubt" ist. Dies trifft sogar dann zu, wenn das "Verweigert" von einem höheren Level geerbt wurde.
Wo ist der "Daten Editieren Button"
Sie müssen einen Menüeintrag vom Typ "Visform -> Datensicht mit Edit Link" anlegen, wenn Sie das bearbeiten von Daten im Frontend ermöglichen wollen. Sie müssen die Sichtbarkeit von Daten im Frontend entsprechend der Beschreibung im Dokumentations-Beitrag Übermittelte Formulardaten speichern und verwenden festlegen, um die Datensicht mit den gewünschten Daten zu füllen. Der einzige Unterschied zu den in diesem Beitrag beschriebenen Einstellungen ist, dass es bei der Anzeige von Daten über den Menüeintrag vom Typ "Visform -> Datensicht mit Edit Link" nicht nötig ist den Formular-Parameter "Frontend Datenansicht erlauben" auf "ja" zu setzen. Im Falle des Daten im Frontend editieren wird dies durch das Anlegen des Menüeintrags freigeschaltet.
Sie können die Zugriffsebene für die Datensicht (in der Formularkonfiguration) und für den Menüeintrag setzen um die Sichtbarkeit des Menüeintrags und der Daten auf bestimmte Benutzergruppen zu bergrenzen (z.B. nur für angemeldete Benutzer).
Zusätzlich zu den Standard Menü Parametern, wie sie für einen Menüeintrag vom Typ "Visforms Formulardaten" vorhanden sind, finden Sie einen zusätzlichen Parameter "Nur editierbare Datensätze anzeigen" im Menü im Reiter "Optionen für die Formulardatenanzeige". Mit Hilfe dieses Parameters können Sie eine Liste erstellen, die immer nur die Datensätze anzeigt, die der angemeldete Benutzer auch wirklich bearbeiten darf.
Visforms fügt in Datentabellen, die über diesen Menüeintragtyp angezeigt werden, automatisch eine Link-Spalte ein, wenn ein Benutzer berechtigt ist Formulardaten zu editieren. Für jeden Datensatz, den der Benutzer tatsächlich aufgrund seiner Rechte bearbeiten darf, findet sich in dieser Spalte ein Link (Link-Icon). Visforms fügt auch in der zu diesem Menüeintragstyp gehörigen Detailansicht eines Datensatzes einen Edit-Button ein, wenn der Benutzer diesen Datensatz editieren darf.
Durch geschickte Wahl der ACL Einstellungen, der Formular-Optionen und der Menü-Optionen können für Benutzer, die nur "Eigene Daten Editieren" dürfen, maßgeschneiderte Datenlisten erzeugt werden, die immer nur die Datensätze des angemeldeten Benutzers anzeigen.
- Setzen Sie nur die Formular-Option "Eigene Daten Editieren" für "Registrierte Benutzer" auf "Erlaubt"
- Legen Sie einen Menüeintrag in einem Benutzermenü an, das nur für registrierte Benutzer sichtbar ist.
- Setzen Sie die Zugriffsebenen für das Menü auf "Registriert"
- Aktivieren Sie die Option "Nur editierbare Datensätze anzeigen" im Menü.
Welche Daten können bearbeitet werden?
Wenn ein Benutzer das Recht hat einen Datensatz zu editieren und auf den "Editieren-Link" klickt, bekommt er das Formular in einer einfachen Formularansicht angezeigt und die Daten werden als Defaultwerte im Formular gesetzt. Es werden alle veröffentlichten Formularfelder angezeigt. Felder vom Typ "versteckt" können im Frontend nicht bearbeitet werden, da diese eben versteckt sind. Mit dieser Ausnahmen können alle anderen Benutzereingaben in Übereinstimmung mit den in der Formular- und Felddefinition gemachten Einstellungen und Validierungsoptionen geändert werden.
Felder, die ein Benutzer nicht bearbeiten darf, werden in der Editieren-Sicht des Formulars angezeigt, sind aber nicht editierbar.
Unterhalb des Formulars werden zwei Button angezeigt. Einer um die Änderungen zu speichern und einer um den Vorgang abzubrechen und zur vorherigen Seiten zurückzukehren.