Varun Sharma has proposed merging lp:~varun/postorius/user_delete into lp:postorius.
Requested reviews: Mailman Coders (mailman-coders) For more details, see: https://code.launchpad.net/~varun/postorius/user_delete/+merge/165962 The patch will enable the superusers (having django instance variable is_superuser set to True) to delele other users. All the subscriptions of the deleted user will also be deleted. -- https://code.launchpad.net/~varun/postorius/user_delete/+merge/165962 Your team Mailman Coders is requested to review the proposed merge of lp:~varun/postorius/user_delete into lp:postorius.
=== modified file 'src/postorius/templates/postorius/users/index.html' --- src/postorius/templates/postorius/users/index.html 2013-03-29 22:04:06 +0000 +++ src/postorius/templates/postorius/users/index.html 2013-05-28 06:22:34 +0000 @@ -16,6 +16,7 @@ <tr> <th>{% trans 'Email' %}</th> <th>{% trans 'Display name' %}</th> + <th></th> <!-- header for delete user button --> <!-- th>{% trans 'Web User' %}</th --> <!--th>{% trans 'Mailman User' %}</th --> </tr> @@ -29,6 +30,9 @@ <td> {{ mm_user.display_name }} </td> + <td> + <a href="{{mm_user.user_id}}/delete" class="btn btn-mini btn-danger">Delete</a> + </td> <!--td><i class="icon-ok"></i></td --> <!--td><i class="icon-remove"></i></td --> </tr> === added file 'src/postorius/templates/postorius/users/user_confirm_delete.html' --- src/postorius/templates/postorius/users/user_confirm_delete.html 1970-01-01 00:00:00 +0000 +++ src/postorius/templates/postorius/users/user_confirm_delete.html 2013-05-28 06:22:34 +0000 @@ -0,0 +1,13 @@ +{% extends "postorius/base.html" %} +{% load url from future %} +{% load i18n %} +{% load nav_helpers %} + +{% block main %} + <h1>{% trans 'Confirm Deletion' %}</h1> + <p>{% trans "Are you sure you want to permanently delete this user ?" %}</p> + <form action="{{submit_url}}" method="post"> {% csrf_token %} + <button class="btn btn-danger" type="submit">{% trans "Delete" %} {{ email_id }}</button> + <a class="btn" href="{% url 'user_index' %}">{% trans "Cancel" %}</a> + </form> +{% endblock main %} === modified file 'src/postorius/urls.py' --- src/postorius/urls.py 2013-03-29 22:04:06 +0000 +++ src/postorius/urls.py 2013-05-28 06:22:34 +0000 @@ -87,5 +87,6 @@ url(r'^users/new/$', 'user_new', name='user_new'), url(r'^users/(?P<user_id>[^/]+)/$', UserSummaryView.as_view(), name='user_summary'), + url(r'^users/(?P<user_id>\d+)/delete$', 'user_delete', name='user_delete'), url(r'^api/lists/$', 'api_list_index', name='api_list_index'), ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) === modified file 'src/postorius/views/user.py' --- src/postorius/views/user.py 2013-04-08 17:59:47 +0000 +++ src/postorius/views/user.py 2013-05-28 06:22:34 +0000 @@ -289,4 +289,37 @@ {'help_text':help_text, 'helpid':helpid}, context_instance=RequestContext(request)) + + +@user_passes_test(lambda u: u.is_superuser) +def user_delete(request,template='postorius/users/user_confirm_delete.html',**kwargs): + """ Deletes a user after asking for confirmation. + """ + user_id = kwargs["user_id"] + try: + mm_user = MailmanUser.objects.get_or_404(address=user_id) + except MailmanApiError: + return utils.render_api_error(request) + + try: + email_id = mm_user.addresses[0] + except IndexError: + email_id = '' + if request.method == 'POST': + try: + mm_user.delete() + except MailmanApiError: + return utils.render_api_error(request) + except HTTPError as e: + messages.error(request, _('The user could not be deleted:' + ' %s' % e.msg)) + messages.success(request, + _('The user %s has been deleted.' % email_id)) + return redirect("user_index") + + submit_url = reverse('user_delete', + kwargs={'user_id': user_id}) + return render_to_response(template, + {'user': request.user, 'submit_url': submit_url,'email_id':email_id}, + context_instance=RequestContext(request))
_______________________________________________ Mailman-coders mailing list Mailman-coders@python.org http://mail.python.org/mailman/listinfo/mailman-coders