Назад | Перейти на главную страницу

Ограничение доступа к нескольким репозиториям SVN, размещенным через WebDAV

Мне нужно создать несколько репозиториев SVN для студентов и управлять ими, а также создать несколько детализированных элементов управления доступом, чтобы не допустить обмана студентов, а преподавателям разрешить доступ к истории изменений.

Для одного репозитория я могу использовать WebDAV и настроить AuthzSVNAccessFile чтобы разрешить доступ. Но мне нужно несколько репозиториев. Я мог бы настроить несколько <Location> директивы, но это многословно, и каждый раз, когда мне нужно добавить или удалить репо, требуется перезагрузка Apache. Есть способ указать «родительский путь», содержащий несколько репозиториев с SVNParentPath, но есть ли соответствующий способ сопоставить файлы authz с этими репозиториями?

Фактически вы можете управлять разрешениями для нескольких репозиториев с помощью одного файла authz. Например:

[foo:/]
@students = rw
@instructors = r

[bar:/]
@students = rw
@instructors = r

В этом случае имя перед двоеточием - это имя репозитория, первый компонент пути после SVNParentPath.

Вы можете использовать файлы .htaccess, использующие либо базовую HTTP-аутентификацию, либо mod_auth_mysql для получения информации аутентификации из базы данных SQL. С этого момента было бы довольно просто создать интерфейс для управления разрешениями в таблицах SQL.