LINUX.ORG.RU
ФорумAdmin

svnaccess.conf+Active Directory+WEB UI


1

1

Есть машинка, на которой крутится svn с доступом к нему через апач. Апач авторизует пользователей при помощи мод_лдап на виндовом контроллере домена. Права на чтение/запись в репозиторий раздаются путем ручного редактирования файлика svnaccess.conf

Некоторое время назад задался поиском каких-либо веб-морд (надо именно веб, т.к. права могут давать несколько удаленных друг от друга человек) для рулежки прав в svn.

Из всего найденного больше всего понравился SVN Access Manager (http://svn-access-mana.sourceforge.net/), однако у него нет возможности подцеплять юзеров из AD. Тоесть если надо дать права товарищу Иванову, то для начала лезем на контроллер домена, запускаем там оснастку пользователи и компьютеры, в ней ищем логин Иванова по фамилии, потом лезем в svn и даем права, что не есть удобно.

Внимание вопрос: существуют ли в природе готовые решения с такими функциями, или проще самому за день-два «намячкать быдлокод» на php?

З.Ы. Гуглить пробовал, ничего не нашел.



Последнее исправление: isvolo4 (всего исправлений: 1)

Готового нет, то что находил заброшено и не доделано, но мне надо было под чистый svn без http.

Могу подсказать лишь это: http://www.thoughtspark.org/node/26

А так, профита от http для privacy svn не вижу - одни проблемы.

gh0stwizard ★★★★★
()
Ответ на: комментарий от gh0stwizard

есть тут хттп или нет не важно - в том то и дело.

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

isvolo4
() автор топика
Ответ на: комментарий от isvolo4

>есть тут хттп или нет не важно - в том то и дело.

Разница есть, я делаю под sasl + openldap + authz.
Ты делаешь под apache/mod_ldap - authz.

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


Давай, я его форкну на Perl :)

gh0stwizard ★★★★★
()
Ответ на: комментарий от gh0stwizard

>Разница есть

неважно что служит фронтендом и пускает/непускает юзеров к SVN'у.

Права на доступ к тем или иным веткам репозитория всеравно рулятся через ручное редактирование файлика svnaccess.conf так ведь? В моем случае читать могут все, кто авторизовался через apache+mod_ldap (первая строчка в svnaccess *=rw, а дальше раздаются права на запись.

isvolo4
() автор топика
Ответ на: комментарий от gh0stwizard

готово

Я доделал скрипт для раздачи прав доступа к svn. https://sourceforge.net/projects/svnaccessconf-w/

За быдлокод сильно не бить )))

Если эта штука окажется удобнее, чем менять права в файлике, ее можно внедрить на рабочий svn, только надо предварительно потестировать (подобавлять-поудалять права и затем посмотреть, что сделанные изменения отражаются корректно). Я насколько смог потестил, но обычно трудно найти баги в своем же коде 

Приму любые предложения по улучшению функционала и в меру своих возможностей допилю скрипт.

Инструкция: На первой странице: выбор режима (Edit groups – редактирование состава групп пользователей svn, Edit access rights – редактирование прав доступа для группы или отдельного пользователя)

В Edit Groups выводится список всех существующих групп и напротив каждой группы ссылки для удаления группы целиком и изменения состава группы. Удаление тривиально, про состав чуть ниже опишу. И так же в этом меню ссылка на добавление новой группы.

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

На страничке с изменением состава (можно попасть туда из списка групп, щелкнув на Modify около названия группы) показан список всех пользователей, которые состоят в указанной группе. Рядом с каждым именем пользователя есть ссылка для удаления, она работает так же как и в случае с удалением группы целиком. Ниже списка пользователей есть ссылка для добавления пользователя в группу.

Добавление пользователя в группу – два поля Search criteria и Filter. В первое поле пишем искомую подстроку, во втором выбираем в каких полях Active Directory надо искать. Например, если пользователь Иван Иванов должен быть добавлен в группу, то в первое поле надо ввести его фамилию или часть ее (латинскими буквами), а во втором выбрать Last Name. Если в первое поле не введено ничего – будет выведен список всех пользователей. После нажатия кнопки Search выводится ссылками список логинов, чьи данные удовлетворяют критериям поиска. Для добавления логина в группу надо просто щелкнуть по нему.

В режиме Edit access rights раздаются непосредственно права на чтение/запись конкретного репозитория. По умлочанию все пользователи, авторизовавшиеся в svn имеют право его читать, (запись в конфиге [/] *=r, поэтому главное назначение – раздача прав на запись.

Для начала надо ввести путь к репозиторию (вида /svnroot/proj1), права на который мы хотим поменять. Насколько я понимаю при необходимости дать куда то доступ путь известен, если будет удобнее сделать поле с автокомплитом, могу допилить. После ввода пути выводится список пользователей и групп, которые имеют доступ и права (синтаксис вывода как в svnaccess.conf). Рядом с записью есть ссылка для ее удаления (удаляется запись целиком.) Ниже есть ссылки для раздачи прав группе или одному пользователю. В случае с группой – выводится список всех существующих групп и напротив каждой ссылка для того, чтобы дать права на чтение/запись В случае с пользователем – выводится форма поиска, как при добавлении пользователя в группу, а затем все найденные пользователи с предложением дать права на чтение/запись.

isvolo4
() автор топика
Ответ на: комментарий от gh0stwizard

сделал в zip.

В коде необходимо в двух местах прописать логин/пароль/адрес DC.

можно найти поиском по pass и yourdomain соответственно

сейчас тестирую у себя, есть мысли по тому что еще к нему прикрутить. Потом займусь переписыванием кода, т.к. сейчас там адские конструкции :)

isvolo4
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.