Мне нужно создать несколько репозиториев 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.