[prev in list] [next in list] [prev in thread] [next in thread] 

List:       apache-httpd-users-de
Subject:    svn_dav: SVNPATH dynamisch je nach Username
From:       Denny Fuchs <linuxmail () 4lin ! net>
Date:       2015-01-27 12:56:24
Message-ID: 6AA45A54-9932-4DDD-B2D2-302746B31FB8 () 4lin ! net
[Download RAW message or body]

Hallo,

wir setzen OpenProject (Fork Chiliproject/Redmine) ein und nutzen unter anderem das \
SVN Plugin. Das Plugin erzeugt für jeden Studenten (sofern er ein Projekt erzeugt, \
welches SVN aktiviert hat) ein Verzeichnis:

/opt/op/svn/repositories/$username/$username-$projektname

Das ermöglicht uns einen besseren Überblick zu bewahren, wenn der Student mehrere SVN \
Projekte erzeugt.

Das Problem ist nun, dass SVNPATH / SVNParentPATH jeweils nur statisch sind und damit \
ein Aufruf der URL:

https://svn.example.de/svn/foobar/foobar-myproject

ins Leere läuft, da das svn_dav Modul nun die "format" Datei physisch unter:

(bei SVNPATH)
/opt/op/svn/repositories/

(bei SVNParentPATH)
/opt/op/svn/repositories/foobar

erwartet.

Korrekterweise müsste SVNPATH aber "/opt/op/svn/repositories/foobar" lauten, was \
nicht funktioniert, da wir:

a) nicht wissen, welche Studenten SVN (statt git) nutzen
b) es zu viele wären -> 500-1500 User

ich habe schon diverses ausprobiert ... aber letzten Endes hat nichts geholfen.  Eine \
Idee war diese hier:

http://serverfault.com/questions/230253/mixing-subversion-svnparentpath-and-per-repository-configurations


aber auch da muss ich irgendwie den Benutzernamen in SVNPath bekommen. 

Wie schaffe ich es also $auth_name mit dem passenden Wert zu füllen?

Die Authentifikation erfolgt über Radius.

=====================
[...]

<Macro SubversionRepo >
<Location /svn/>
 DAV svn
 SVNPath "/opt/op/svn/repositories/$auth_name"
 Deny from all
 Satisfy any

   PerlAccessHandler Apache::Authn::OpenProject::access_handler
#   PerlAuthenHandler Apache::Authn::OpenProject::authen_handler
   OpenProjectApiKey 'secret'
   OpenProjectUrl      'https://scm.example.com'

<Macro GetValidUser $auth_name>
 AuthType Basic
 AuthName "$auth_name"
       AuthBasicAuthoritative Off
       AuthBasicProvider radius
       AuthRadiusAuthoritative on
       AuthRadiusActive On
       require valid-user
</Macro>

Use GetValidUser "Informatik SVN Repository"

    #read-only access
    <Limit GET PROPFIND OPTIONS REPORT>
       Require valid-user
       Allow from 127.0.0.1
     </Limit>
    # write access
    <LimitExcept GET PROPFIND OPTIONS REPORT>
      Require valid-user
    </LimitExcept>
</Location>
</Macro>

Use SubversionRepo
</VirtualHost>
==============

wie gesagt, ich experimentiere da gerade sehr ... 

Ziel soll es sein, dass SVNParentPath passend erweitert wird. Eine URL sieht so aus:

https://svn.example.de/svn/foobar/foobar-myproject

SVNPath muss dann also /opt/op/svn/repositories/$auth_name/foobar-myproject lauten.

Hat jemand da eine Idee?

cu denny


["signature.asc" (signature.asc)]

-----BEGIN PGP SIGNATURE-----

iEYEARECAAYFAlTHivgACgkQKlzhkqt9P+ANdwCdFacXmTlqT2kg9VsYYV2VHD7C
paMAnjuNaWFl5XPSl5OlsfmEzOgHCP0F
=icGY
-----END PGP SIGNATURE-----


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic