Twoday-Tipp #6 - Berechtigungen für Twoday-Module

module2role/role01.jpg

Die Anfrage von LadySaville im Hilfe-Forum wirft eine interessante Fragestellung auf: Wie kann man ausgewählte, eigene Twoday-Module bestimmten Mitgliedergruppen zuordnen und die Modulanzeige auf diese beschränken?

Beispiel: Als Blogbesitzer möchte ich die Liste meiner Abonnements (Sidebar-Modul: "Abonnements"), meine Bücherliste (Sidebar-Modul: "Bücherliste") sowie meine Kommentare auf anderen Blogs (Sidebar-Modul: "Meine Kommentare") nur meinen eingetragenen Abonnenten anzeigen. Wie kann man dies realisieren?
Das Twoday-Berechtigungsmodell

Für plattforminterne Berechtigungsprüfungen verwendet Twoday 5 Rollen­definitionen, mit denen jeweils bestimmte Erlaubnisse verbunden sind. Der Berech­tigungs­umfang entspricht einer invertierten Pyramide und wächst vom einfachen Blogleser mit minimaler Berechtigung bis zum Administrator mit maximalen Berechtigungen an. Jede höhere Stufe umfasst automatisch auch alle Berechtigungen der darunter liegenden Stufen.
Beispiel: Die Rolle "Contributor" hat neben den speziellen Berechtigungen für diese Rolle auch alle Berechtigungen eines Subscribers oder Bloglesers.

module2role/role02.jpg

Ein Blogbesitzer (Eigentümer) ist gleichzeitig immer auch "Administrator". Ein normaler Abonnent erhält automatisch die Standardberechtigung "Subscriber", kann aber vom Administrator des Blogs (individuell) auf höhere Berechtigungsstufen angehoben werden. Jeder Besitzer eines Twoday-Blogs kann die beschriebenen Berechtigungsrollen unter AdminMitglieder (bzw. der Direkt-URL blogname.twoday.net/members/main) an beliebige andere Twoday-Mitglieder vergeben oder diese auch wieder zurücknehmen:

module2role/role03.jpg

Als wahrscheinlich häufigste Anwendungsfälle (Use-Cases) für Modulberechtigungen kann man sich folgende Szenarien vorstellen:

  • Twoday-Module, die man nur seinen eingetragenen Abonnenten zeigen will,
  • Module, die man nur selbst als Blogbesitzer (respektive Administrator) angezeigt bekommen soll.

Trotz dieser zwei plausibelsten Fälle habe ich die Routine zur Berechtigungsprüfung sofort allgemeingültig realisiert, d.h. dass prinzipiell alle definierten Twoday-Rollen für Berechtigungsprüfungen verwendet werden können.

Installation der Berechtigungsprüfung für Twoday-Module

Die Aktivierung der Berechtigungsprüfung auf Modulebene ist sehr einfach und besteht in der Ergänzung zweier Zeilen im Skin Seitenleiste 2 (Site.sidebar02):

  1. Melden Sie sich auf Twoday mit Ihrem Account an und rufen Sie Ihren Blog auf.
  2. Wählen Sie in der Menüzeile oben AdminLayout und dann Skins (HTML)
  3. Scrollen Sie herunter bis zur Überschrift "Seitenleisten" und klicken Sie dort auf Seitenleiste 2 (Site.sidebar02).

    module2role/role04.jpg

  4. Geben Sie dort hinter der vorhandenen Zeile <% site.sidebarItems for="sidebar02" %> die nachstehenden zwei neuen Zeilen ein:
    <div id="loginStatus" style="display:none"><% site.loginstatus %></div>
    <script src="//static.twoday.net/cdn/files/module2role-min-js.js">
  5. Ihr Modulcode sollte nun folgendermaßen aussehen:

    module2role/role05.jpg

  6. Klicken Sie abschließend unten auf "Speichern und Schließen":

    module2role/role06.jpg

    Fertig! Damit haben Sie die Berechtigungsprüfung prinzipiell aktiviert und können nun daran gehen, einzelne Module bestimmten Rollen zuzuordnen.

Module bestimmten Twoday-Rollen zuordnen

Unter "Module" versteht man diejenigen Elemente, die Sie in Ihre zwei Sidebars aufnehmen können. Klicken Sie in Ihrer Blog-Menüzeile auf AdminModule und dann Sidebar Module, um sich die 26 verfügbaren Module anzeigen zu lassen.

Nehmen wir an, Sie haben das Modul "Free-Text (4)" in Ihre Sidebar aufgenommen, wollen seinen Inhalt aber nur Ihren Contributoren anzeigen. Um das Modul also der Berechtigung "Contributor" zuzuordnen, gehen Sie in die Einstellungen zu diesem Modul und ergänzen in der Überschrift ganz einfach den Text @[Contributor] und sichern danach Ihre Änderung:

