Pull to refresh

Comments 27

Я рассматривал, это решение — если не принципиальна ось (работает только на Win системе) и отсутствие логирования (логирование доступно в Enterprise Edition за $950), то можно использовать. К тому же, если мне потребуется автоматизировать что либо, с VisualSVN этого не получиться.
Хороший проект, однако судя по этому тикету поддержка LDAP ещё не реализована, а судя по количеству спама в комментариях этого тикета, проект не развивается…
Развивается .... Но медленно.
Это так сложно поставить indefero и забыть про это как страшный сон?
Как бе уже скоро. Можно взять и допилить.
projects.ceondo.com/p/pluf/source/commit/708733499915bf8b703f22b94a2ba6217fd74505/

Основная фишка в том что он так-то умеет не только svn. А много всего другого, ну и bugtracker управление доступом и прочие вкусности из коробки.
Когда допилят, тогда и буду рассматривать. В качестве багтрекера мы используем chilli project. В любом случае спасибо за ссылку на проект.
А не лучше ли делать reload apache? Так как можете обламать кого-то с комитом.
так даже можно свн репозиторий поломать если он в Berkeley DB.
apachectl graceful — наш метод!
Спасибо, учту, как то сразу не подумал. К слову, репозиториев много, а вот комитит народ обычно в конце рабочего дня, так что шанс оборвать коммит минимален. Berkeley DB не использую.
Эээ, похоже на очередное изобретение велосипеда.
Во-первых, зачем каждому репозитарию свой конфиг или отдельный локейшн? Укажите в настройках апача общий каталог репозитариев /var/svn/ (к примеру) и создавайте их там сколько угодно, рестартовать ничего не понадобится. Во-вторых, апач сам прекрасно умеет авторизовывать пользователей из AD через mod_ldap без помощит питона.
Ваша критика необоснована

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

Во-вторых, вы невнимательно прочитали конфиги, авторизация у меня происходит через mod_ldap это видно в 3ей строке файла /etc/httpd/conf.d/subversion.conf. А модуль python-ldap используеться только в функции def search, для получения списка e-mail'ов пользователей входящих в группу, которой разрешено коммитить.

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

Ошибаетесь. Посмотрите как сделано в indefero. У него без проблем раздаются права на разные репозитории разным пользователям. Фишка в том что на каждый репозиторий можно указывать разные права и набор пользователей.
Обязательно посмотрю, однако хочу заметить что директива лимиты на конкретный локейшн (репозиторий), как я могу применить лимиты для пользователей LDAP не вынося репозитории в отдельный локейшн???
Хм. Я LDAP не юзаю, а просто завожу юзеров через файлик, созданный htpasswd (авторизация через Apache).
А потом в конфиге указываю каким юзером в какие подразделы можно ходить.
А с LDAP так не получится? Apache же умеет авторизовываться через LDAP. А svn в таком случае должно быть все равно.
Извиняюсь, не все посты прочитал…
> каждая группа могла коммитить только в свой репозиторий

виртуал хост:
SVNParentPath /var/svn
AuthzSVNAccessFile /var/svn/conf/authz

/var/svn/conf/authz:
[scc:/]
vasya = rw
petr = r
chief =

[web:/]
mvs = rw
vasya = r


Как-то так
svnbook.red-bean.com/en/1.5/svn.ref.mod_dav_svn.conf.html
svnbook.red-bean.com/en/1.5/svn.ref.mod_authz_svn.conf.html
svnbook.red-bean.com/en/1.5/svn.serverconfig.pathbasedauthz.html

> Во-вторых,… для получения списка e-mail'ов пользователей входящих в группу, которой разрешено коммитить.
ok, нет вопросов :)
А что LDAP? Все пользователи из AD, всё отлично работает
Хм, те вы хотите сказать, что в конфиге мы указываем Require valid-user, для того чтобы все пользователи LDAP смогли авторизоваться, а затем разграничиваем ихние права в файле /var/svn/conf/authz… Попробую обязательно, до этого пробывал прикручивать svnserve к LDAP, в котором делал алиасы как раз в authz (те типа @bob = cn=bob,ou=user,dc=company,dc=ru), но не работал этот приём, после этого как то в сторону authz и не поварачивался.
Более подробно:
<Location />
DAV svn

SVNParentPath /var/svn
SVNAutoversioning off
AuthzSVNAccessFile /var/svn/conf/authz

AuthType Basic
AuthName "Software Repository"

AuthBasicProvider file ldap

AuthUserFile /var/svn/conf/.htpasswd
AuthBasicAuthoritative Off

AuthLDAPBindDN snvldapreader
AuthLDAPBindPassword тут_пароль
AuthLDAPURL "ldaps://u.r.l:636/DC=чего,DC=то?sAMAccountName?sub?(&(objectClass=user)(!(objectClass=computer)))"

Require valid-user


Сначала проверяем юзеров-пароли из файлика .htpasswd, т.к. доступ к репозитариям бывает нужен и клиентам, которые, естессно, не в AD компании; потом лезем в AD, ищем юзеров (но не имена компов)
Именно так я подумал, спасибо. Однако тут есть минус, тк я за AD не отвечаю, по любому чиху ( дать права пользователю, на коммит в репозиторий или убрать их) я буду выполнять эту работу, так как конфиги придёться править мне, в моём же случае при создании репозитория я указываю группу которая уже создана в LDAP, м все вопросы о предоставлении права пользователю коммитить в тот или иной репозиторий ложатся на плечи администратора AD. Но ваш вариант несомненно более логичный.
Вот теперь понятен смысл статьи. :) Спасибо!
UFO just landed and posted this here
Статья — костыль.


Спасибо КЭП!
Sign up to leave a comment.

Articles