Apakah mungkin untuk memberikan akses ke folder di server SVN menggunakan API SVN?

1

Saya perlu mengembangkan aplikasi web (Menggunakan bahasa apa pun tapi saya kenal dengan Frameworks Symfony2 dan Rails), yang dapat memberikan akses ke pengguna ke folder yang ditentukan pada server lain di jaringan yang sama dari front-end aplikasi.

Saya menemukan bahwa SVN memiliki API dan bahwa saya dapat berinteraksi dengannya dengan PHP atau Ruby (Rupanya), meskipun saya akan bersedia untuk memprogram aplikasi pada bahasa lain, server tempat file disimpan menggunakan Windows dan saya pikir menggunakan server Virtual SVN, namun saya tidak dapat menemukan fungsi apa pun pada API untuk memberikan pengguna akses ke file dan / atau folder atau akses apa pun, seperti yang biasa Anda lakukan menggunakan GUI (VirtualSVN pada Windows).

Apakah saya kehilangan sesuatu? Apakah ini mungkin?

Splendonia
sumber

Jawaban:

1

Itu mungkin, tetapi bagaimana Anda harus melakukannya tergantung pada apa yang Anda gunakan untuk melayani repositori Subversion Anda; Subversion sendiri tidak menetapkan metode kontrol akses, dan membiarkan masalah seperti itu pada perangkat lunak apa pun yang Anda gunakan untuk mengekspos gudang Anda ke klien Anda.

(Ini sebenarnya lebih baik daripada melakukan kontrol akses dalam Subversion yang tepat, karena lebih modular dan dengan demikian lebih mudah diperluas; repositori Subversion yang disajikan melalui Apache dapat mengambil bagian dari metode kontrol akses apa pun yang didukung oleh Apache, daripada harus menerapkan kembali setiap metode tersebut sebagai bagian dari pohon sumber Subversion.)

Jika Anda melayani repositori Anda melalui Apache atau melalui svnserve alat yang dikemas dengan distribusi Subversion, Anda dapat menemukan detail tentang cara mengkonfigurasi kontrol akses di Bab 6 dari Kontrol Versi dengan Subversi , tersedia online gratis. Jika tidak, lihat dokumentasi untuk perangkat lunak server Anda untuk perincian lebih lanjut tentang cara mengatur opsi kontrol akses yang Anda butuhkan.

Catatan terakhir: PHP dan Ruby API yang Anda gambarkan adalah implementasi dari klien Subversion, yang hampir pasti akan berguna dalam mengembangkan kode aplikasi Anda, tetapi yang tidak akan melakukan apa pun untuk membantu Anda bekerja dengan kontrol akses sisi server. Untuk itu, Anda harus mencari cara untuk mengizinkan kode aplikasi Anda dengan aman untuk memodifikasi konfigurasi server repositori Anda (dicey), atau membuat aplikasi Anda terintegrasi dengan database otentikasi / otorisasi yang digunakan oleh server repositori untuk mencari tahu siapa yang diizinkan pergi ke mana dalam repo dan melakukan apa.

Aaron Miller
sumber
Terima kasih banyak telah membalas dan mengklarifikasi untuk saya. Saya tidak berpikir untuk mengintegrasikan kedua database, apakah semua server SVN mengizinkan ini?
Splendonia
@ Slendonia Tergantung pada kemampuan perangkat lunak server. Misalnya, modul Apache mod_auth_mysql memungkinkan Apache untuk menggunakan database MySQL sebagai backend otentikasi, yang mungkin akan menjadi metode paling sederhana yang tersedia untuk mengelola kontrol akses dari dalam aplikasi web. Server repositori lain mungkin atau mungkin tidak mendukung sesuatu yang serupa; Anda perlu memeriksa dokumentasi untuk perangkat lunak server Anda untuk mengetahui apa yang dapat Anda lakukan.
Aaron Miller
@ Slendonia Dengan Senang!
Aaron Miller