Hinzufügen von Feldern zu Benutzerrollen

7

Ich verwende Drupal 7, um ein Projekt zu erstellen, das Organisationen mit Freiwilligen verbindet. Mein anfänglicher Ansatz besteht darin, mithilfe des Profilmoduls unterschiedliche Profile für jede Rolle (Freiwillige und Organisation) zu erstellen. Ist es möglich, neue Felder zu erstellen, die nur einer ausgewählten Rolle zugeordnet werden?

Sterne in Taschen
quelle

Antworten:

3

Dies ist ein großartiger Anwendungsbeispiel für das Profil 2- Modul.

Wie auf der Projektseite aufgeführt:

Mit Profile2 können mehrere Profiltypen erstellt werden, die Rollen über Berechtigungen zugewiesen werden können (z. B. ein allgemeines Profil + ein Kundenprofil).

tim.plunkett
quelle
Leider ist dies nicht ganz der Anwendungsfall, nach dem ich suche. Ich möchte Benutzern keine zusätzlichen Profile nach Rollen hinzufügen, sondern Rollen um weitere Felder erweitern. Zum Beispiel: ein Profiltyp: Freiwilliger und ein Profiltyp: Organisation mit jeweils unterschiedlichen Feldern. Profile2 scheint dies ziemlich umständlich zu handhaben ...
Starsinmypockets
@starsinmypockets In Drupal 7 werden Knoten zu Knoten, Kommentaren, Taxonomiebegriffen und Benutzern hinzugefügt. Es gibt keine Möglichkeit, Rollen, die nicht als Entitäten betrachtet werden, ein Feld hinzuzufügen. Je näher Sie kommen, desto genauer wird von @ tim.plunkett berichtet, dass für jeden Benutzer mit bestimmten Rollen ein anderer Profiltyp festgelegt werden soll.
Kiamlaluno
2
Aus OO-Sicht versuche ich im Grunde, die Benutzerentität zu erweitern, obwohl das Codieren völlig neuer Entitäten zur Verwendung als Rollen eine Menge Arbeit zu sein scheint;)
starsinmypockets
3

Ich denke, Sie könnten auch versuchen, alle Felder direkt zum Benutzer hinzuzufügen und dann eine benutzerdefinierte Implementierung von hook_field_access () zu verwenden, um zu steuern, wann sie zum Bearbeiten / Anzeigen angezeigt werden.

Berdir
quelle
Das klingt vielversprechend!
Starsinmypockets
-1

Klingt nach einer guten Idee, alle Felder in einer Entität zu sammeln. Sie könnten dann ein Enumerator-Feld haben, in dem Sie den Entitätstyp (Organisation oder Freiwilliger) auswählen können. Dies wäre erforderlich, wenn der Autor befugt wäre, beide zu erstellen. Sie können das Benutzerrollenfeld verwenden , um die Felder auszublenden, die der Autor nicht sehen darf. Sie können Feldberechtigungen verwenden , um den Zugriff einzuschränken, auf den der Autor und der Betrachter nicht zugreifen dürfen. Sie können auch Felder mit bedingten Feldern ein- oder ausblenden, die von Werten anderer Felder abhängen . Das Abhängigkeitsfeld wäre dann das Aufzählungsfeld. Sie könnten wahrscheinlich Computed Field verwenden , um abhängig vom Untertyp zusätzliche Logik hinzuzufügen.

Ich verwende gerne Taxonomie als Enumerator, aber es könnte stattdessen eine Textliste sein.

Sie möchten wahrscheinlich auch die subtypspezifischen Felder in einer drupal.org/project/field_group zusammenfassen

Dieses Muster könnte genauso gut auf Inhaltstypen angewendet werden. Ich denke, ich werde es ausprobieren.

In Microsoft Sharepoint wird ContentTypes seit Jahren vererbt. Ich frage mich, ob es in einer zukünftigen Drupal-Version kommen wird.

RaSor
quelle