Skip to content

Gruppenrechte in Serendipity

Ein Bekannter möchte in einem kommerziellen Blog unterschiedliche Gruppen von Schreibern integrieren, die sich gegenseitig nicht beeinflussen sollen. Was er sucht ist eine Mandantenfähigkeit: Ein Blog, in dem unterschiedliche Mandanten von einander klar getrennten Inhalt erzeugen. Er hatte bisher mit WordPress probiert, aber dieses kennt (zumindest mit Bordmitteln) keine getrennten Schreib- und Leserechte, somit empfahl ich ihm Serendipity.

Ich traf mich mit ihm, um Serendipity zu installieren und ein wenig Brainstorming zu betreiben, wie man die Mandaten im Blog klar auseinanderhalten kann und trotzdem ein einziges Blog erzeugt. Bei ihm kam noch als Spezialanforderung hinzu, dass diese Artikel auch nicht öffentlich von anderen Mandanten oder nicht registrierten Benutzern gesehen werden sollen. Hier beschreibe ich, was unser Brainstorming ergeben hat.

Um so etwas zu realisieren, bietet Serenditpity die Gruppenverwaltung. Mandanten im genannten Szenario sind so etwas wie Firmen, die einen oder mehrere Schreiber haben. Diese Firmen werden in Serendipity durch Gruppen dargestellt. Stellen wir uns vor, es gibt zwei Mandanten. Der eine verkauft Birnen, der andere Äpfel.

Wie geht man nun am besten vor?

  1. Gruppen anlegen
  2. Kategorien anlegen
  3. Medienverzeichnisse anlegen
  4. Benutzer anlegen
  5. Test der Konfiguration

Gruppen anlegen

In der Adminstatration von Serendipity (s9y) gibt es einen Menüpunkt "Gruppenverwaltung". Hier erzeugen wir zwei neue Gruppen: Apfel und Birne.
Wir fangen mit der Gruppe Apfel an, die wir neu erstellen müssen:

  • Als Namen gegen wir Apfel an, bei der Gruppenzugehörigkeit klicken wir (noch) keinen Benutzer an
  • Rechte konfigurieren: Wenn gewünscht ist, dass der Zugriff nicht nur in andere Gruppen, sondern auch auf Inhalt anderer Benutzer der eigenen Gruppe verboten sein soll, dann sollten wir kein Recht vergeben, dass "andere Benutzer" in der Beschreibung enthält. In unserem Beispiel soll das so sein, wir vergeben also die Rechte adminComments und adminEntries (nicht adminEntriesMaintainOthers). In adminImages klicken wir alles an, was sich nicht auf "andere Benutzer" bezieht, außer adminImagesDelete und adminImagesDirectories. Diese 3 Hauptbereiche regeln den Zugriff auf den Inhalt des Blogs.

    Im Bereich personalConfiguration können wir auch noch Rechte vergeben, so sollten wir erlauben, dass Benutzer aus dieser Gruppe ihre eigenen Artikel veröffentlichen dürfen (personalConfigurationRightPublish).

    Alle anderen Rechte sollten wir nicht vergeben, da diese administrativen Zugriff erlauben, der das Blog an sich oder Kategorien verändert (die wir gleich anlegen wollen) oder einen Zugriff auf andere Gruppen ermöglicht.

Als nächstes konfigurieren wir die Gruppe Birne. Dazu bietet Serendipity ein komfortables Feature: Wir bearbeiten einfach die Gruppe Apfel, ändern den Namen in "Birne" und klicken nicht auf "Speichern" sondern auf "Neue Gruppe anlegen", wodurch eine Kopie der Einstellungen als neue Gruppe angelegt wird. Das ist genau, was wir wollen.

Kategorien anlegen

