Ich habe einen Roboter, der in Threads postet. Manchmal möchte er zuerst ein Bild hochladen und es in den Beitrag aufnehmen.
Soweit ich sehen kann, gibt es keinen API-Bereich, der Zugriff auf /uploads gewährt, daher muss ich ihm Zugriff auf alles geben.
Wäre es angemessen, (a) einen Standardbereich für diese Aufgabe zu definieren oder (b) einen benutzerdefinierten Bereich mit Zugriff auf vom Administrator definierte Endpunkte zuzulassen?
Ich habe Uploads zum Laufen gebracht (über den Endpunkt /uploads). Aber die einzige Möglichkeit, API-Schlüsselberechtigungen dafür zu erteilen, besteht darin, alle Berechtigungen zu erteilen, was ein offensichtliches Sicherheitsrisiko darstellt.
Ich frage nach einem API-Berechtigungsumfang, der /uploads einschließt – wenn er Teil von „Beiträge schreiben“ wäre, wäre das für mich in Ordnung, aber es könnte Gründe geben, ihn separat zu behandeln. Wenn das nicht möglich ist (und wahrscheinlich generell eine gute Idee ist), möchte ich einen benutzerdefinierten Umfang definieren können, der die spezifischen Dinge einschließt, die ich zulassen möchte.
Eine Möglichkeit zur Erstellung von Uploads zu schaffen, klingt für mich nach einer guten Idee, sicherlich pr-welcome. Die relevante Änderung wäre hier:\n\ndiscourse/app/models/api_key_scope.rb at 362c47ce6a87783808cb4417912a75250f003bf8 · discourse/discourse · GitHub eine neue Übersetzungszeichenkette hier.\n\nIch denke, das wäre am sinnvollsten als \"uploads\": \"create\" \n\n@RogerBW bist du bereit/in der Lage, hier einen PR zu erstellen? Wenn ja, mach bitte weiter und poste dann den Link in diesem Thema.
Nun, nicht jeder macht so offensichtliche Dinge, bevor er postet. Entschuldigung dafür! Es scheint, dass mindestens eine andere Person (von der ich denken würde, dass sie mehr als ich über dieses spezielle Thema weiß) erwartet hat, dass ein Scope, der einen Beitrag erstellen kann, auch die dazugehörigen Uploads erstellen kann.
Macht es nicht Sinn, dass ein API-Schlüssel, der einen Beitrag erstellen kann, auch einen Upload erstellen kann, genau wie ein Benutzer, der einen Beitrag erstellen kann, auch einen Upload erstellen kann?
Gibt es Situationen, in denen Uploads außerhalb eines Beitrags-Kontexts nützlich sind? Soweit ich weiß, werden Uploads periodisch automatisch entfernt, wenn sie nicht mit Beiträgen verknüpft sind. Daher scheint es nicht offensichtlich nützlich zu sein, einen API-Schlüssel für Uploads zu ermöglichen, aber nicht für die Erstellung/Änderung von Beiträgen.
Wie @pfaffman erwähnte, wäre es sinnvoller, wenn die Bereiche topics:write und posts:edit den Zugriff auf Uploads gewähren würden, wenn der zugehörige Benutzer die Berechtigung zum Hochladen hat.
Vermutlich ist das Hochladen eines neuen Avatars etwas, das man mit dem users:update-API-Bereich nutzen könnte. (Was derzeit nicht möglich ist?)
Mit vielfältigeren und potenziellen zukünftigen Möglichkeiten, wo Uploads genutzt werden könnten, ist es wahrscheinlich sinnvoll, einen separaten Bereich zu schaffen und den Benutzer die Verantwortung zu übertragen, den entsprechenden Bereich auszuwählen. Für Benutzer ist klar, wann ein API-Schlüssel hochladen kann/nicht hochladen kann, und es vermeidet potenziell das Übersehen von Situationen, in denen Uploads genutzt werden könnten, wenn die APIs erweitert werden.
Erledigt. Es muss getestet werden und so weiter, aber hier ist zumindest eine Basislinie.
Ich habe einen separaten Geltungsbereich verwendet, aus den beschriebenen Gründen – ich kann mir durchaus vorstellen, dass ich Beiträge, aber keine Uploads zulassen möchte.