更改chgKey函数

pull/2/head
guanghongwei 2014-10-01 21:00:17 +08:00
parent 86a9c46643
commit cd3f787aef
3 changed files with 56 additions and 59 deletions

View File

@ -474,7 +474,7 @@ def chgUser(request):
user = User.objects.get(username=username)
ori_is_admin = "checked" if user.is_admin else ''
ori_is_superuser = 'checked' if user.is_superuser else ''
all_groups = user.group.all()
all_groups = Group.objects.all()
return render_to_response('chgUser.html',
{'user': user, 'user_menu': 'active', 'is_admin': ori_is_admin,
@ -482,10 +482,6 @@ def chgUser(request):
context_instance=RequestContext(request))
else:
username = request.POST.get('username')
password = request.POST.get('password')
password_again = request.POST.get('password_again')
key_pass = request.POST.get('key_pass')
key_pass_again = request.POST.get('key_pass_again')
name = request.POST.get('name')
is_admin = request.POST.get('is_admin')
is_superuser = request.POST.get('is_superuser')
@ -494,10 +490,11 @@ def chgUser(request):
user = User.objects.get(username=username)
all_groups = Group.objects.all()
keyfile = '%s/keys/%s' % (base_dir, username)
# 获得原来的,然设为初始值
ori_is_admin = "checked" if user.is_admin else ''
ori_is_superuser = 'checked' if user.is_superuser else ''
# 属组的获取
for group_name in group_post:
groups.append(Group.objects.get(name=group_name))
@ -509,30 +506,16 @@ def chgUser(request):
is_admin = True if is_admin else False
is_superuser = True if is_superuser else False
if password != password_again or key_pass != key_pass_again:
error = u'密码不匹配'
if '' in [username, password, key_pass, name, group_post]:
if '' in [username, name, group_post]:
error = u'带*内容不能为空'
if len(password) < 6 or len(key_pass) < 6:
error = u'密码长度需>6'
u = User.objects.get(username=username)
chg_keypass = bash('ssh-keygen -p -P %s -N %s -f %s' % (jm.decrypt(u.key_pass), key_pass, keyfile))
if chg_keypass != 0:
error = u'修改密钥密码失败'
if error:
return render_to_response('chgUser.html',
{'user': user, 'user_menu': 'active', 'is_admin': ori_is_admin,
'is_superuser': ori_is_superuser, 'groups': all_groups, 'error': error},
context_instance=RequestContext(request))
u.password = md5_crypt(password)
u.key_pass = jm.encrypt(key_pass)
u = User.objects.get(username=username)
u.name = name
u.is_admin = is_admin
u.is_superuser = is_superuser
@ -700,26 +683,46 @@ def chgKey(request):
"""修改密钥密码"""
error = ''
msg = ''
is_self = False
if request.method == 'GET':
username = request.GET.get('username')
if not username:
username = request.session.get('username')
oldpass = request.POST.get('oldpass')
password = request.POST.get('password')
password_confirm = request.POST.get('password_confirm')
keyfile = '%s/keys/%s' % (base_dir, username)
if request.method == 'POST':
if '' in [oldpass, password, password_confirm]:
error = '带*内容不能为空'
elif password != password_confirm:
error = '两次密码不匹配'
if not error:
ret = subprocess.call('ssh-keygen -p -P %s -N %s -f %s' % (oldpass, password, keyfile), shell=True)
if not ret:
error = '原来密码不正确'
else:
msg = '修改密码成功'
is_self = True
return render_to_response('chgKey.html',
{'error': error, 'msg': msg},
{'username': username, 'is_self': is_self},
context_instance=RequestContext(request))
else:
try:
oldpass = request.POST.get('oldpass')
except KeyError:
pass
else:
username = request.POST.get('username')
user = User.objects.get(username=username)
if oldpass != user.key_pass:
error = '原来密码不正确'
username = request.POST.get('username')
user = request.objects.get(username=username)
password = request.POST.get('password')
password_again = request.POST.get('password_again')
if password != password_again:
error = '密码不匹配'
if error:
return HttpResponse(error)
keyfile = '%s/keys/%s' % (base_dir, username)
ret = bash('ssh-keygen -p -P %s -N %s -f %s' % (user.key_pass, password, keyfile))
if ret != 0:
error = '更改私钥密码错误'
return HttpResponse(error)
user['keypass'] = password
user.save()
return HttpResponse('修改密码成功')

View File

@ -13,12 +13,20 @@
{{ msg }}
</div>
{% endif %}
<div class="form-group">
<label for="username" class="col-sm-2 control-label">用户名<span style="color: red"> *</span></label>
<div class="col-sm-4">
<input type="text" class="form-control" id="username" name="username" placeholder="用户名" readonly="readOnly">
</div>
</div>
{% if is_self %}
<div class="form-group">
<label for="oldpass" class="col-sm-2 control-label">原来的密码<span style="color: red"> *</span></label>
<div class="col-sm-4">
<input type="password" class="form-control" id="oldpass" name="oldpass" placeholder="用户名">
<input type="password" class="form-control" id="oldpass" name="oldpass" placeholder="原来密码">
</div>
</div>
{% endif %}
<div class="form-group">
<label for="password" class="col-sm-2 control-label">新密码<span style="color: red"> *</span></label>
<div class="col-sm-4">

View File

@ -29,26 +29,12 @@
<div class="form-group">
<label for="password" class="col-sm-2 control-label">密码<span style="color: red"> *</span></label>
<div class="col-sm-4">
<input type="password" id="password" name="password" class="form-control" value="{{ user.password }}" >
</div>
</div>
<div class="form-group">
<label for="password_again" class="col-sm-2 control-label">确认密码<span style="color: red"> *</span></label>
<div class="col-sm-4">
<input type="password" id="password_again" name="password_again" class="form-control" value="{{ user.password }}" >
<a href="/chgPass/?username={{ user.username }}">修改密码</a>
</div>
</div>
<div class="form-group">
<label for="key_pass" class="col-sm-2 control-label">密钥密码<span style="color: red"> *</span></label>
<div class="col-sm-4">
<input type="password" id="key_pass" name="key_pass" class="form-control" value="{{ user.key_pass }}" >
</div>
</div>
<div class="form-group">
<label for="key_pass_again" class="col-sm-2 control-label">确认密码<span style="color: red"> *</span></label>
<div class="col-sm-4">
<input type="password" id="key_pass_again" name="key_pass_again" class="form-control" value="{{ user.key_pass }}" >
</div>
<a href="/chgKey/?username={{ user.username }}">修改密钥密码</a>
</div>
<div class="form-group">
<label for="name" class="col-sm-2 control-label">姓名<span style="color: red"> *</span></label>
@ -80,7 +66,7 @@
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-4">
<button class="btn btn-primary">添加</button>
<button class="btn btn-primary">修改</button>
</div>
</div>
</fieldset>