Nun legen wir separate Kategorien an, die nur in den entsprechenden Gruppen sichtbar sind und nur von Benutzern aus dieser Gruppe mit Inhalten versorgt werden sollen. In der Admin Oberfläche erledigen wir das unter "Kategorien".
Wir legen zunächst die Kategorie Apfelbeiträge an (neue Kategorie):

  • Als Name tragen wir "Apfelbeiträge" ein, als Beschreibung das selbe.
  • Als Leserechte klicken wir hier die vorhin erstellte Gruppe Apfel an. Sollten wir wollen, dass alle Besucher Beiträge aus dieser Kategorie lesen können, so müssten wir hier "Alle Autoren" auswählen, unser Szenario will das aber gerade nicht.
  • Als Schreibrechte klicken wir wieder die Gruppe Apfel an. Nun können hier nur Benutzer aus dieser Gruppe Beiträge anlegen.
  • Als übergeordnete Kategorie können wir eine beliebige angeben, die noch nicht in Lese- und/oder Schreibrecht beschränkt ist, also z.B. "keine Kategorie".

Auf die selbe Weise legen wir die Kategorie "Birnenbeiträge" an, diese müssen wir dann aber entsprechend der Gruppe Birne zuordnen. Hier gibt es leider kein entsprechendes Feature, wie bei den Gruppen, wir müssen die Kategorie komplett neu anlegen.

Mediendatenbank Verzeichnisse anlegen

Auch die verwendeten Medien sollen in ihren Gruppen verbleiben, es sollen keine Medien aus anderen Gruppen benutzt werden können. Wir legen für jede Gruppe ein eigenes Verzeichnis in der Mediendatenbank an, das wir dann geeignet konfigurieren. Dies geschieht in der Admin Oberfläche in dem Menü Mediendatenbank - Verzeichnisse verwalten:

  • Wir legen zuerst wieder ein neues Verzeichnis Apfelmedien an. Sinnvoll ist es, dieses im Stammverzeichnis zu haben.
  • Danach wählen wir wieder das Admin Menü "Verzeichnisse verwalten" an und bearbeiten das neu angelegte Verzeichnis "Apfelmedien". Hier vergeben wir wieder die selben Lese- und Schreibrechte, wie wir es schon bei den Kategorien getan haben. Also wieder die Gruppe Apfel. Wenn wir bei den Kategorien Leserecht für alle vergeben haben, weil wir wollen, dass auch unangemeldete Benutzer die Artikel lesen können, so sollten wird dies hier auch tun. Dies hat dann aber auch zur Folge, dass Medien aus allen Gruppen in beliebige Artikeln verwendet werden können, was wir genau verhindern wollen.
  • Das Verzeichnis Birnenmedien legen wir danach entsprechend an.

Benutzer anlegen

An dieser Stelle sind wir damit durch, das Blog auf Gruppenrechte vorzubereiten. Nun müssen wir Benutzer anlegen, die in diesen Gruppen arbeiten sollen. Wir legen also einen Benutzer "apfel" mit dem vollen Namen "Herr Apfel" und einen entsprechenden Benutzer birne mit dem Namen "Herr Birne" an.

  • Neuen Benutzer anlegen: In der Admin Oberfläche finden wir unter Adminstration das Menü "Benutzerverwaltung". Hier legen wir einen neuen Benutzer an. 
  • Als Benutzernamen geben wir "apfel" ein, als Vollen Namen vergeben wir "Herr Apfel", das Passwort, das wir eintragen, merken wir uns.
  • Als Zugriffsrecht vergeben wir "Redakteur", als Gruppenzugehörigkeit "Apfel".
  • Wir vergeben das Recht "Einträge veröffentlichen", wenn Herr Apfel seine Beiträge auch veröffentlichen darf und sie nicht nur als Entwurf speichern soll.
  • Alles andere kann nach Belieben eingestellt werden, wir sollten ihm aber Zugriff auf die Symbolleiste für das Mediendatenbank-Popup geben.
  • Danach speichern wir den neuen Benutzer Herr Apfel ("Einen neuen Benutzer anlegen").
  • Jetzt legen wir noch Herrn Birne auf die selbe Weise an, nur gehört dieser natürlich nicht zur Gruppe Apfel sondern Birne.

Test der Konfiguration

