diff --git a/wagtail/wagtailusers/templates/wagtailusers/groups/confirm_delete.html b/wagtail/wagtailusers/templates/wagtailusers/groups/confirm_delete.html new file mode 100644 index 000000000..c86ab250f --- /dev/null +++ b/wagtail/wagtailusers/templates/wagtailusers/groups/confirm_delete.html @@ -0,0 +1,33 @@ +{% extends "wagtailadmin/base.html" %} +{% load i18n %} +{% block titletag %}{% trans "Delete group" %}{% endblock %} +{% block bodyclass %}menu-groups{% endblock %} + +{% block content %} + {% trans "Delete group" as del_str %} + {% include "wagtailadmin/shared/header.html" with title=del_str subtitle=group.name icon="group" %} + +
+
+

+ {% blocktrans with group_user_count=group.user_set.count group_name=group.name %}The group '{{ group_name }}' has {{ group_user_count }} users assigned.{% endblocktrans %} +

+

+ {% if group.user_set.count %} + If you delete the group, those users will lose the permissions + granted to them by membership of this group, but retain + permissions they have through membership of other groups. + {% else %} + It is probably safe to delete. + {% endif %} +

+
+
+

{% trans "Are you sure you want to delete this group?" %}

+
+ {% csrf_token %} + +
+
+
+{% endblock %} diff --git a/wagtail/wagtailusers/templates/wagtailusers/groups/edit.html b/wagtail/wagtailusers/templates/wagtailusers/groups/edit.html index 54b4b1d9b..7ef34d89d 100644 --- a/wagtail/wagtailusers/templates/wagtailusers/groups/edit.html +++ b/wagtail/wagtailusers/templates/wagtailusers/groups/edit.html @@ -16,7 +16,11 @@ {% include "wagtailadmin/shared/field_as_li.html" with field=form.name %} {% format_permissions permission_bound_field=form.permissions %} {% include "wagtailusers/groups/includes/page_permissions_formset.html" with formset=formset only %} -
  • +
  • + {% if perms.auth.delete_group %} + {% trans "Delete group" %} + {% endif %} +
  • diff --git a/wagtail/wagtailusers/urls/groups.py b/wagtail/wagtailusers/urls/groups.py index 4899eea12..be3ba3db9 100644 --- a/wagtail/wagtailusers/urls/groups.py +++ b/wagtail/wagtailusers/urls/groups.py @@ -5,4 +5,5 @@ urlpatterns = [ url(r'^$', groups.index, name='wagtailusers_groups_index'), url(r'^new/$', groups.create, name='wagtailusers_groups_create'), url(r'^(\d+)/$', groups.edit, name='wagtailusers_groups_edit'), + url(r'^(\d+)/delete/$', groups.delete, name='wagtailusers_groups_delete'), ] diff --git a/wagtail/wagtailusers/views/groups.py b/wagtail/wagtailusers/views/groups.py index 008a8cb0b..07a475c77 100644 --- a/wagtail/wagtailusers/views/groups.py +++ b/wagtail/wagtailusers/views/groups.py @@ -133,3 +133,17 @@ def edit(request, group_id): 'form': form, 'formset': formset, }) + + +@permission_required('auth.delete_group') +def delete(request, group_id): + group = get_object_or_404(Group, id=group_id) + + if request.POST: + group.delete() + messages.success(request, _("Group '{0}' deleted.").format(group.name)) + return redirect('wagtailusers_groups_index') + + return render(request, "wagtailusers/groups/confirm_delete.html", { + 'group': group, + })