Nextcloud Repository in Moodle: Nur Dateikopie, kein zugriffsgesteuerter Link, kein eigenes Repository für User

Hallo,

ich habe unter Website-Administration --> Server --> OAuth 2-Services in Moodle einen Nextcloud-Service zu unserer schulischen Nextcloud eingerichtet.

Unter Website-Administration --> Plugins --> Repositories --> Nextcloud habe ich dann eine Repository-Instanz angelegt.
Unterstützte Dateien: Intern und extern
Rückgabewert: extern (in Moodle werden nur Links gespeichert)

Außerdem habe ich die Haken gesetzt für

  • Nutzer/innen dürfen eine Repository-Instanz im Kurs anlegen
  • Nutzer/innen dürfen eine eigene Repository-Instanz anlegen

Als normaler Lehrer in Moodle angemeldet kann ich beim Dateiupload das Nextcloud-Repository auswählen, muss mich dann in NC einloggen und kann dann Dateien aus Nextcloud auswählen.

Wähle ich dabei „Kopie der Datei anlegen“, klappt das auch.
Wähle ich aber „Zugriffsgesteuerten Link anlegen“, dann wird mir die Datei im Uploadfenster auch angezeigt. Beim Klick auf „Speichern und zum Kurs“ erhalte ich aber „Datei kann nicht herunter geladen werden“

Außerdem erscheint als Lehrer in Moodle im Block Einstellungen „Speicherorte“ und darunter ein Link " Nextcloud-Instanz erstellen.
Klicke ich da drauf, kommt „Du hast derzeit keine Rechte, dies zu tun (Nextcloud-Repository-Konfiguration).“

Aber ich habe doch als Moodle-Admin festgelegt, dass User das dürfen sollen (s.o.).

Nutzt jemand von euch auch ein Nextcloud-Repository in Moodle? Klappt das Beschriebe bei euch?

Viele Grüße
Steffen

Hallo Steffen,

meine Einstellungen für das Nextcloud Repository sind folgende:

Unterstützte Dateien: extern
Rückgabewert: extern (in Moodle werden nur Links gespeichert)

Außerdem habe keine Häkchen gesetzt.

Damit kann ich auf das Nextcloud Repository zugreifen, ohne dass die Dateien alle ins Moodle kopiert werden. das war mein Ziel, da Moodle auf dem gleichen Server wie die Nextcloud läuft.

Was wolltest du denn genau für ein Verhalten haben?

Schöne Grüße
Christian

Hallo Christin,

im Prinzip das von dir Beschriebene.

Wenn ich aber auf diese Weise eine Datei aus NC in Moodle verlinke, also Aktivität „Datei“, diese aus NC auswählen und dann „Speichern und zurück zum Kurs“, dann wird die Aktivität (der Link zur NC-Datei) nicht angelegt, sondern ich bekomme eine Fehlermeldung in Moodle:

Eine Anfrage an Madita-Repository ist fehlgeschlagen: Die angeforderte Aktion konnte nicht ausgeführt werden. Falls dies häufiger vorkommt, kontaktieren Sie bitte Ihre/n Administrator/in mit folgenden zusätzlichen Hinweisen:
A webdav request to copy a file failed.

oder manchmal auch

Datei kann nicht herunter geladen werden

Mit Unterstützte Dateien: Intern und extern kann ich in Moodle eine Kopie der Datei anlegen. Das klappt. Aber ich will ja verlinken und nicht kopieren.

Ob ich die Haken

Nutzer/innen dürfen eine Repository-Instanz im Kurs anlegen
Nutzer/innen dürfen eine eigene Repository-Instanz anlegen

setze oder nicht spielt dabei keine Rolle. Wobei ich das eigentlich sinnvoll fände, damit nicht alles im gleichen NC-Userprofil landet, sondern bei jedem User im eigenen NC Profil.

Wobei das eh auch auf NC-Seite noch nicht ganz so funktioniert wie ich mir das vorstelle.

Derzeit:

Verlinke ich über das NC-Repository eine Datei aus NC in Moodle durch die Aktivität „Datei“ (bzw. versuche ich das - geht ja derzeit noch nicht), dann ensteht bei dem NC-User, mit dem der OAuth 2-Service verbunden ist (bei uns ein keiner realen Person zugeordneter NC User) in NC eine leere Ordnerhierarchie

