(reusing code previously written for the community lists) instead of the a custom MD5 scheme, add tests of all views, rewrite custom form handling code to use plain forms and ensure that the data is properly validated and errors visible in the UI. Move help texts on the Person form up to the model. - Legacy-Id: 11136
25 lines
858 B
Python
25 lines
858 B
Python
import subprocess, hashlib
|
|
|
|
from django.conf import settings
|
|
|
|
def save_htpasswd_file(username, password):
|
|
if getattr(settings, 'USE_PYTHON_HTDIGEST', None):
|
|
pass_file = settings.HTPASSWD_FILE
|
|
realm = settings.HTDIGEST_REALM
|
|
prefix = '%s:%s:' % (username, realm)
|
|
key = hashlib.md5(prefix + password).hexdigest()
|
|
f = open(pass_file, 'r+')
|
|
pos = f.tell()
|
|
line = f.readline()
|
|
while line:
|
|
if line.startswith(prefix):
|
|
break
|
|
pos=f.tell()
|
|
line = f.readline()
|
|
f.seek(pos)
|
|
f.write('%s%s\n' % (prefix, key))
|
|
f.close()
|
|
else:
|
|
p = subprocess.Popen([settings.HTPASSWD_COMMAND, "-b", settings.HTPASSWD_FILE, username, password], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
stdout, stderr = p.communicate()
|