module2role/role07.jpg

Wollen Sie ein Modul nur Ihren eingetragenen Abonnenten zeigen, ergänzen Sie ein @[Subscriber] in der Überschrift. Soll ein Modul nur für Sie als Blogbesitzer (=Administrator) sichtbar sein, fügen Sie stattdessen ein @[Administrator] an.

Beim Aufruf des Blogs wird das obige Beispiel folgendermaßen in der Sidebar angezeigt — natürlich nur, wenn man über die Berechtigung Contributor oder höher verfügt:

module2role/role08.jpg

Wie man sehen kann, entfernt die Routine vor der Anzeige des Moduls den Berechtigungszusatz aus der Überschrift.

Verfügt man als Aufrufer der Webseite nicht über die erforderliche Berechtigung, wird das betreffende Modul aus der Sidebar-Anzeige entfernt.

Auf diese Weise können Sie nun alle in Ihrer Sidebar angezeigten Module — so das Sinn macht — nacheinander gewünschten Berechtigungsgruppen zuordnen. Hat ein Modul keinen Berechtigungszusatz, so bleibt es grundsätzlich für alle Blogbesucher sichtbar.

Um diesen Beitrag zu drucken, klicken Sie bitte in der Menüzeile oben rechts auf das Druckersymbol

© 2014 NeonWilderness — module2role ist OpenSource und lizensiert unter MIT.Quellcode
So viel hilfreiche Arbeit - und keiner sagt bisher Danke?

Liebe Grüße!
Ach ja - und: Danke! ;-)
Lo

Verdelli, Herr Lo, so is dat oft im Leben, ne? Nich ma vonn die tüdelige Tussnelda, die mit dat Problem herumklamüsert hat. So'n Killefitt! Dat sind doch allet Paselacken, sach ich Sie! Ers machense Halligalli un moppern rum bisse die Pimpernellen kriechs, dann kommse mit ner Schickobellolösung umme Ecke und dann kannze den ganzen Schisselameng doch inne Tonne kloppen. Verdorri nomma, wat en Kack!

Isch sach Danke für Ihre nette Worte, Herr Lo! Bissen Kumpel, hömma! Ich muss! Schückes!

So sind se, de Menschen, aber et gibbt keine anderen. Hat auch schon der olle Adenauer gesacht.
Bissi Tage, nache Dunkelheit, falls et Licht bei Twonight wieder angehen sollte ;-)
Du, ich glaube, die Headline "Berechtigungsprüfung...." lässt die geneigte (oder auch die aufrecht gehende) Leserschaft nicht vermuten, welcher Praxis-Schatz dahinter verbirgt.
Ist nur so´n Gefühl....
Hm, das ist wohl wahr, dass die ziemlich langweilig klingt, aber mir fiel keine bessere Alternative ein. Und wenn ich "Praxis-Schatz" nähme, klickten einige doch gleich wieder in der Hoffnung auf eine spärlich bekleidete Zahnarztgehilfin. Wie man's macht... ;)
Vielleicht so? Als laufende "Serie"?

> Neons Twoday-Tipp 1: Blog.Export
> Neons Twoday-Tipp 2: Berechtigungen

Es wäre so schade, wenn Deine Tipps (und damit Deine ganze Arbeit) unbemerkt unterginge ;-)
Und danach muss noch das Honorar von Twoday an Dich verhandelt werden! ;-))

Watt meinze?

Danke Lo, das ist ein guter Vorschlag zur Benamsung! Werde ich umsetzen, sobald ich mit den restlichen ungeplanten Wartungsarbeiten durch bin.

P.S. Honorar erwarte und möchte ich keines: a. macht das auch Spaß, die Plattform für Twoday-Free-User zu verbessern, b. tut das auch ziemlich Not und c. will man doch das enge finanzielle Twoday-Gerüst knallgraus nicht noch mehr ins Wanken bringen. Alles gut! ;)

Sehe ich genau so...
;-)
Außergewöhnliches
Dinge, die gut sind
Entgleisungen
Gemalte Lebenserfahrung
Musik
Nachtgedanken
Neon-Award
Neon's Must-Have-Tools
Neon's Top10 List
Schöner Bloggen
Today I Learned
Wort des Tages
Profil
Abmelden
Weblog abonnieren
Meine Layouts
Meine bearbeiteten Skins
Hauptseite (Site.page)
Toolbar (Site.foundationToolbar)
Github Neon
Gitlab twoday.net
Font Awesome Cheatsheet v4