Как я могу использовать подстановочные знаки или регулярные выражения для управления авторизацией / контролем доступа на основе путей для SVN?

Есть ли способ управления доступом к svn для просмотра / чтения с использованием авторизации на основе пути, основанной на регулярных выражениях или подстановочных знаках?

Я знаю, что могу использовать svnperms для контроля доступа на запись с помощью сценария перехвата коммитов, но мне нужно также ограничить доступ для чтения / просмотра, и в настоящее время у меня есть корень проекта с файлами коммитов, к которым всем людям нужен доступ, и подкаталоги, к которым могут обращаться только определенные люди должен иметь доступ. Предоставление доступа к каталогу проекта верхнего уровня автоматически предоставляет его всем подкаталогам. Если бы я мог установить правило регулярных выражений, я мог бы легко ограничить доступ.

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

Пожалуйста, дайте мне знать, если вы знаете:

  • скрипт-хук, который может контролировать доступ к просмотру
  • расширение apache, которое может обеспечить возможности authz с шаблонами подстановки или регулярными выражениями

1 ответ

По состоянию на июнь 2013 года это невозможно сделать. Таким образом, решение проблемы заключается в реорганизации хранилища, так что в этом нет необходимости. Когда вещь слишком сложна, это обычно приводит к серьезному переосмыслению дизайна или подхода.

В настоящее время структура maven приводит к этому требованию: root/pom.xml root/project1/pom.xml root/project2/pom.xml и т. Д.

Мы можем заменить это на /root/pom.xml /project1/pom.xml /project2/pom.xml и т. Д.

Мы можем установить svn perms следующим образом, предоставляя всем права на чтение для проекта верхнего уровня и чтение и запись для их проекта. Если сервер сборки с непрерывной интеграцией заполняет внутреннее хранилище maven корневым моментальным снимком, то пользователям необходимо только извлекать определенные проекты.

[repo:/root]
* = r
@releng = rw

[repo:/project1]
@teamOne = rw

[repo:/project2]
@teamTwo = rw
Другие вопросы по тегам