Hinweis: Sie sind auf den Seiten der Moodle 1.9 Dokumentation. Die Dokumentation der aktuellsten Moodle-Version finden Sie hier: Das Skript rolesdebug.php.

Das Skript rolesdebug.php: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Zeile 58: Zeile 58:
===Schritt 2===
===Schritt 2===


Öffnen Sie ein neues Browser-Fenster. Geben Sie in diesem Fenster die URL des Skripts ''rolesdebug.php''ein. Die Skript-URL müsste ungefähr so aussehen: ''http://ihreseite/moodle/rolesdebug.php''.
Öffnen Sie ein neues Browser-Fenster. Geben Sie in diesem Fenster die URL des Skripts ''rolesdebug.php'' ein. Die Skript-URL müsste ungefähr so aussehen:  
 
http://ihreseite/moodle/rolesdebug.php  
 
Das Skript wird nicht nach einem Login fragen, da Sie bereits eingeloggt sind. Sie werden gebeten, drei Eingaben zu machen:
Das Skript wird nicht nach einem Login fragen, da Sie bereits eingeloggt sind. Sie werden gebeten, drei Eingaben zu machen:
*CAPABILITY (FÄHIGKEIT). Falls Sie nur Ihre Rollenzuweisungen und -änderungen sehen wollen, können Sie dieses Feld leer lassen. Falls Sie ein bestimmtes Recht analysieren möchten, müssen Sie hier den Namen der entsprechenden Fähigkeit eingeben. Wenn Sie also z.B. an der Fähigkeit interessiert sind, die steuert, wie und ob Sie an einem Test teilnehmen können, geben Sie [[Capabilities/mod/quiz:attempt | mod/quiz:attempt]] ein.
*capability (Fähigkeit). Falls Sie nur Ihre Rollenzuweisungen und -änderungen sehen wollen, können Sie dieses Feld leer lassen. Falls Sie ein bestimmtes Recht analysieren möchten, müssen Sie hier den Namen der entsprechenden Fähigkeit eingeben. Wenn Sie also z.B. an der Fähigkeit interessiert sind, die steuert, wie und ob Sie an einem Test teilnehmen können, geben Sie [[Capabilities/mod/quiz:attempt | mod/quiz:attempt]] ein.
*CONTEXT TYPE. Wählen Sie eine der folgenden Angaben aus dem Dropdown-Menü:  
*context type. Wählen Sie eine der folgenden Angaben aus dem Dropdown-Menü:  
**COURSE (KURS)
**System
**MODULE (MODUL)
**User (Nutzer)
**BLOCK
**Course category (Kursbereich)
**COURSECAT (KURSBEREICH)
**Course (Kurs)
**USER (NUTZER)
**Module (Modul)
**SYSTEM
**Block
*CONTEXT ID. Die Kontext-ID ist eine Nummer am Ende der URL der Seite, die Sie in [[Das_Skript_rolesdebug.php#Schritt 1 | Schritt 1]] gefunden haben. Siehe [[Das_Skript_rolesdebug.php#Wie man die Kontext-ID feststellt | Wie man die Kontext-ID feststellt]].
*context id. Die Kontext-ID ist eine Nummer am Ende der URL der Seite, die Sie in [[Das_Skript_rolesdebug.php#Schritt 1 | Schritt 1]] gefunden haben. Siehe [[Das_Skript_rolesdebug.php#Wie man die Kontext-ID feststellt | Wie man die Kontext-ID feststellt]] weiter unten.


MODULE bezeichnet sowohl Lernaktivität als auch Arbeitsmaterial. Es gibt keinen Startseitenkontext. Wenn Sie sich auf den Startseitenkontext beziehen möchten, wählen Sie COURSE (KURS) und eine Kontext-ID 1.
Mit Modul ist entweder eine Lernaktivität oder ein Arbeitsmaterial gemeint. Es gibt keinen Site-Kontext (Kontext der Starsteite). Wenn Sie sich auf den Kontext der Startseite beziehen möchten, wählen Sie ''course (Kurs)'' und die Kontext-ID 1.


Ein Beispiel für eine Eingabe:  
Ein Beispiel für eine Eingabe:  
<<hier kommt ein Bild>>
 
[[Bild:sample_input_quiz_attempt.png]]


===Schritt 3===  
===Schritt 3===  

Version vom 24. Mai 2008, 17:44 Uhr

Baustelle.png Diese Seite ist noch nicht vollständig übersetzt.

Siehe en:The_rolesdebug.php_roles_debugging_script

Moodle1.9

Das Skript rolesdebug.php ist ein eigenständiges PHP-Skript, das sehr nützlich für das Debuggen von Problemen im Zusammenhang mit Rollen und Rechten ist. Die Ausgabe des Skripts kann von jedem mit guten Kenntnissen über das [[Rollen und Rechte|Rollen- und Rechtesystem]] System interpretiert werden. Sollten Sie ein "Rollen-Neuling" sein und Hilfe im Zusammenhang mit Rollen und Rechten benötigen, bitten Sie einen Rollen-Experten, Ihnen bei der Ausführung und Interpretation des Skripts zu helfen. Wenn Ihnen kein Rollen-Experte zur Verfügung steht, posten Sie einen Hilferuf im Roles and Capabilities forum im Kurs "Using Moodle" auf moodle.org. Wenn Sie das Skript ein paar Mal benutzt haben, sind auch Sie sicher bald ein Experte!

Sie können das Skript rolesdebug.php aus der Modules and Plugins Datenbank herunterladen. Zur Installation des Skripts speichern Sie es einfach im Moodle-Hauptverzeichnis (dort wo alle PHP-Skripte von Moodle gespeichert sind) oder in einem beliebigen Unterverzeichnis des Moodle-Hauptverzeichnis.

Das Skript rolesdebug.php erfordert eine Anmeldung. Es kann also nur ein angemeldeter Moodle-Nutzer das Skript benutzen. Da es sich um ein PHP-Skript handelt, sehen Sie die Ausgabe in Ihrem Browser. Es kann nur von Ihnen eingesehen werden, es sei denn, es schaut Ihnen jemand über die Schulter ;-). Außerdem gibt rolesdebug.php Ihnen nur Informationen über IHRE Rechte. Sie können es also nicht verwenden, um sich über die Rechte eines anderen Nutzers zu informieren (es sei denn, Sie können sich als diese Person einloggen.)

Das Skript rolesdebug.php gibt eine Tabelle mit einer Übersicht über die Rollenzuweisungen und Änderungen von Zugriffsrechten, die Sie in einem angegebenen Kontext betreffen, aus. Anhand dieser Tabelle können Sie sehen, wie Moodle ein Recht für eine gegebene Fähigkeit berechnet. Das Format der Tabelle wird mit vielen Beispielen im Artikel Wie Rechte berechnet werden erläutert.

Das Skript rolesdebug.php liest Rechte-Daten aus der Moodle-Datenbank aus, verändert sie aber in keiner Weise. In dieser Hinsicht ist das Skript vergleichbar mit anderen Debug-Skripts der Moodle-Standardinstallation, wie z.B. der TeX-Debugger.

Wann verwenden Sie das Skript rolesdebug.php?

Ein typische Anwendungsfall ist eine Situation, in der ein "Rollen-Experte" einem "Rollen-Neuling" bei der Lösung eines rollenspezifischen Problems hilft. Ein "Rollen-Experte" ist ein Moodle-Nutzer, der ein gutes Verständnis der im nächsten Abschnitt aufgelisteten grundlegenden Begriffe hat. Ein "Rollen-Neuling" ist ein Moodle-Nutzer, der einfache Anweisungen des "Rollen-Experten" befolgen kann. Während es durchaus vorkommen kann, dass Experte und Neuling sich am gleichen Ort befinden und Nutzerkonten auf der gleichen Moodle-Installation haben, ist das nicht zwingend notwendig. Der Experte müsste dem Neuling helfen können, ohne sich auf der Moodle-Installation des Neulings einzuloggen, indem er mit dem Neuling nur über E-Mail, Messaging oder Forumsbeiträge kommuniziert. Der Neuling könnte z.B ein Nutzer sein, der in einem Forum auf moodle.org gepostet hat, während der Experte ein Moodler ist, der gerne helfen möchte. Sogar wenn Experte und Neuling sich in der gleichen Institution befinden und beide Nutzerkonten auf der gleichen Moodle-Installation haben, kann es sein, dass der Experte nicht in der Lage ist, direkt zu helfen (z.B. indem er sich als der Neuling anmeldet oder sich mit ihm trifft - der Experte könnte z.B. ein sehr eingespannter Moodle-Administrator sein). Auch in diesem Fall hilft das Skript rolesdebug.php.

Hier ist ein typisches Szenario: Angenommen der Neuling ist ein Trainer, der eine Lernaktivität Test angelegt hat, aber aus unbekannten Gründen nicht in der Lage ist, sich die Vorschau des Tests anzusehen. Der Neuling berichtet über sein Problem in einem Forumsbeitrag auf moodle.org. Der Experte (ein hilfsbereiter Moodler ;-)) geht von einem rollenspezifischen Problem aus und bittet den Neuling folgendes zu tun:

  • sich in Moodle einzuloggen, um das Problem zu reproduzieren
  • das Skript rolesdebug.php aufzurufen
  • zwei oder drei Parameter nach Anweisung einzugeben
  • die Ausgabe von rolesdebug.php in einem Forumsbeitrag zu posten. Der Experte sieht sich die Ausgabe an und erkennt sofort das Problem.

Andere Fälle für den Einsatz des Skripts rolesdebug.php sind u.a.:

  • ein Nutzer, der sein eigenes Problem analysiert und löst
  • ein Nutzer, der das Problem eines anderen Nutzers löst, während er als dieser Nutzer eingeloggt ist

Bitte beachten Sie, dass beide Fälle äquivalent sind, da es in beiden Fällen nur einen Akteur gibt (den Experten). Der Einfachheit halber beschreibt der Artikels im folgenden nur diesen Fall und bezieht sich immer auf SIE. Unter Berücksichtigung des Hauptanwendungsfalls sollte eigentlich immer klar sein, wann "Sie" den Experten und wann den Neuling meint.

Grundlegende Begriffe

Die Interpretation der Ausgabe des Skripts rolesdebug.php ist nur mit einem guten Verständnis der unten stehenden Begriffe möglich. Wenn Ihnen einer der Begriffe unklar ist, sollten Sie sich den entsprechenden Artikel durchlesen.

Überblick über die Anwendung des Skripts

Als erstes loggen Sie sich auf Moodle ein und navigieren zu dem Kontext, der Probleme bereitet. Das könnte ein Test sein, den Moodle Sie aus irgendeinem Grund nicht durchführen lässt. Dann gehen Sie, ohne sich auszuloggen, auf die Seite rolesdebug.php (es bietet sich an, dafür einen neuen Browsertab zu verwenden). Geben Sie den relevanten Kontext ein und optional auch den Namen der Fähigkeit, die Sie analysieren möchten. Dann klicken Sie auf den Button Go. Das Skript gibt dann eine Tabelle mit einer Übersicht der Rollenzuweisungen und -überschreibungen aus, die Sie im angegebenen Kontext betreffen. Anhand dieser Tabelle können Sie sehen, warum Moodle Sie den Test nicht durchführen lässt.

Detaillierte Anleitung zur Verwendung des Skripts

Schritt 1

Dieser Schritt erfolgt in Moodle (das Skript selbst wird erst in Schritt 2 verwendet). Loggen Sie sich in Moodle ein und navigieren Sie zu dem Kontext, in dem das Problem auftritt. Dort angekommen, notieren Sie sich die Kontext-ID (diese wird in Schritt 2 benötigt). Wie man die Kontext-ID feststellt, wird später erklärt.

Hinweis: Es ist notwendig, in den Kontext zu navigieren, auch wenn Sie die Kontext-ID schon kennen. Das liegt daran, dass Moodle einige Rechte-Daten erst dann lädt, wenn sie tatsächlich gebraucht werden. Das Navigieren in den jeweiligen Kontext stellt sicher, dass Moodle diese Daten lädt. Wenn also der Zielkontext ein bestimmter Test in einem Kurs ist, dann müssen Sie in diesen Kurs gehen und auf das Test-Icon klicken.

Falls Sie jedoch ein Problem beheben wollen, das mit einer Veränderung der Nutzerpolicy (Nutzereigenschaften) zu tun hat, wie z.B. Website-Administration > Startseite > Einstellungen > Standardrolle für Startseite, müssen Sie sich nach Veränderung der Einstellung zunächst ausloggen und wieder einloggen.

Loggen Sie sich nicht wieder aus!

Schritt 2

Öffnen Sie ein neues Browser-Fenster. Geben Sie in diesem Fenster die URL des Skripts rolesdebug.php ein. Die Skript-URL müsste ungefähr so aussehen:

http://ihreseite/moodle/rolesdebug.php 

Das Skript wird nicht nach einem Login fragen, da Sie bereits eingeloggt sind. Sie werden gebeten, drei Eingaben zu machen:

  • capability (Fähigkeit). Falls Sie nur Ihre Rollenzuweisungen und -änderungen sehen wollen, können Sie dieses Feld leer lassen. Falls Sie ein bestimmtes Recht analysieren möchten, müssen Sie hier den Namen der entsprechenden Fähigkeit eingeben. Wenn Sie also z.B. an der Fähigkeit interessiert sind, die steuert, wie und ob Sie an einem Test teilnehmen können, geben Sie mod/quiz:attempt ein.
  • context type. Wählen Sie eine der folgenden Angaben aus dem Dropdown-Menü:
    • System
    • User (Nutzer)
    • Course category (Kursbereich)
    • Course (Kurs)
    • Module (Modul)
    • Block
  • context id. Die Kontext-ID ist eine Nummer am Ende der URL der Seite, die Sie in Schritt 1 gefunden haben. Siehe Wie man die Kontext-ID feststellt weiter unten.

Mit Modul ist entweder eine Lernaktivität oder ein Arbeitsmaterial gemeint. Es gibt keinen Site-Kontext (Kontext der Starsteite). Wenn Sie sich auf den Kontext der Startseite beziehen möchten, wählen Sie course (Kurs) und die Kontext-ID 1.

Ein Beispiel für eine Eingabe:

sample input quiz attempt.png

Schritt 3

Klicken Sie auf „go“. Rolesdebug.php gibt dann eine Informationsseite aus. Das Hauptelement dieser Seite ist die Tabelle mit der Übersicht aller Rollenzuweisungen und -überschreibungen, die Sie im angegebenen Kontext betreffen.

Wie die Ausgabe zu lesen ist

Unten sehen Sie eine typische Ausgabe für die oben gewählten Parameter. Die ersten drei Zeilen der Ausgabe (1) wiederholen zunächst nur Ihre Eingabewerte, die nächsten zwei Zeilen (2) zeigen, wer SIE sind und geben den Namen des Kontexts an, den Sie gewählt haben. Überprüfen Sie diese Zeilen, um sicher zu gehen, dass Sie der sind der Sie glauben und dass Sie den richtigen Kontext angegeben haben. Für jede Ihrer Rollen sehen Sie eine Zeile in der Form alias = role name, wobei role name der tatsächliche Rollenname und alias das Kürzel ist, das in der Tabelle verwendet wird, um sich auf die Rolle zu beziehen Im Beispiel bedeutet R7 = user, dass die Rolle User (die Kurzform für Authenticated user) in der Tabelle durch das Alias R7 repräsentiert wird. Die Alias werden verwendet, da die langen Rollenbezeichnungen die Tabelle sehr breit werden ließen und Sie so horizontal scrollen müssten. Durch die Verwendung von Alias passt die Tabelle wahrscheinlich in ein Fenster, so dass Sie alles im Blick haben. Dann kommt die Tabelle selbst (4). Weiter unten finden Sie mehr über die Tabelle. Falls Sie eine Fähigkeit angegeben haben, können Sie drei Zeilen direkt nach der Tabelle sehen. (5). Die erste Zeile zeigt das berechnete Recht. Der Wert ist entweder A (Allow / Erlaubt) oder P (Prevent / Verhindern). Die zweite Zeile gibt an, ob Sie alles tun dürfen (Fähigkeit: „Erlaubt alles auszuführen“ moodle/site:doanything ist gegeben). Das ist normalerweise nur der Fall bei Administratoren. Die dritte Zeile gibt an, ob Sie „dies tun dürfen“. Wenn Sie Ihnen die Fähigkeit „Erlaubt alles auszuführen“ gegeben wurde, können Sie das natürlich unabhängig vom berechneten Recht.

Wie man die Tabelle liest

Wenn der Zielkontext N Ebenen tief ist, hat die Tabelle N Zeilen und N Spalten, für jede Kontextebene eine. Im Beispiel gibt es vier Ebenen:

  System
     |
     |
  Kategorie "A"
     |
     |
  Kurs"cooking"
     |
     |
  Modul "quiz-1" (Test-1)

Die Spaltenüberschriften geben die Namen der Kontexte an. Diese werden nach Tiefe sortiert: System, Kategorie A, Kurs cooking, quiz-1 (test-1) Um Platz zu sparen hat die Tabelle keine Zeilenbezeichnungen, da diese den Spaltenüberschriften entsprechen. So würde z.B. Zeile 1 als „System“ und Zeile 4 würde als „quiz-1“ (test-1) bezeichnet werden. Die erste Zeile enthält die Rollenzuweisungen, die auf jeder Kontextebene gemacht wurden. Im Beispiel sieht man, dass R7 (authenticated user) im Systemkontext zugewiesen wurde und im Kurskontext die Rolle R5 (Teilnehmer / Student) Wenn es keine Überschreibungen gibt, (wie in diesem Beispiel) gibt nur Einträge in der Zeile 1. Die Buchstaben N und A in Klammern sind die Werte der Fähigkeiten in den Rollendefinitionen. Die möglichen Werte sind:

  N - Not set (Nicht gesetzt)
  A – Allow (Erlauben)
  P – Prevent (Unterbinden)
  X – Prohibit (Untersagen)

„Nicht gesetzt“ bedeutet, dass die Rolle keine Aussage für diese Fähigkeit trifft. Im Beispiel kann man sehen, dass die Teilnehmer/Student Rolle die Teilnahme an Tests (quiz) erlaubt, während die Authenticated User Rolle nichts über das Durchführen von Tests aussagt. Falls Rollenüberschreibungen existieren, gibt es in anderen Zeilen der Tabelle Einträge. Überschreibungen haben das gleiche Format wie Zuweisungen in Zeile 1. Eine Überschreibung wird in der ZEILE des Kontexts gezeigt, in der die Überschreibung vorgenommen wurde und in der Spalte der Zuweisung, die überschrieben wird. Zur Veranschaulichung überschreiben wir jetzt die Teilnehmer/Student Rolle im Kontext Test (quiz), durch Setzen von „Tests ausprobieren“ (mod/quiz:attempt) auf „Verhindern“. Wenn der Teilnehmer versucht, am Test teilzunehmen, sollte er daran gehindert werden. Wenn das Skript nun ausgeführt wird erhalten wir folgende Ausgabe: Beachten Sie die nun hinzugefügte R5(P). Das ist die Überschreibung. Sie erscheint in der vierten Zeile, da die Überschreibung im Kontext Test (quiz) vorgenommen wurde und befindet sich in der Kursspalte, da die Teilnehmer/Student Rolle im Kontext Kurs zugewiesen wurde. Das berechnete Recht ist P (prevent=verhindern), wie angenommen.

Wie Moodle Rechte berechnet

Für eine vollständige Erklärung wie Rechte berechnet werden, siehe Wie Rechte berechnet werden . Dieser Abschnitt zeigt nur, wie die Berechnung für die hier gegebenen Beispiel funktioniert. Im ersten Beispiel (in dem wir nur Rollenzuweisungen in Zeile 1 hatten), durchsucht Moodle die Tabelle von rechts nach links. Da das erste Recht, das Moodle findet, 'A' (Allowed=erlaubt) ist, ist das berechnete Recht 'A' (Allowed=erlaubt). Als die Überschreibung hinzugefügt wurde, durchsuchte Moodle die Tabelle im Zickzack-Muster, wie nachstehend gezeigt. Da das erste Recht, auf das Moodle trifft 'P' (prevent=verhindern) ist, ist das berechnete Recht auch 'P' (prevent=verhindern).

Wie man die Kontext ID bestimmt

Nachstehend finden Sie die Regeln für das Bestimmen der Kontext ID für jeden Kontexttyp.

KURS

In einem Kurskontext ist die Kontext ID die Kurs-ID. Die Kurs-ID ist aus der URL ersichtlich, die Sie in der Adresszeile Ihres Browsers sehen, wenn Sie auf der Kursseite sind. Wenn man auf den „Features“-Kurs auf demo.moodle.org geht, sieht man folgendes:

Die Kurs-ID und damit auch die Kontext-ID für diesen Kurs ist 2. Falls Moodle Sie aus irgendeinem Grund nicht in den Kurs lässt, Sie aber einen Link auf den Kurs sehen, bewegen Sie Ihren Mauszeiger über den Link, wie unten gezeigt. Ihr Browser zeigt Ihnen nun unten im Fenster die URL an.

Die Startseite einer Moodle Installation ist auch ein Kurs, aber keiner der oben genannten Tricks funktioniert hier. Die Startseiten-ID ist immer 1.

MODUL (Lernaktivität oder Arbeitsmaterial)

In einem Modul Kontext ist die Kontext-ID die ID der Lernaktivität oder des Arbeitsmaterials. Die ID können Sie aus der URL ablesen, die in der Adresszeile Ihres Browsers erscheint, wenn Sie sich sich Lernaktivität oder Arbeitsmaterial anzeigen lassen, oder unten im Browserfenster wenn Sie Ihren Mauszeiger über einen Link bewegen. Hier einige Beispiele:

  http://demo.moodle.org/mod/choice/view.php?id=25
  http://demo.moodle.org/mod/forum/view.php?id=28
  http://demo.moodle.org/mod/lesson/view.php?id=38
  http://demo.moodle.org/mod/quiz/view.php?id=61
  http://demo.moodle.org/mod/resource/view.php?id=10
  http://demo.moodle.org/mod/resource/view.php?id=48

Die Kontext-IDs für diese Module sind 25, 28, 38, 61, 10, and 48.

BLOCK

In einem BLOCK Kontext ist die Kontext-ID die „InstanceID“ des Blocks. Um die InstanceID zu erhalten, schalten Sie Bearbeiten ein und bewegen Sie Ihren Mauszeiger über das Augen-Icon im Blocktitel. Lesen Sie jetzt die InstanceID aus der URL unten in Ihrem Browserfenster. Zum Beispiel:

  http://demo.moodle.org/course/view.php?id=28&instanceid=19...

Die Kontext-ID für diesen Block ist 19. Beachten Sie das nur ein Nutzer, der Bearbeiten einschalten kann, die InstanceID von Blocks auslesen kann.

KURSBEREICH

In einer KURSKATEGORIE Kontext ist die Kontext-ID die Kategorie-ID. Sie können die ID von der URL ablesen, die in der Adresszeile Ihres Browsers erscheint, wenn Sie sich auf der Kategorieseite befinden. Sollte die Moodle-Installation nur eine Kategorie haben (meistens „Verschiedenes“) ist die ID 1. Wenn es mehr als eine Kategoire gibt, ist es am einfachsten, die Kategorie-ID einer bestimmten Kategorie zu ermitteln, wenn es eine Liste oder Kombi-Liste auf der Startseite (oder einen Kurse-Block) gibt. Dann müssen Sie nur den Mauszeiger über einen der Links bewegen. Zum Beipiel:

  http://mysite/course/category.php?id=3

Die Kontext-ID für diese Kategorie ist 3

NUTZER

Im NUTZER Kontext ist die Kontext-ID die Nutzer-ID. Sie können die ID aus der URL ablesen, die in der Adresszeile des Browsers erscheint, wenn Sie sich auf einer Nutzerprofilseite befinden, oder indem Sie Ihren Mauszeiger über den Namen eines Nutzers bewegen und die URL unten im Browserfenster verwenden. Zum Beispiel:

  http://demo.moodle.org/user/view.php?id=6&course=1

Die Kontext-ID für diesen Nutzer ist 6

SYSTEM

Es gibt nur einen SYSTEM Kontext. Seine ID ist 1.

Rolesdebug sagt, dass ich das darf, aber Moodle lässt mich nicht!

Wenn das passiert, liegt es daran, dass Moodle das Recht anders berechnet als Sie annehmen. Hier sind drein Beispiele: Moodle berechnet das Recht in einem anderen Kontext als der von Ihnen angegebene (Moodle berechnet einige Rechte ausdrücklich im System oder Nutzer-Kontext). Wenn Ihnen eine sogenannte Legacy Rolle (eine Rolle aus einer alten Moodle Version), z.B. „Gast“ zugewiesen wurde, ignoriert Moodle möglicherweise das berechnete Recht. Z.B. Gast wurde überschrieben, so dass diese Rolle in Foren posten darf, Rolesdebug zeigt an, dass Sie posten können, aber Moodle ignoriert einfach dieses Recht. Wenn Sie einen Entwickler fragen, warum das so ist, kommt die Antwort „weil Gäste nie posten können“. Sie benötigen zwei oder mehr Rechte, um das auszuführen, was Sie möchten. Wenn so ein Konflikt auftritt, muss genauer untersucht werden, wo das Problem liegt. Häufig findet sich die Lösung in der Dokumentation. So gibt die Dokumentation normalerweise an, wenn ein Recht in einem anderen Kontext berechnet wird. In anderen Fällen muss man leider wirklich den Code lesen.