possibility to change user password

This commit is contained in:
Élie Bouttier 2014-08-30 19:53:59 -07:00
parent b6209ba76c
commit 808764bd2c
4 changed files with 18 additions and 2 deletions

View file

@ -9,8 +9,7 @@ __all__ = ['UserForm', 'GroupForm', 'TeamForm']
UserForm = modelform_factory(User, UserForm = modelform_factory(User,
fields=['username', 'first_name', fields=['username', 'first_name',
'last_name', 'email', 'is_superuser'], 'last_name', 'email', 'is_superuser'])
widgets={'password': PasswordInput})
GroupForm = modelform_factory(Group, GroupForm = modelform_factory(Group,
fields=['name']) fields=['name'])
TeamForm = modelform_factory(Team, TeamForm = modelform_factory(Team,

View file

@ -9,6 +9,7 @@ urlpatterns = [
url(r'^admin/users/add/$', 'accounts.views.user_edit', name='add-user'), url(r'^admin/users/add/$', 'accounts.views.user_edit', name='add-user'),
url(r'^admin/users/(?P<user>[0-9]+)/$', 'accounts.views.user_details', name='show-user'), url(r'^admin/users/(?P<user>[0-9]+)/$', 'accounts.views.user_details', name='show-user'),
url(r'^admin/users/(?P<user>[0-9]+)/edit/$', 'accounts.views.user_edit', name='edit-user'), url(r'^admin/users/(?P<user>[0-9]+)/edit/$', 'accounts.views.user_edit', name='edit-user'),
url(r'^admin/users/(?P<user>[0-9]+)/edit-password/$', 'accounts.views.user_edit_password', name='edit-user-password'),
url(r'^admin/users/(?P<user>[0-9]+)/delete/$', 'accounts.views.user_delete', name='delete-user'), url(r'^admin/users/(?P<user>[0-9]+)/delete/$', 'accounts.views.user_delete', name='delete-user'),
url(r'^admin/users/(?P<user>[0-9]+)/activate/$', 'accounts.views.user_activate', name='activate-user'), url(r'^admin/users/(?P<user>[0-9]+)/activate/$', 'accounts.views.user_activate', name='activate-user'),
url(r'^admin/users/(?P<user>[0-9]+)/disable/$', 'accounts.views.user_disable', name='disable-user'), url(r'^admin/users/(?P<user>[0-9]+)/disable/$', 'accounts.views.user_disable', name='disable-user'),

View file

@ -1,5 +1,6 @@
from django.shortcuts import render, redirect, get_object_or_404 from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.auth.forms import AdminPasswordChangeForm
from django.views.decorators.http import require_http_methods from django.views.decorators.http import require_http_methods
from django.contrib import messages from django.contrib import messages
from django.db.models import Q from django.db.models import Q
@ -64,6 +65,20 @@ def user_edit(request, user=None):
}) })
@project_perm_required('manage_accounts')
def user_edit_password(request, user):
user = get_object_or_404(User, id=user)
form = AdminPasswordChangeForm(user, request.POST or None)
if request.method == 'POST' and form.is_valid():
form.save()
messages.success(request, 'User password modified successfully.')
return redirect('show-user', user.id)
return render(request, 'accounts/user_edit.html', {
'user': user,
'form': form,
})
@project_perm_required('manage_accounts') @project_perm_required('manage_accounts')
def user_activate(request, user): def user_activate(request, user):
user = get_object_or_404(User, id=user) user = get_object_or_404(User, id=user)

View file

@ -32,6 +32,7 @@
{% else %} {% else %}
<a href="{% url 'activate-user' user.id %}" class="btn btn-default"><span class="glyphicon glyphicon-check"></span> activate</a> <a href="{% url 'activate-user' user.id %}" class="btn btn-default"><span class="glyphicon glyphicon-check"></span> activate</a>
{% endif %} {% endif %}
<a href="{% url 'edit-user-password' user.id %}" class="btn btn-info"><span class="glyphicon glyphicon-cog"></span> change password</a>
<a href="{% url 'edit-user' user.id %}" class="btn btn-primary"><span class="glyphicon glyphicon-edit"></span> edit</a> <a href="{% url 'edit-user' user.id %}" class="btn btn-primary"><span class="glyphicon glyphicon-edit"></span> edit</a>
<a href="javascript:void(0);" data-item="delete" data-action="{% url 'delete-user' user.id %}" data-toggle="modal" data-target="#confirm-delete" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span> delete</a> <a href="javascript:void(0);" data-item="delete" data-action="{% url 'delete-user' user.id %}" data-toggle="modal" data-target="#confirm-delete" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span> delete</a>
</div> </div>