浏览代码

[useradmin] remove old password requirement when superuser tries to change password for another user

krish 11 年之前
父节点
当前提交
a78c797
共有 2 个文件被更改,包括 5 次插入1 次删除
  1. 1 1
      apps/useradmin/src/useradmin/templates/edit_user.mako
  2. 4 0
      apps/useradmin/src/useradmin/views.py

+ 1 - 1
apps/useradmin/src/useradmin/templates/edit_user.mako

@@ -62,7 +62,7 @@ ${ layout.menubar(section='users') }
             </div>
             </div>
           % endif
           % endif
           ${layout.render_field(form["password2"], extra_attrs=username is None and {'validate':'true'} or {})}
           ${layout.render_field(form["password2"], extra_attrs=username is None and {'validate':'true'} or {})}
-          % if username:
+          % if username and "password_old" in form.fields:
             ${layout.render_field(form["password_old"], extra_attrs=username is None and {'validate':'true'} or {})}
             ${layout.render_field(form["password_old"], extra_attrs=username is None and {'validate':'true'} or {})}
           % endif
           % endif
         % endif
         % endif

+ 4 - 0
apps/useradmin/src/useradmin/views.py

@@ -193,6 +193,8 @@ def edit_user(request, username=None):
 
 
   if request.method == 'POST':
   if request.method == 'POST':
     form = form_class(request.POST, instance=instance)
     form = form_class(request.POST, instance=instance)
+    if request.user.is_superuser and request.user.username != username:
+      form.fields.pop("password_old")
     if form.is_valid(): # All validation rules pass
     if form.is_valid(): # All validation rules pass
       if instance is None:
       if instance is None:
         instance = form.save()
         instance = form.save()
@@ -238,6 +240,8 @@ def edit_user(request, username=None):
       'groups': default_user_group and [default_user_group] or []
       'groups': default_user_group and [default_user_group] or []
     }
     }
     form = form_class(instance=instance, initial=initial)
     form = form_class(instance=instance, initial=initial)
+    if request.user.is_superuser and request.user.username != username:
+      form.fields.pop("password_old")
 
 
   return render('edit_user.mako', request, dict(form=form, username=username))
   return render('edit_user.mako', request, dict(form=form, username=username))