mirror of
https://github.com/jazzband/django-admin2.git
synced 2026-03-16 22:20:24 +00:00
change password form dependent from user
This commit is contained in:
parent
2b172fdcc2
commit
b8413f96e3
6 changed files with 15 additions and 10 deletions
|
|
@ -125,7 +125,7 @@ class Admin2(object):
|
|||
view=self.index_view.as_view(**self.get_index_kwargs()),
|
||||
name='dashboard'
|
||||
),
|
||||
url(regex='^password_change/$',
|
||||
url(regex='^auth/user/(?P<pk>\d+)/update/password/$',
|
||||
view=views.PasswordChangeView.as_view(),
|
||||
name='password-change'
|
||||
),
|
||||
|
|
|
|||
|
|
@ -3,11 +3,12 @@
|
|||
{% load i18n %}
|
||||
{% load admin2_tags %}
|
||||
|
||||
{% block page_title %}{% trans "Password change" %}{% endblock %}
|
||||
{% block page_title %}{% trans "Password change" %}: {{ form.user }}{% endblock %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
<li><a href="{% url "admin2:dashboard" %}">Home</a> <span class="divider">/</span></li>
|
||||
<li class="active">{% trans "Password change" %}</li>
|
||||
<li class="active">{% trans "Password change" %} <span class="divider">/</span></li>
|
||||
<li class="active">{{ form.user }}</li>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
{% if user.has_usable_password %}
|
||||
<li><a href="{% url 'admin2:password-change' %}">{% trans "Change password" %}</a></li>
|
||||
<li><a href="{% url 'admin2:password-change' user.id %}">{% trans "Change password" %}</a></li>
|
||||
{% endif %}
|
||||
<li><a href="{% url 'admin2:logout' %}">{% trans "Log out" %}</a></li>
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -32,4 +32,4 @@ class Admin2Test(TestCase):
|
|||
|
||||
def test_get_urls(self):
|
||||
self.admin2.register(Thing)
|
||||
self.assertEquals(7, len(self.admin2.get_urls()))
|
||||
self.assertEquals(8, len(self.admin2.get_urls()))
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ from django.core.exceptions import PermissionDenied
|
|||
from django.core.urlresolvers import reverse, reverse_lazy
|
||||
from django.forms.models import modelform_factory
|
||||
from django.http import HttpResponseRedirect
|
||||
from braces.views import (AccessMixin)
|
||||
from braces.views import AccessMixin
|
||||
|
||||
from . import constants, permissions
|
||||
from .utils import admin2_urlname, model_options
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
from django.contrib.admin.forms import AdminAuthenticationForm
|
||||
from django.contrib.auth.forms import PasswordChangeForm
|
||||
from django.contrib.auth.forms import (PasswordChangeForm,
|
||||
AdminPasswordChangeForm)
|
||||
from django.contrib.auth.views import (logout as auth_logout,
|
||||
login as auth_login)
|
||||
from django.contrib.auth import get_user_model
|
||||
|
|
@ -139,7 +140,8 @@ class ModelDeleteView(AdminModel2Mixin, generic.DeleteView):
|
|||
class PasswordChangeView(Admin2Mixin, LoginRequiredMixin, generic.UpdateView):
|
||||
|
||||
default_template_name = 'auth/password_change_form.html'
|
||||
form_class = PasswordChangeForm
|
||||
form_class = AdminPasswordChangeForm
|
||||
admin_form_class = PasswordChangeForm
|
||||
model = get_user_model()
|
||||
success_url = reverse_lazy('admin2:password-change-done')
|
||||
|
||||
|
|
@ -153,8 +155,10 @@ class PasswordChangeView(Admin2Mixin, LoginRequiredMixin, generic.UpdateView):
|
|||
|
||||
return data
|
||||
|
||||
def get_object(self, **kwargs):
|
||||
return self.request.user
|
||||
def get_form_class(self):
|
||||
if self.request.user == self.get_object():
|
||||
return self.admin_form_class
|
||||
return super(PasswordChangeView, self).get_form_class()
|
||||
|
||||
|
||||
class PasswordChangeDoneView(Admin2Mixin, LoginRequiredMixin, generic.TemplateView):
|
||||
|
|
|
|||
Loading…
Reference in a new issue