Ist es möglich, den Zugriff auf einen Ordner in einem SVN-Server mithilfe der SVN-API zu gewähren?

866
Splendonia

Ich muss eine Webanwendung entwickeln (mit einer beliebigen Sprache, aber ich bin mit Frameworks Symfony2 und Rails vertraut), die einem Benutzer Zugriff auf einen bestimmten Ordner auf einem anderen Server im selben Netzwerk vom Front-End der Anwendung aus gewähren kann.

Ich habe herausgefunden, dass SVN eine API hat und dass ich mit PHP oder Ruby (anscheinend) damit interagieren könnte, obwohl ich bereit wäre, die Anwendung in einer anderen Sprache zu programmieren. Der Server, auf dem die Dateien gespeichert sind, verwendet Windows und ich dachte darüber nach Bei Verwendung des virtuellen SVN-Servers kann ich jedoch keine Funktion auf der API finden, um Benutzern Zugriff auf Dateien und / oder Ordner oder Zugriff jeglicher Art zu gewähren, wie Sie dies normalerweise über die GUI (VirtualSVN unter Windows) tun.

Fehlt mir etwas? Ist das überhaupt möglich?

1

1 Antwort auf die Frage

1
Aaron Miller

Es ist möglich, aber wie Sie dies tun müssen, hängt davon ab, was Sie zum Bereitstellen Ihrer Subversion-Repositorys verwenden. Subversion selbst legt keine Methode für die Zugriffskontrolle fest und lässt diese Bedenken der Software überlassen, die Sie verwenden, um Ihr Repository Ihren Kunden zugänglich zu machen.

(Dies ist der Zugriffskontrolle innerhalb von Subversion tatsächlich vorzuziehen, da sie modularer und damit leichter erweiterbar ist. Ein über Apache bereitgestelltes Subversion-Repository kann an jeder von Apache unterstützten Zugriffskontrollmethode teilnehmen, anstatt jede dieser Methoden als Teil von neu implementieren zu müssen die Subversion-Quellstruktur.)

Wenn Sie Ihr Repository über Apache oder über das svnservein der Subversion-Distribution enthaltene Tool bereitstellen, finden Sie Details zum Konfigurieren der Zugriffskontrolle in Kapitel 6 der Versionskontrolle mit Subversion, das online verfügbar ist. Ansonsten konsultieren Sie die Dokumentation Ihrer Serversoftware, um weitere Informationen zum Einrichten der erforderlichen Zugriffskontrolloptionen zu erhalten.

Ein letzter Hinweis: Bei den von Ihnen beschriebenen PHP- und Ruby-APIs handelt es sich um Implementierungen eines Subversion-Clients, die höchstwahrscheinlich bei der Entwicklung Ihres Anwendungscodes hilfreich sind, jedoch nichts für die Arbeit mit der serverseitigen Zugriffskontrolle tun. Dazu müssen Sie einen Weg finden, um sicher zuzulassen, dass Ihr Anwendungscode die Konfiguration Ihres Repository-Servers ändert (dicey), oder dass Ihre Anwendung in eine Authentifizierungs- / Autorisierungsdatenbank integriert werden muss, die der Repository-Server zum Herausfinden verwendet Wer darf wohin mit dem Repo gehen und was tun?

Vielen Dank, dass Sie mir geantwortet und geklärt haben. Ich hatte nicht daran gedacht, beide Datenbanken zu integrieren, erlauben das alle SVN-Server? Splendonia vor 10 Jahren 0
@Splendonia Dies hängt von den Fähigkeiten der Serversoftware ab. Mit dem Apache-Modul [mod_auth_mysql] (http://modauthmysql.sourceforge.net/) kann Apache beispielsweise eine MySQL-Datenbank als Authentifizierungs-Backend verwenden. Dies ist wahrscheinlich die einfachste verfügbare Methode zur Verwaltung der Zugriffskontrolle innerhalb einer Webanwendung . Andere Repository-Server unterstützen möglicherweise etwas Ähnliches. Sie müssen die Dokumentation Ihrer Serversoftware überprüfen, um herauszufinden, was Sie tun können. Aaron Miller vor 10 Jahren 0
@Splendonia Gerne! Aaron Miller vor 10 Jahren 0