+def edit_user(request, gusername):
+ guser = User.objects.get(username = gusername)
+ if not request.user.is_authenticated():
+ return HttpResponseRedirect(reverse('login2'))
+ elif request.user == guser:
+ if request.method == 'POST': # If the form has been submitted...
+ form = NewUserForm(request.POST) # A form bound to the POST data
+ username = request.POST['username']
+ first_name = request.POST['first_name']
+ last_name = request.POST['last_name']
+ password = request.POST['password']
+ cpassword = request.POST['confirm_password']
+ email = request.POST['email']
+ guser.username = username
+ guser.first_name = first_name
+ guser.last_name = last_name
+ if not password.strip() == '':
+ if password == cpassword:
+ guser.set_password(password)
+ guser.email = email
+ guser.save()
+ return HttpResponseRedirect(reverse('edit_user', kwargs={'gusername':guser.username}))
+ else:
+ form = NewUserForm(initial={'username': guser.username, 'first_name': guser.first_name, 'last_name': guser.last_name, 'email': guser.email, }) # An unbound form
+ return render_to_response('edituser.html', {'cform': form,}, context_instance=RequestContext(request))
+ else:
+ return HttpResponseRedirect(reverse('index'))
+