[Kobv-opus-tester] 4.4.3 Problem mit OAI-Schnittstelle, Dateidownload funktioniert nicht

Jens Schwidder schwidder at zib.de
Do Jul 17 14:30:47 CEST 2014


Liebe Frau Lapp,

vielen Dank für Ihre Problemmeldung und die ausführliche Beschreibung. 
Nachdem ich mir den Code angeschaut habe, denke ich, wir haben durch 
unsere Änderungen in OPUS 4.4.3, die Zugriffskontrolle evtl. strenger 
als notwendig gemacht. Sie haben recht, vorher war der Eintrag in der 
Tabelle "access_documents" nicht notwendig, sobald das Dokument im 
Zustand "published" war.

Wir werden das hier diskutieren und versuchen für 4.4.4 eine Lösung 
umzusetzen. Ich denke die Prüfung, ob "guest" Zugriff auf das OAI-Modul 
hat wäre eine Möglichkeit, aber das muss noch einmal geprüft werden.

Das Security-Modell sollte vereinfacht werden, aber dafür gibt es noch 
keine genauen Pläne.

Viele Grüße,
Jens Schwidder

On 07/16/2014 06:29 PM, Bettina Lapp wrote:
> Liebe OPUS4-Entwickler,
>
> uns ist aufgefallen, dass seit dem Update auf 4.4.3 unsere
> Print-on-Demand Funktion nicht mehr geht. Grund war, dass der Download
> der Datei z.B. analog der URL
> http://opus.bibliothek.uni-augsburg.de/opus4/oai/container/index/docId/2732
> mit einer Zugriff verweigert-Meldung abgewiesen wird (im OPUS-Log: ERR
> (3, ID 53c670982c302): Oai_Model_Container: access to document with id
> 2732 is not allowed for current user), obwohl VisibleInOAI auf true
> gesetzt ist.
>
> In oai/models/Container.php wird eine entsprechende Exception und
> Logmeldung erzeugt, wenn $realm->checkDocument($this->docId) false
> zurückgibt. In unserer Datenbank (ursprünglich von OPUS3 migriert) sind
> nun in der Tabelle access_documents keine Einträge für die Nutzerrolle
> guest drin, wenn ich den Code in library/Opus/Security/Realm.php richtig
> verstehe, wird aber in checkDocument() geschaut, ob es eine Zuordnung
> user_role-document_id dort gibt.
>
> Ich denke mal, in Oai_Model_Container muss eine andere Methode gefunden
> werden, um zu prüfen ob ein Dokument via OAI heruntergeladen werden
> darf... vielleicht, indem man prüft, ob die Nutzerrolle guest Zugriff
> auf das Modul OAI hat? (bei uns natürlich der Fall).
> Im jetzigen Zustand jedenfalls ist bei uns effektiv die
> OAI-Schnittstelle lahmgelegt.
>
> Für's erste hab ich den entsprechenden Code in Container.php
> auskommentiert, prüft jetzt nur noch ob das Dokument im published
> Zustand ist - unsere OPUS-Instanz ist ja im Produktivbetrieb, die
> OAI-Schnittstelle muss funktionieren.
>
> Ist aber nur ein Workaround - ich weiß nicht, was die saubere Lösung
> wäre, sollten wir vielleicht unsere Datenbank anpassen, und die
> access_xxx-Tabellen füllen? Für Hinweise, auch zur künftigen Planung des
> Security-Modells, wäre ich dankbar.
>
> viele Grüsse, Bettina Lapp
>

-- 
==============================================================
Jens Schwidder
Kooperativer Bibliotheksverbund Berlin-Brandenburg (KOBV)
c/o Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB)
Takustr. 7, D-14195 Berlin
Telefon: (030) 841 85 - 308
Telefax: (030) 841 85 - 269
  E-Mail: schwidder at zib.de
     WWW: http://www.kobv.de
==============================================================



Mehr Informationen über die Mailingliste Kobv-opus-tester