修改修改用户bug

This commit is contained in:
ibuler
2015-09-02 21:42:31 +08:00
parent c21cdc2131
commit 3efd810fe1
6 changed files with 103 additions and 90 deletions

View File

@@ -130,4 +130,7 @@ class AdminGroup(models.Model):
user = models.ForeignKey(User)
group = models.ForeignKey(UserGroup)
def __unicode__(self):
return '%s: %s' % (self.user.username, self.group.name)

View File

@@ -81,19 +81,28 @@ def db_update_user(**kwargs):
数据库更新用户信息
"""
groups_post = kwargs.pop('groups')
admin_groups_post = kwargs.pop('admin_groups')
user_id = kwargs.pop('user_id')
user = User.objects.filter(id=user_id)
if user:
user.update(**kwargs)
user = User.objects.get(id=user_id)
user = user[0]
user.save()
else:
return None
group_select = []
if groups_post:
group_select = []
for group_id in groups_post:
group = UserGroup.objects.filter(id=group_id)
group_select.extend(group)
user.group = group_select
user.group = group_select
if admin_groups_post != '':
user.admingroup_set.all().delete()
for group_id in admin_groups_post:
group = get_object(UserGroup, id=group_id)
AdminGroup(user=user, group=group).save()
def db_del_user(username):

View File

@@ -527,54 +527,60 @@ def user_edit(request):
if not user_id:
return HttpResponseRedirect('/')
user_role = {'SU': u'超级管理员', 'DA': u'组管理员', 'CU': u'普通用户'}
user_role = {'SU': u'超级管理员', 'GA': u'组管理员', 'CU': u'普通用户'}
user = get_object(User, id=user_id)
group_all = UserGroup.objects.all()
if user:
groups_str = ' '.join([str(group.id) for group in user.group.all()])
admin_groups_str = ' '.join([str(admin_group.group.id) for admin_group in user.admingroup_set.all()])
else:
user_id = request.POST.get('user_id', '')
user_id = request.GET.get('id', '')
password = request.POST.get('password', '')
name = request.POST.get('name', '')
email = request.POST.get('email', '')
dept_id = request.POST.get('dept_id')
groups = request.POST.getlist('groups', [])
role_post = request.POST.get('role', 'CU')
ssh_key_pwd = request.POST.get('ssh_key_pwd', '')
is_active = True if request.POST.get('is_active', '1') == '1' else False
admin_groups = request.POST.getlist('admin_groups', [])
extra = request.POST.getlist('extra', [])
is_active = True if '0' in extra else False
email_need = True if '2' in extra else False
user_role = {'SU': u'超级管理员', 'DA': u'部门管理员', 'CU': u'普通用户'}
dept = DEPT.objects.filter(id=dept_id)
if dept:
dept = dept[0]
else:
dept = DEPT.objects.get(id='2')
print '#'*10 + str(email_need)
print extra
if user_id:
user = User.objects.filter(id=user_id)
if user:
user = user[0]
user = get_object(User, id=user_id)
else:
return HttpResponseRedirect('/juser/user_list/')
if password != user.password:
password_decode = password
password = CRYPTOR.md5_crypt(password)
if ssh_key_pwd != user.ssh_key_pwd:
gen_ssh_key(user.username, ssh_key_pwd)
ssh_key_pwd = CRYPTOR.encrypt(ssh_key_pwd)
else:
password_decode = None
db_update_user(user_id=user_id,
password=password,
name=name,
email=email,
groups=groups,
dept=dept,
admin_groups=admin_groups,
role=role_post,
is_active=is_active,
ssh_key_pwd=ssh_key_pwd)
is_active=is_active)
if email_need:
msg = u"""
Hi %s:
您的信息已修改,请登录跳板机查看详细信息
地址:%s
用户名: %s
密码:%s (如果密码为None代表密码为原密码)
角色:%s
""" % (user.name, URL, user.username, password_decode, user_role.get(role_post, u''))
send_mail('您的信息已修改', msg, MAIL_FROM, [email], fail_silently=False)
return HttpResponseRedirect('/juser/user_list/')