z.B.
Kernsystem (AFS Engen)/Kursbereich Unterricht (id 2)/Kursbereich Auer (id 4)/Kurs Chemie - Klasse 8 (id 141)/Datei Lösung Elementgruppe der Edelgase (id 5054)/mod_resource/content/0

Ich will eigentlich, dass da auf NC-Seite gar nichts passiert.
Moodle soll einfach einen Link setzen auf die Datei, die über das NC-Repository aus den NC-Dateien des NC-Users xy ausgewählt wurde.
Die Datei soll also bei NC im Account des Users xy liegen (bleiben) und in Moodle nur (verlinkt) eingebunden und somit in Moodle angezeigt werden. In NC soll gar nichts passieren.

Wie gesagt ensteht dabei aber in NC beim NC-User, mit dem der OAuth 2-Service verbunden ist, eine leere Ordnerhierarchie, s.o.

Wenn ich in Moodle aus dem NC-Repository eine Datei wähle und nicht verlinke, sondern auswähle „Kopie der Datei anlegen“, dann klappt das zwar auf Moodle-Seite, aber in NC wird dann diese Datei mit dem NC-User, mit dem der OAuth 2-Service verbunden ist, geteilt.
Auch das will ich nicht.

In NC soll bei Nutzung von Dateien aus NC in Moodle gar nichts passieren.

Mit dem derzeitigen Verhalten würde ja in NC ein unüberschaubarer Wildwuchs an geteilten Dateien und diesen komischen Ordnerhierarchien (s.o.) entstehen, wenn viele das NC-Repository nutzen.

Viele Grüße
Steffen

Hallo,

wenn ich in der Nextcloud-Repository-Konfiguration nochmal lese, scheint das leider nicht so zu gehen wie ich mir das vorstelle:

Beachten Sie, dass alle extern verlinkten Dateien angepasst werden, so dass das Moodle-Systemkonto als Eigentümer eingetragen ist.

Also doch den OAuth 2-Service nicht mit einem NC-Konto verbinden und alle Dateien nach Moodle kopieren.

Ist bei uns vielleicht eh besser, da Moodle und NC nicht auf demselben Server und auch nicht im selben Rechenzentrum / Schule, sonst sind Dateien in Moodle nicht nutzbar, wenn der Server mit der NC nicht erreichbar ist.

Viele Grüße
Steffen

Hallo Steffen,

jetzt bin ich verwirrt. Bisher dachte ich, dass die Dateien verlinkt wären. Aber ich habe gar keine Auswahl, ob ich eine Kopie anlegen oder nur verlinken will. Da diese Dateien aus Nextcloud in der Übersicht „Meine Dateien“ nie angezeigt wurden, bin ich davon ausgegangen, dass sie verlinkt werden. Aber die Änderung einer Datei in der Nextcloud ist jetzt nach 20 Minuten noch nicht in Moodle angekommen. Sieht so aus, als ob sie doch nur kopiert wurde.
Schöne Grüße
Christian

Hallo Christian,

wenn die Datei verlinkt wird, sieht man das an einem blauen Pfeil an der Datei. Wenn der nicht da ist, ist es keine Verlinkung.

So richtig tief habe ich mich mit der Materie Repository in Moodle noch nicht beschäftigt. Aber offensichtlich geht das Verlinken aus NC (wenn es denn geht) nur, wenn der OAuth 2-Service mit einem NC-Konto verbunden ist, und dann entsteht in diesem NC-Konto der beschriebene Datensalat.

Was ebenfalls unschön ist:
Will ich auf das NC Repository zugreifen, muss ich mich jedes Mal neu an NC anmelden, wenn ich nicht schon eine aktive Anmeldung in NC habe (z.B. in anderem Tab).
Sobald man sich aus NC abmeldet, wird in Moodle wieder nach dem Login gefragt.

Warum kann das in Moodle nicht dauerhaft gespeichert bleiben? In der NC-App oder für andere externe Zugriffe auf NC muss ich mich ja auch nicht bei jedem Zugriff neu authentifizieren.

So richtig smart und smooth fühlt sich das für mich noch nicht an.

Viele Grüße
Steffen

Hallo Christian,

wenn du z.B. eine Aktivität „Datei“ anlegst und dann eine Datei in Moodle hochlädst (oder aus dem NC-Repository) wählst, landen diese Dateien nie in „meine Dateien“. Du kannst halt Dateien in „meine Dateien“ hochladen und dann beim Anlegen der Aktivität die Datei von dort wählen statt sie hochzuladen.

