修改用户信息

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

View File

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