title: How do I prevent permission escalation in Django admin when granting "user change" permission?
body: <p>I have a django site with a large customer base. I would like to give our customer service department the ability to alter normal user accounts, doing things like changing passwords, email addresses, etc. However, if I grant someone the built-in <code>auth | user | Can change user</code> permission, they gain the ability to set the <code>is_superuser</code> flag on any account, including their own. (!!!)</p>
  
  <p>What's the best way to remove this option for non-superuser staff? I'm sure it involves subclassing <code>django.contrib.auth.forms.UserChangeForm</code> and hooking it into my already-custom <code>UserAdmin</code> object... somehow. But I can't find any documentation on how to do this, and I don't yet understand the internals well enough.</p>