Ich persönlich empfinde das daher nicht als Vorteil, das überhaupt zu nutzen und lade zu jeder Aktivität die benötigten Dateien einfach vom PC hoch und wenn sie sich geändert hat dann wieder neu.
Das müsste ich ja auch mit der Datei in „meine Dateien“ tun, so dass „meine Dateien“ nur dann einen Vorteil bringen würde, wenn ich dieselbe Datei in mehreren Aktivitäten nutzen würde, und selbst da bin ich mir nicht sicher, ob dann bei der Auswahl der Datei für die Aktivität nicht eine Kopie erstellt wird und die Änderung der Datei in „meine Dateien“ sich gar nicht auf die Datei in der Aktivität auswirkt.

Um das alles vom Workflow zu verbessern, wollte ich eigentlich erreichen, dass Dateien aus dem NC-Repository nur verlinkt werden, damit in der Aktivität die Datei auch ausgetauscht ist, sobald sie sich in NC geändert hat. Aber das Verlinken klappt hier bei mir ja leider gar nicht.

Viele Grüße
Steffen

Hallo Steffen,

bei mir klappt das Verlinken offensichtlich auch nicht, obwohl ich im Repository beides Mal „extern“ angegeben habe. Also nur das Verlinken erlaubt habe.
Bei mir es so, dass bei einer Neuanmeldung in Moddle das Nextcloud - Fenster aufgeht und ich zweimal „Zugriff gewähren“ oder so ähnlich angeben muss. Das Passwort wird nicht abgefragt.
Schöne Grüße
Christian

Hallo Christian,

wenn ich das inzwischen richtig verstanden habe, geht das Verlinken aus NC (wenn es denn geht) nur, wenn der OAuth 2-Service mit einem NC-Konto verbunden ist, und dann entsteht in diesem NC-Konto der beschriebene Datensalat.

Hm, bei mir, wenn ich nicht gerade in NC angemeldet bin:

  • mit Ihrem Nutzerkonto anmelden
  • im neuen Fenster auf „Anmelden“
  • Benutzername und Passwort eingeben und wieder „Anmelden“ (oder Enter)
  • 2FA eingeben und „Übermitteln“ (oder Enter)

Von daher vermute ich mal, du hast die Anmeldetaten für NC im Browser gespeichert und kein 2FA?

Intuitiv und einfach ist definitiv anders.

Viele Grüße
Steffen

Hallo Christian,

Was steht bei dir unter Website-Administration --> Server --> OAuth 2-Services für den Nextcloud-Service bei „Login erlauben“?
Grüner Haken oder rotes x (das ist bei mir der Fall)

Edit: Wobei wenn ich das richtig interpretiere, geht es dabei um die Möglichkeit, sich an Moodle mit dem NC-Account anzumelden und nicht um den Zugriff auf das Repository :thinking:

Viele Grüße
Steffen

Hallo Christian,

ok, ich hatte den OAuth 2-Services nochmal neu angelegt, jetzt reicht auch (wieder) 2x „Zugriff gewähren“ ohne Passwort und 2F-Abfrage.

Schön wäre trotzdem, wenn es auch diese Hürde nicht gäbe, denn einen Sicherheitsgewinn hat man damit ja keinen.

Viele Grüße
Steffen