Die Konfiguration ist abgeschlossen und es ist an der Zeit, diese zu testen. Wir loggen uns aus der Admin Oberfläche aus und loggen uns als Herr Apfel ein. Wir müssen also den Benutzernamen apfel verwenden und das für ihn vergebene Passwort. Ist man als Herr Apfel eingeloggt, sind die Optionen der Admin Oberfläche nun deutlich reduziert:

  • Herr Apfel kann keine Kategorien oder Mediendatenbank Verzeichnisse anlegen oder verwalten, er hat aber die Optionen zum erzeugen und bearbeiten von Einträgen.
  • Wenn er "Einträge bearbeiten" auswählt, sollte er keine Einträge sehen, da er noch keine erstellt und keinen Zugriff auf Einträge hat, die vorher evtl von anderen Benutzern im Blog erzeugt wurden. In dem Filter für die Einträge findet er zwar die Kategorie "Apfelbeiträge" aber nicht die Kategorie "Birnenbeiträge".
  • Er legt nun seinen ersten Beitrag an. Auch hier kann er keinen Beitrag in der Kategorie "Birnenbeiträge" anlegen, da er diese gar nicht in der Kategorienauswahlliste sieht, wohl aber in der Kategorie "Apfelbeiträge".
  • In der Mediendatenbank kann er Bilder in das Verzeichnis "Apfelmedien" ablegen, betrachten und in seinen Artikeln verwenden. Er kann dies aber nicht im Verzeichnis "Birnenmedien", denn dieses wird ihm von der Mediendatenbank nicht angezeigt.

Den gleichen Test kann man nun mit Herrn Birne durchführen. Bei ihm sollte entsprechendes in der Admin Oberfläche gelten, jedoch für die Gruppe Birne, die Kategorie Birnenbeiträge und das Medienverzeichnis Birnenmedien.

Voila! Das sieht doch genau so aus, wie wir es haben wollen!

Probleme

Das ist alles soweit perfekt eingerichtet. Ich möchte aber nicht verschweigen, dass wir auch Probleme gefunden haben:

  • Dem Stammverzeichnis der Mediendatenbank kann kein besonderes Lese- und Schreibrecht zugeordnet werden. Auf dieses haben dann also alle Benutzer des Blogs Zugriff. Da dieses Verzeichnis nun aber leider immer jenes ist, das als erstes ausgewählt ist, ist dies schon recht kritisch. So können Medien, die eigentlich in der Gruppe versteckt sein sollten, aus Versehen im Stammverzeichnis für alle sichtbar erscheinen.
  • Bei unseren Tests verschwanden Bilder aus den Gruppen Verzeichnissen aus dem Artikel, nachdem man ihn nach dem Erzeugen zum ersten Mal speicherte. Wenn man ihn danach noch einmal bearbeitet, ein Bild aus seinem Gruppenverzeichnis hinzu fügt und dann noch einmal speichert, so geschieht dies nicht. Hier scheint noch ein Bug in Serendipity oder eines der verwendeten Plugins zu sein, dem ich wohl noch auf den Grund gehen muss.

Ausblick

Dieses Konzept kann man noch beliebig erweitern. So kann man z.B. eine gemeinsame Kategorie Obstmarkt erzeugen, in die beide Firmen schreiben können. Dazu muss der Kategorie dann Lese- und Schreibrecht aus beiden Gruppen gegeben werden. Oder man kann einen Workflow implementieren, indem man den bisherigen Benutzern das Recht entzieht, Artikel zu veröffentlichen, und dann die beiden Gruppen ApfelCVD ("Chef vom Dienst") und BirneCVD anlegt, die nur die Rechte haben, die sich auf "andere Benutzer" beziehen, sowie das Recht zur Veröffentlichung von Artikeln. Ein CVD der Firma Apfel ist dann in der Gruppe Apfel und ApfelCVD und kann so auf alle Beiträge dieser Gruppe zugreifen (auch nicht von ihm erstellte) und diese zur Veröffentlichung freigeben.

