Einsatz von Expertenregeln
Bei komplizierten Sichtbarkeits- und Zugangsregeln können Sie den Expertenmodus verwenden. Dies erlaubt Ihnen, die Sichtbarkeit und den Zugang eines Kursbausteines frei nach Ihren Bedürfnissen zu konfigurieren. Beispielsweise können Sie den Zugang zu einem Kursbaustein nur für bestimmte Benutzernamen freischalten oder mehrere Einschränkungen miteinander verknüpfen. Klicken Sie in den Tabs „Sichtbarkeit“ und „Zugang“ auf „Expertenmodus anzeigen“, um im Eingabefeld Ihre Expertenregeln zu definieren.
Konfiguration von Expertenregeln
Eine Expertenregel prüft, ob ein Attribut einen bestimmten Wert besitzt.
Attribut | Beschreibung | Beispiel Expertenregel |
---|
isGuest | nur für Gäste zugänglich | isGuest(0) |
isCourseCoach | nur für Benutzer verfügbar, die eine Gruppe betreuen | isCourseCoach(0) |
isUser | nur für einen bestimmten Benutzer verfügbar | isUser("pmuster") |
Eine ausführliche Liste aller wichtigen Bestandteile für die Expertenregeln finden Sie in der nachfolgenden Box.
Funktionen, Operatoren und weitere Bestandteile der Expertenregeln
Typ | Syntax | Bedeutung |
---|
Konstanten | TRUE oder 1 | Wahr |
FALSE oder 0 | Falsch |
Variable | now | Momentane Server-Systemzeit |
Funktionen | date("[date]") | Datum abfragen |
inLearningGroup("[string]") | Gibt TRUE für alle Mitglieder der Lerngruppe [string] |
inRightGroup("[string]") | Gibt TRUE für alle Mitglieder der Rechtegruppe [string] |
isLearningGroupFull("[string]") | Gibt für die angegebene Lerngruppe den Boolean TRUE (=voll) oder FALSE (=nicht voll) zurück. |
isUser("[string]") | Gibt TRUE für den Benutzer mit dem Benutzernamen [string] |
inLearningArea("[string]") | Gibt TRUE für alle Mitglieder der Gruppen im Lernbereich [string] |
isGlobalAuthor(0) | Gibt TRUE für alle Mitglieder der OLAT-Autorengruppe |
isCourseAdministrator(0) | Gibt TRUE für alle Besitzer Ihres Kurses (Lernressource) |
isCourseCoach(0) | Gibt TRUE für alle Benutzer, die eine Lerngruppe oder den gesamten Kurs betreuen |
isCourseParticipant(0) | Gibt TRUE für alle Teilnehmer des Kurses |
isGuest(0) | Gibt TRUE für alle Benutzer, die OLAT als Gäste besuchen |
hasAttribute("[AttrName]","[string]") | Gibt TRUE, wenn [string] dem Wert des AAI-Attributes [AttrName] des jeweiligen Benutzers entspricht. |
isInAttribute("[AttrName]","[substring]") | Gibt TRUE, wenn [substring] einem Teil des Wertes des AAI-Attributs [AttrName] des jeweiligen Benutzers entspricht. AAI - Generelle Informationen AAI-Attribute Spezifikation der AAI-Attribute (pdf-Datei) |
getUserProperty("userPropertyname") | Gibt den Wert des spezifizierten Benutzerattributes zurück. Mit "=" kann dieser Wert mit einem fixen Wert verglichen werden. |
getPassed("[integer]") | Gibt vom Kursbaustein mit spezifizierter ID den Boolean TRUE (=Bestanden) oder FALSE (=Nicht bestanden) zurück |
getScore("[integer]") | Gibt vom Kursbaustein mit spezifizierter ID die Anzahl Punkte zurück |
getAttempts("[integer]") | Gibt vom Kursbaustein mit spezifizierter ID die Anzahl abgeschlossener Versuche zurück. Kann auf Kursbausteine vom Typ Test, Selbsttest, Fragebogen (mögliche Rückgabewerte 0 oder 1) und Aufgabe (deprecated) (Rückgabewert = Anzahl abgegebener Dateien) angewendet werden. |
getLastAttemptDate("[integer]") | Gibt vom Kursbaustein mit spezifizierter ID das Datum des letzen Versuches zurück. Die Anwendung ist gleich wie die getAttempts Methode. |
getInitialEnrollmentDate("[integer]") | Gibt vom Kursbaustein Einschreibung mit spezifizierter ID das Datum des erstmaligen Einschreibens des betreffenden Kursteilnehmers zurück. |
getRecentEnrollmentDate("[integer]") | Gibt vom Kursbaustein Einschreibung mit spezifizierter ID das Datum des letzten Einschreibens des betreffenden Kursteilnehmers zurück. |
getInitialCourseLaunchDate(0) | Gibt das Datum des erstmaligen Kursbesuchs des betreffenden Kursteilnehmers zurück. |
getRecentCourseLaunchDate(0) | Gibt das Datum des letzten Kursbesuchs des betreffenden Kursteilnehmers zurück. |
getPassedWithCourseId("[integer-1]","[integer-2]") | Gibt vom Kursbaustein mit ID=[integer-2] des Kurses mit ID=[integer-1] den Boolean TRUE (=Bestanden) oder FALSE (=Nicht bestanden) zurück |
getScoreWithCourseId("[integer-1]","[integer-2]") | Gibt vom Kursbaustein mit ID=[integer-2] des Kurses mit ID=[integer-1] die Anzahl Punkte zurück |
Einheiten | min | Minuten |
h | Stunden |
d | Tage |
w | Wochen |
m | Monate |
Operatoren | = | gleich |
> | grösser als |
< | kleiner als |
>= | grösser gleich |
<= | kleiner gleich |
* | Multiplikation |
/ | Division |
+ | Addition |
- | Subtraktion |
Booleans | & | Logisches UND |
| | Logisches ODER |
Es gibt verschiedene Möglichkeiten, die einzelnen Regeln miteinander zu verknüpfen. Die beiden wichtigsten Operatoren zur Verknüpfung von Attributen sind:
- UND-Verknüpfung: &
- ODER-Verknüpfung: |
Bitte beachten Sie, dass eine ODER-Verknüpfung vor einer UND-Verknüpfung gemacht wird. Damit die UND-Verknüpfung zuerst gemacht wird, müssen Klammern gesetzt werden.
Beispiel: Die Expertenregel (inGroup("Teilnehmende Intensivkurs") & isCourseCoach(0)) lässt entweder Teilnehmende des Intensivkurses oder alle Gruppenbetreuer auf den Kursbaustein zugreifen.
Nachfolgend sind einige Beispiele aufgeführt, die Ihnen zeigen, wie Sie die Expertensyntax verwenden können.
Beispiele für Expertenregeln in den Tabs «Sichtbarkeit», «Zugang» und «Punkte» (Struktur-Baustein)
isGuest(0) oder isGuest(0)=1 oder isGuest(0)=true Ausschliesslich Gäste haben Zugang auf den Kursbaustein.
|
inLearningGroup("Anfänger") = 0 Mit Ausnahme der Gruppe «Anfänger» ist der Kursbaustein für alle Kursteilnehmer sichtbar.
|
(now >= date("22.03.2004 12:00")) & (now <= date("23.08.2004 18:00")) | inLearningGroup("Betreuer") Der Kursbaustein ist zwischen dem 22.03.2004 und 23.08.2004 für alle Kursteilnehmer sichtbar, während er für Mitglieder der Lerngruppe «Betreuer» jederzeit sichtbar ist.
|
(now >= date("03.09.2004 00:00")) & (now <= date("13.10.2004 00:00")) & inRightGroup("Assessoren")| isUser("autor") Der Kursbaustein ist zwischen dem 03.09.2004 und 13.10.2004 für alle Kursteilnehmer der Rechtegruppe «Assessoren» sichtbar, während er für die Person mit dem Benutzernamen «autor» jederzeit sichtbar ist.
|
hasAttribute("swissEduPersonStudyBranch3","6200") Ausschliesslich Studierende der Humanmedizin haben Zugriff auf den Kursbaustein. Siehe auch: AAI-Attribute Spezifikation der AAI-Attribute (pdf-Datei)
|
hasAttribute("swissEduPersonHomeOrganization","uzh.ch") Ausschliesslich Studierende der Universität Zürich haben Zugriff auf den Kursbaustein. Siehe auch: AAI-Attribute Spezifikation der AAI-Attribute (pdf-Datei)
|
isInAttribute("surname","Mue") Gibt TRUE für alle Personen, deren Attribut surname die Buchstabenfolge "Mue" enthaltet. Gibt z.B. TRUE für den Wert "Mueller" oder "Muehlebacher" Siehe auch: AAI-Attribute Spezifikation der AAI-Attribute (pdf-Datei)
|
isInAttribute("eduPersonEntitlement","http://vam.uzh.ch") Gibt TRUE für alle Personen, deren Attribut eduPersonEntitlement den Wert "http://vam.uzh.ch" enthaltet. Gibt z.B. auch TRUE für den Wert "http://vam.uzh.ch/surgery" Siehe auch: AAI-Attribute Spezifikation der AAI-Attribute (pdf-Datei)
|
(getUserProperty("orgUnit") = "Sales") Prüft ob eine Person in der Organisationseinheit "Sales" ist. Sinnvoll z.B. wenn die Daten automatisiert aus LDAP übernommen werden.
|
(getPassed("69742969114730") | getPassed("69742969115733") | getPassed("69742969118009")) * 10 Diese Regel wird im Tab «Punkte» -> «Punkte verarbeiten» des Bausteins Struktur gesetzt. Der Baustein Struktur zeigt 10 Punkte, wenn einer der Tests (Kursbaustein-IDs "69742969114730", "69742969115733" oder "69742969118009") bestanden wurde, sonst 0 Punkte.
|
(getScore("69742969114730") + getScore("69742969115733") + getScore("69742969118009")) >= 140 | getPassed("69978845384688") Diese Regel wird im Tab «Punkte» -> «Bestanden wenn» des Bausteins Struktur gesetzt. Der Bausteins Struktur zeigt ein «Bestanden», wenn in allen Tests zusammen minimal 140 Punkte erzielt werden oder wenn manuell ein «Bestanden» gesetzt wird (Kursbaustein Bewertung mit ID "69978845384688").
|
getAttempts("70323786958847") > 0 Gibt TRUE, sobald der betreffende Kursteilnehmer den Test mit spezifizierter ID ein erstes Mal abgeschlossen hat.
|
getAttempts("70323524635734") <= 3 Gibt FALSE, sobald der betreffende Kursteilnehmer mehr als 3 Dateien in den Abgabeordner des Kursbaustein Aufgabe (deprecated) gelegt hat.
|
getLastAttemptDate("70323524635734") + 24h < now Gibt TRUE, wenn der letzte Testversuch 24 Stunden zurückliegt.
|
getInitialEnrollmentDate("70323786958847") <= date("26.5.2005 18:00") Gibt TRUE für diejenigen Kursteilnehmer, die sich vor 18 Uhr des 26. Mai 2005 über den Kursbaustein Einschreibung mit spezifizierter ID in eine zur Auswahl stehende Gruppe eingeschrieben haben.
|
getInitialEnrollmentDate("70323786958847") + 2h > now Gibt TRUE während zwei Stunden ab Einschreibezeitpunkt für diejenigen Kursteilnehmer, die sich über den Kursbaustein Einschreibung mit spezifizierter ID in eine zur Auswahl stehende Gruppe eingeschrieben haben. So kann abgebildet werden, dass jeder Kursteilnehmer nur während einer bestimmten Zeitdauer z.B. ein Skript bearbeiten kann.
|
(getInitialCourseLaunchDate(0) >= never) | (getInitialCourseLaunchDate(0) + 2h > now) Gibt TRUE, wenn der Kursteilnehmer den Kurs noch nicht besucht hat oder während zwei Stunden seit dem ersten Kursbesuch. So kann abgebildet werden, dass jeder Kursteilnehmer nur während einer bestimmten Zeitdauer den Kurs sehen kann.
|
(getRecentCourseLaunchDate(0) + 10min < now) Gibt TRUE, wenn sich der Benutzer seit mehr als 10 Minuten im Kurs bewegt.
|
(getCourseBeginDate(0) <= today) & (getCourseEndDate(0) >= today) Gibt den Wert TRUE zurück, wenn das heutige Datum zwischen Beginn- und Enddatum des Durchführungszeitraums des Kurses liegt.
|
isAssessmentMode(0) Gibt TRUE sobald der Kurs innerhalb eine Prüfung ist. |
Einsatz von AAI-Attributen
Wenn Sie sich an einer Schweizer Hochschule befinden, oder einer anderen Institution die auf eine AAI - Infrastruktur Zugriff hat, können Sie mit AAI-Attributen im Kurs Zugriffsregeln setzen, damit nur Kursteilnehmer mit bestimmten Benutzerattributen (z.B. Teilnehmer, die einer bestimmten Institution angehören) auf das Kursmaterial zugreifen können. Die Abkürzung AAI steht für „Authentication and Authorization Infrastructure“ und ermöglicht es Angehörigen einer Hochschule, mit nur einem Benutzernamen und Passwort Zugriff auf Systeme aller teilnehmenden Hochschulen zu erhalten. Weitere Informationen zu AAI finden Sie z.B. bei Switch oder dem deutschen Forschungsnetz.
Verfügbare Attribute und mögliche Werte sind in der AAI Attribute Specification bei Switch (Dokument in englischer Sprache) und DFN-AAI beschrieben. Zwei an schweizer Hochschulen häufig gebrauchte Attribute und Beispiele der entsprechenden Expertenregeln finden Sie in der folgenden Tabelle:
Attribut | Beschreibung | Beispiel Expertenregel und Erklärung |
---|
swissEduPerson-HomeOrganization | Universität oder Heimorganisation | hasAttribute ("swissEduPersonHomeOrganization", "uzh.ch"): Nur Angehörige der Universität Zürich sind zugelassen. |
swissEduStudyBranch3 | Studienrichtung 3. Klassifikation | hasAttribute ("swissEduPersonStudyBranch3","6400"): Nur Studierende der Studienrichtung Veterinärmedizin sind zugelassen. |
Anwendung
Sie können AAI-Attribute mit der Syntax
hasAttribute("[AttrName]","[string]") oder
isInAttribute("[AttrName]","[substring]") abfragen.
Dabei gilt folgendes:
[AttrName] | ist der Attributnamen, den Sie in der nachfolgenden Tabelle und auch in der Spezifikation der AAI-Attribute (pdf-Datei) (Spalte LDAP Namen) auf Seite 5 vorfinden. |
[string] | ist der Wert des AAI-Attributes mit Namen [AttrName]. |
[substring] | ist ein beliebig grosser Teil von [string]. |
Werte für Hans Muster
Variable Sie können AAI-Attribute mit der Syntax hasAttribute("[AttrName]","[string]") oder isInAttribute("[AttrName]","[substring]") abfragen. | Beispiel Wert [string] | Beschreibung |
---|
swissEduPersonUniqueID | 845938727494@uzh.ch | Eindeutige persönliche Identifikationsnummer |
surname | Muster | Nachname |
givenName | Hans | Vorname |
mail | hans.muster@uzh.ch | Bevorzugte E-Mail-Adresse |
swissEduPersonHomeOrganization | uzh.ch | Heimorganisation/Universität |
swissEduPersonHomeOrganizationType | university | Art der Heimorganisation |
eduPersonAffiliation | student | Funktion innerhalb der Heimorganisation |
swissEduPersonStudyBranch1 | 4 | Studienrichtung 1. Klassifikation |
swissEduPersonStudyBranch2 | 42 (=Naturwissenschaften) | Studienrichtung 2. Klassifikation |
swissEduPersonStudyBranch3 | 4600 (=Chemie) | Studienrichtung 3. Klassifikation |
swissEduPersonStudyLevel | 15 | Beschreibung des Studien-Fortschrittes |
eduPersonEntitlement | http://vam.uzh.ch/surgery | Zugriffsrecht auf Ressource |
employeeNumber | 01-234-567 | Matrikelnummer (nur für Studierende der Universität Zürich) |
organizationalUnit | 1 | Einheit der Heimorganisation z.B. Fakultät (nur für Mitarbeiter) |
Für das obige Beispiel Hans Muster würden nachfolgende Abfragen jeweils ergeben:
isInAttribute("surname","ust") | true |
hasAttribute("swissEduPersonStudyBranch3","4600") | true |
hasAttribute("swissEduPersonStudyBranch3","1200") | false |
isInAttribute("eduPersonEntitlement","http://vam.uzh.ch") | true |
isInAttribute("eduPersonEntitlement","http://vam.uzh.ch/ophthalmology") | false |
hasAttribute("employeeNumber","01-234-567") | true |
Einen Link zur Liste der möglichen Attribut-Werte finden Sie im Appendix der Spezifikation der AAI-Attribute (pdf-Datei) ab Seite 20. Spezifikation der AAI-Attribute (pdf-Datei)
Für weitere Informationen zu Werten oder der Anwendung von AAI-Attributen, wenden Sie sich in der Schweiz bitte an Switch, und in Deutschland an das Deutsche Forschungsnetz.