Hallo Steffen,
hast du es mittlerweile hin bekommen, dass die Funktion „Zugriffsgesteuerten Link anlegen“ funktioniert?
Ich bekomme die gleichen Fehlermeldungen wie du beim Speichern ;-(
Wäre wirklich super cool, wenn man das hin bekäme und z.B. der gespeicherte auf dem Laptop automatisch mit Nextcloud synchronisierte Aufschrieb automatisch in Moodle verfügbar ist :wink:
Liebe Grüße,
Leo

Hier mal meine Einstellungen und Fehler…

Einstellungen des OAut 2-Services:

Datei hinzufügen als Link:

Fehlermeldung beim Klicken auf „Speicher und zurück zum Kurs“:
Auswahl_513

Hallo Leo,

ich hatte keine Zeit, mich da weiter drum zu kümmern.

Aber ich habe unter Website-Administration -> Server -> OAuth 2-Services eh keine NC-User mehr bei „Systemaccount verbunden“ eingetragen, und das ist ja die Voraussetzung, dass Verlinkungen zwischen NC und Moodle überhaupt gehen können.

Das Problem, wenn man da einen User einträgt, habe ich oben ja beschrieben: Es entsteht Ordner- und Datensalat und/oder geteilte Dateien im Profil dieses NC-Users. Das finde ich kompletten Schwachsinn.

Imho sollte es so sein, dass sich Moodle-User X in Moodle mit seinem NC-Account verbindet (NC-Repository) und dann Dateien aus NC in Moodle verlinken kann, ohne dass sich in NC irgendwas verändert.

Ohne den verbundenen Systemaccount kann man sich als Moodle-User mit seinem NC-Account ebenfalls verbinden und auf Dateien dort zugreifen. Diese werden dann in NC kopiert. NC selbst bleibt unberührt.

Was das Ganze ebenfalls sperrig macht ist die Tatsache, dass beim Zugriff auf das NC-Repository jedes Mal die NC-Zugangsdaten samt 2FA abgefragt werden, wenn man beim Schließen des Browsers die Browserdaten aus Datenschutz-/Sicherheitsgründen löscht.

Imho sollte Moodle sich unabhängig vom Browser die geöffnete Verbindung zur NC „merken“. Aber das ist nicht der Fall.

Sollte jemand andere / neue Erkenntnisse dazu haben, würden mich die auch interessieren :wink:

Viele Grüße
Steffen

Hallo zusammen,
ich häng mich hier mal ran, weil ich glaube, es passt hier gut hin.

Mein Moodle meckert mich alle paar Tage damit an:

Die Aktualisierungstoken für einen der OAuth-Dienste Claudi auf der Website https://moodle.morz.de/moodle ist abgelaufen. Dadurch wird die Funktionalität von Plugins eingeschränkt, die diesen Service verwenden. Um das Problem zu beheben, rufen Sie die OAuth2-Dienstekonfiguration auf und klicken Sie in der Tabellenzeile für diesen Service auf das Icon „Connect system account“. Stellen Sie sicher, dass die immer den gleichen Service-Account für das OAuth-System verwenden.

Abgesehen davon, dass dann die Integration ja nicht mehr funktioniert, nervt moodle auch mit >100 Mails zu diesem Thema pro Tag :slight_smile:

Wenn ich den Systemaccount neu verknüpfe geht es wieder einige Zeit (aber vieeeeel zu kurz, als dass das ein erträglicher Zustand wäre), dann geht das Spiel von vorne los.

Wie kann ich verhindern, dass Nextcloud das Token ungültig werden lässt?

LG Jesko

Hallo Jesko,

ja, das nervt mich auch.
Meine Beobachtung zu dem Thema: wenn die Nextcloud eine gewissen Zeit lang (>15 Minuten) nicht erreichbar ist, meckert er. Das ist bei mir z.B. bei einem Vollbackup der Nextcloud der Fall oder nach einem längeren Stromausfall letzten Samstag.
Eine Einstellung direkt in Moodle zu diesem Punkt habe ich leider nicht gefunden.

VG
Christian

P.S.: Unter dem Punkt (als Administrator) Server->geplante Tasks habe ich in der Zeile „OAuth-Token für Servicekonten erneuern \core\oauth2\refresh_system_tokens_task“ aus dem Aufruf jeweils zur halben Stunde (30 *) einen Aufruf zu einer festen Uhrzeit tagsüber gemacht (30 17). Bald weiß ich mehr.

Hallo,

wo und wie wird da gemeckert? In den geplanten Tasks?
Weil Mails bekomme ich keine, oder ist das bei euch kein Belwü-Moodle?

Was mich nervt, dass man sich jedes Mal wieder an der NC anmelden muss, um auf das Repository zugreifen zu können, wenn der Browser-Cache geleert wurde.

Wenn es also eine Lösung gäbe, dass sich Moodle und nicht der Browsercache die Anmeldung „merkt“ …

Viele Grüße
Steffen

Hallo Steffen,

also die Umstellung der geplanten Tasks (OAuth-Token für Servicekonten erneuern) auf täglich statt stündlich hat bei mir bewirkt, dass Moodle die Verbindung zur Nextcloud behält und keine Fehlermeldung kommt. Die Fehlermeldungen kamen bei mir per Mail. Ich weiß aber nicht, wo man das einstellen kann.

Als Benutzer in Moodle muss ich mich zwar nicht nochmal an der Nextcloud anmelden (im Sinne von Benutzerdaten eingeben), wenn ich im gleichen Browser auch in der Nextcloud direkt angemeldet bin, aber ich muss den Zugriff bestätigen (sind insgesamt drei Klicks). Das kann ich verkraften.

VG
Christian