Da ein großer Teil der Blogs eher privater Natur ist und diese deshalb meist nur von einem Schreiber versorgt werden, ist das Thema der Gruppenrechte in Serendipity bisher wahrscheinlich noch nicht wirklich beleuchtet worden. Ich hoffe aber, dass ich nun mit diesem Artikel dieses Thema anschaulich darstellen konnte.

Trackbacks

blog.brockha.us

blog.brockha.us am : Serendipity für Geschlossene Gesellschaften

"Serendipity für Geschlossene Gesellschaften" vollständig lesen
Ein Bekannter bat mich darum, eine Site für ihn und seine Familie hoch zu ziehen. Die Familie ist mittlerweile über die ganze Welt verstreut, somit macht so ein virtueller Treffpunkt durchaus Sinn. Aktuelles Hauptziel war erst einmal, ein Famili

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Robert Lender

Robert Lender am :

Dieser Artikel kommt bestimmt in die Auflage 4 meines "fragmentarischen...S9y...Handbuch" :-)

Werde ihn nochmals in Ruhe durchackern und weiter überlegen.

Grischa

Grischa am :

Ja, der Artikel ist recht lang geworden, ich wollte ihn aber so schreiben, dass auch Anfänger die Einstellungen finden und nachvollziehen können. Also leider nichts zum schnell mal durchlesen.

Wenn Du weitere Ideen hast, speziell natürlich auch zum Teil, der auf die Probleme eingeht, wäre ich an einem Kommentar interessiert. :-)

Robert Lender

Robert Lender am :

Die Länge ist vollkommen ok - gute Erläuterungen dürfen ruhig länger sein :-)

Bezüglich der Probleme werde ich mal grübeln.

jogijo

jogijo am :

Weiß jemand, was ich machen muss, wenn ich für einen bestimmten Nutzer bei der Wahl der Kategorie nur seine Kategorie stehen haben will, er also nicht mehr eine bestimmte Kategorie wählen muss, sondern diese voreingestellt ist - also nicht mehr "keine Kategorie" angezeigt wird?

Grischa

Grischa am :

*Das* würde mich auch interessieren. Ich vermute, es geht gerade nicht, dazu müsste man eine Erweiterung für Serenditpity realisieren.

Holger Jakobs

Holger Jakobs am :

Eigentlich hatte ich gedacht, dass die im Artikel beschriebene Vorgehensweise es erlaubt, Beiträge nur für bestimmte Gruppen sichtbar zu machen - und nicht für unangemeldete Benutzer. Scheint aber nicht der Fall zu sein.

Gibt es hierfür denn eine Lösung? Nicht jedes Blog ist für die Weltöffentlichkeit bestimmt.

Grischa

Grischa am :

Genau das ist hier (u.a.) doch beschrieben? Unter Kategorien anlegen:

"Als Leserechte klicken wir hier die vorhin erstellte Gruppe Apfel an. Sollten wir wollen, dass alle Besucher Beiträge aus dieser Kategorie lesen können, so müssten wir hier "Alle Autoren" auswählen, unser Szenario will das aber gerade nicht."

Jessica

Jessica am :

Das nenn ich mal eine ausführliche Erklärung zu dem Thema! Supi :-) Vielen Dank und liebe Grüße Jessi

Kommentar schreiben

Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Dieses Blog erlaubt Dir, Audio Kommentare über audioboo.fm hinzuzufügen. Erstelle einen neuen Boo und gib hier den Link auf die Seite Deines Boos ein.
record
Wenn Du Deinen Twitter Namen eingibst wird Deine Timeline in Deinem Kommentar verlinkt.
Bewirb einen Deiner letzten Artikel
Dieses Blog erlaubt Dir mit Deinem Kommentar einen Deiner letzten Artikel zu bewerben. Bitte gib Deine Blog URL als Homepage ein, dann wird eine Auswahl erscheinen, in der Du einen Artikel auswählen kannst. (Javascript erforderlich)
(Bedingung: 1 Kommentare geschrieben)
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
tweetbackcheck