2019.06 2020.06

Integration in die MIR-Applikationen

Dieser Abschnitt beschreibt, wie für die Präsentation der Daten die Integration der Zugriffstest erfolgen kann.

Rechte in Skeleton und MIR

Für MyCoRe-Objekte können folgende Rechte spezifiziert werden:

  • read -> Nutzer darf dieses Objekt lesen
  • view -> Nutzer darf das Elternobjekt dieses Objektes lesen
  • write -> Nutzer darf dieses Objekt bearbeiten
  • delete -> Nutzer darf Objekt mit dieser ID löschen
  • addurn -> Nutzer hat das Recht eine URN für dieses Objekt zu erzeugen
  • accKeyEnabled -> Zugriffsschlüssel-Strategie wird verwendet
  • readKey -> Leseschlüssel für dieses Objekt ist hinterlegt
  • writeKey -> Schreibschlüssel für dieses Objekt ist hinterlegt

Aktuell nur in der MIR-Anwendung verfügbar gibt es ein Stylesheet (mir-rights.xsl), das diese Informationen sammelt und in XML-Form an die Metadaten anhängt.

1
2
3
4
5
6
7
8
<mycoreobject xsi:noNamespaceSchemaLocation="datamodel-mods.xsd" ID="mir_mods_00000005" label="mir_mods_00000005" version="2015.03-SNAPSHOT">
  [...]
  <rights>
    <right id="mir_mods_00000005" view="" read=""/>
    <right id="mir_mods_00000006" read=""/>
    <right id="Document_derivate_00000008" view="" read=""/>
  </rights>
</mycoreobject>

So wird für das Objekt selbst und alle Kind- und Elternobjekte ein Eintrag angefügt, der wenn das jeweilige Recht verfügbar ist, dies als Attribut mit leerem Wert enthält. Dieses XML kann dann in den Stylesheets ausgewertet werden, ohne jedesmal über einen URI-Aufruf die ACL erneut abzufragen.

1
2
3
4
<xsl:key use="@id" name="rights" match="/mycoreobject/rights/right" />
[...]
<xsl:param name="accessedit" select="key('rights', $id)/@write" />
<xsl:param name="accessdelete" select="key('rights', $id)/@delete" />