Subversion - как я могу контролировать доступ пользователей для одного репозитория, когда используется SVNParentPath? - PullRequest
2 голосов
/ 08 декабря 2008

У меня есть репозитории subversion, которые работают нормально, для всех пользователей требуется аутентификация по паролю. Мой конфиг выложен ниже. Как мне изменить эту конфигурацию, чтобы у одного пользователя был доступ только для чтения к одному из моих репозиториев?

В приведенном примере необходимо работать с SVNParentPath, а не с SVNPath. Первый позволяет указать каталог, содержащий несколько хранилищ Subversion.

<VirtualHost *:80>
    ServerAdmin apache@mycompany.org
    DocumentRoot "d:/Apache2/htdocs/"
    ServerName code.mycompany.org
    ErrorLog "logs/src.mycompany.org-error.log"
    CustomLog "logs/src.mycompany.org-access.log" common
    SetOutputFilter DEFLATE

    <Location />
      DAV svn
      SVNParentPath D:\SVN
      AuthType Basic
      AuthName "My Repository"
      AuthUserFile conf/myteam.pwd
      Require valid-user
    </Location>   
</VirtualHost>

1 Ответ

5 голосов
/ 09 декабря 2008

Я сам решил это, используя книгу SVN.

Во-первых, убедитесь, что у вас настроены некоторые пользователи в AuthUserFile. Далее создайте файл для правил авторизации (conf / myteam.authz). Заполните этот файл следующим образом.

[groups]
my-developers = BrianLy
external-developers = JamesKL

[/]
@my-developers = rw

[repository-name-here:/path/here]
@external-developers = r

Это создает 2 группы, которым затем назначаются права. Моя команда имеет доступ разработчика ко всем репозиториям. Второе правило указывает, что вторая группа имеет ограниченный доступ к определенному хранилищу.

Затем обновите конфигурацию Apache, добавив эту строку ниже AuthUserFile

AuthzSVNAccessFile conf/myteam.authz

Перезапустить Apache (обязательно)

...