Mercurial: как разрешить удаленным пользователям менять свой пароль?

Я настроил хранилище Mercurial на своем веб-сервере, используя Apache и hgweb. Я понимаю, как создавать новые учетные записи пользователей с помощью htdigest, но я хотел бы знать, как разрешить удаленным пользователям изменять свой пароль. В идеале я бы создал их учетную запись с временным паролем, а затем отправил бы им электронное письмо с предложением изменить его. Пользователи должны иметь возможность менять свой собственный пароль, а не пароль других пользователей (в противном случае я бы просто предоставил им учетную запись оболочки).

Можно ли это сделать? Если так, то как?

1 ответ

Решение

Htdigest - это файл конфигурации пользователя Apache, и в принципе управление им выходит за рамки самой Mercurial.

Чтобы предоставить форму смены пароля, вам нужно написать собственный скрипт, который манипулирует файлом htdigest. Это не должно быть слишком сложно. Насколько я понимаю, каждая строка этого файла имеет формат:

user:realm:MD5(user:realm:pass)

Пример кода для генерации MD5-части этого формата можно найти здесь:

http://httpd.apache.org/docs/trunk/misc/password_encryptions.html

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

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

Другие вопросы по тегам