修改用户信息

This commit is contained in:
guanghongwei 2014-09-29 09:30:57 +08:00
parent a263e50b3e
commit 4d58d9ef0e
2 changed files with 50 additions and 40 deletions

View File

@ -173,6 +173,7 @@ def user_assets(username):
assets.append(asset.aid)
return assets
def login_required(func):
"""要求登录的装饰器"""
def _deco(request, *args, **kwargs):
@ -476,52 +477,62 @@ def chgUser(request):
context_instance=RequestContext(request))
else:
form = UserAddForm(request.POST)
if form.is_valid():
user = form.cleaned_data
username = user['username']
password = md5_crypt(user['password'])
key_pass = md5_crypt(user['key_pass'])
name = user['name']
is_admin = user['is_admin']
is_superuser = user['is_superuser']
ldap_password = jm.encrypt(keygen(16))
group_post = user['group']
groups = []
user = form.cleaned_data
username = request.POST.get('username')
password = user['password']
password_again = user['password_again']
key_pass = user['key_pass']
key_pass_again = user['key_pass_again']
name = user['name']
is_admin = user['is_admin']
is_superuser = user['is_superuser']
ldap_password = jm.encrypt(keygen(16))
group_post = user['group']
groups = []
keyfile = '%s/keys/%s' % (base_dir, username)
keyfile = '%s/keys/%s' % (base_dir, username)
# 如果用户是admin那么不能委任其他admin或者超级用户
if is_admin_user(request):
is_admin = False
is_superuser = False
# 如果用户是admin那么不能委任其他admin或者超级用户
if is_admin_user(request):
is_admin = False
is_superuser = False
# 组
for group_name in group_post:
groups.append(Group.objects.get(name=group_name))
if password != password_again or key_pass != key_pass_again:
error = '密码不匹配'
u = User.objects.get(username=username)
if '' in [username, password, key_pass, name, group_post]:
error = '带*内容不能为空'
chg_keypass = bash('ssh-keygen -p -P %s -N %s -f %s' % (jm.decrypt(u.password), password, keyfile))
if chg_keypass != 0:
error = '修改密钥密码失败'
return render_to_response('chgUser.html',
{'user': user, 'user_menu': 'active', 'form': form, 'error': error},
context_instance=RequestContext(request))
# 组
for group_name in group_post:
groups.append(Group.objects.get(name=group_name))
u.password = password
u.key_pass = key_pass
u.name = name
u.is_admin = is_admin
u.is_superuser = is_superuser
u.ldap_password = ldap_password
u.group = groups
u = User.objects.get(username=username)
u.save()
msg = '修改用户信息成功'
chg_keypass = bash('ssh-keygen -p -P %s -N %s -f %s' % (jm.decrypt(u.password), password, keyfile))
if chg_keypass != 0:
error = '修改密钥密码失败'
if error:
return render_to_response('chgUser.html',
{'user': user, 'user_menu': 'active', 'form': form, 'msg': msg},
{'user': user, 'user_menu': 'active', 'form': form, 'error': error},
context_instance=RequestContext(request))
u.password = password
u.key_pass = key_pass
u.name = name
u.is_admin = is_admin
u.is_superuser = is_superuser
u.ldap_password = ldap_password
u.group = groups
u.save()
msg = '修改用户信息成功'
return render_to_response('chgUser.html',
{'user': user, 'user_menu': 'active', 'form': form, 'msg': msg},
context_instance=RequestContext(request))
@admin_required
def showAssets(request):

View File

@ -1,6 +1,6 @@
{% extends 'base.html' %}
{% block content %}
<form class="form-horizontal" role="form" method="post" action="" >
<form class="form-horizontal" role="form" method="post" action="/chgUser/" >
<fieldset >
<legend>修改用户信息</legend>
{% if error %}
@ -21,10 +21,9 @@
</div>
{% endif %}
<div class="form-group">
{{ form.username.errors }}
<label for="id_username" class="col-sm-2 control-label">用户名<span style="color: red"> *</span></label>
<div class="col-sm-4">
<input type="text" id="id_username" name="id_username" class="form-control" value="{{ user.username }}" disabled="disabled" >
<input type="text" id="id_username" name="username" class="form-control" value="{{ user.username }}" disabled="disabled" >
</div>
</div>
<div class="form-group">
@ -65,7 +64,7 @@
</div>
<div class="form-group">
{{ form.group.errors }}
<label for="id_group" class="col-sm-2 control-label">属组</label>
<label for="id_group" class="col-sm-2 control-label">属组<span style="color: red"> *</span></label>
<div class="col-sm-4">
{{ form.group }}
</div>