Machbarkeitsprüfung – Modifizieren oder Ersetzen der Dateiupload-Funktion im Composer

Hallo zusammen.

Ich bin gerade dabei, Discourse für eine kleine Benutzergruppe mit sehr strengen Sicherheitsanforderungen bereitzustellen. Wir möchten die Sicherheit des Forums so einschränken, dass jede Kategorie nur von einer bestimmten Benutzergruppe eingesehen werden kann. Das scheint über das Admin-Panel möglich zu sein. Zusätzlich möchten wir jedoch auch Datei-Uploads auf die gleiche Weise absichern (zufällig generierte URLs sind für unsere Anforderungen nicht sicher genug). Wir nutzen kein S3 – falls wir einen eigenen Dateiserver einrichten, werden es wahrscheinlich ganz einfache statische Dateien im Dateisystem sein. Ich habe die Idee eingebracht, einen eigenen privaten Server für hochgeladene Dateien anstelle des mit Discourse gelieferten Dienstes zu verwenden. Allerdings möchten wir nicht, dass unsere Benutzer die Sicherheit von Bildern versehentlich beeinträchtigen, weshalb wir auch die Nutzer der Web-Oberfläche dazu bringen möchten, diesen separaten Datei-Hosting-Dienst zu nutzen.

Ich denke, das läuft auf zwei Optionen hinaus:
(1) Die API-Endpunkte ändern, die vom Upload-Button im Composer verwendet werden, sodass sie auf unseren Server zeigen, oder
(2) Den Upload-Button deaktivieren und durch unser eigenes Plugin-Double ersetzen, das auf unseren Server hochlädt.
Zusätzlich müssten wir der Web-API-Aufruf Parameter hinzufügen, insbesondere um eine Kategorie oder eine gleichwertige Klassifizierung für das Bild hinzuzufügen.

Meine Frage ist, ob jemand spontan weiß, ob wir dies mit der bestehenden API, der Plugin-API usw. umsetzen können. Vielen Dank!

Hier ist ein Beispiel dafür: Discourse Video Upload Plugin with YouTube and Vimeo

Im Upload-Modell gibt es ein Feld namens access_control_post_id.

Meine Vermutung ist, dass Sie bei Bedarf an feingranularen Berechtigungen für Uploads viel Zeit sparen, wenn Sie den vorhandenen S3-Code nutzen – insbesondere wenn obskure Dateinamen nicht ausreichen. In diesem Fall müssten Sie im Grunde ein komplettes Berechtigungssystem für den Speicherort der Dateien entwickeln. Oder vielleicht habe ich das einfach nicht richtig verstanden.