diff --git a/seahub/templates/sysadmin/sys_invitations_admin.html b/seahub/templates/sysadmin/sys_invitations_admin.html index 477e392de9..a189d97c13 100644 --- a/seahub/templates/sysadmin/sys_invitations_admin.html +++ b/seahub/templates/sysadmin/sys_invitations_admin.html @@ -12,8 +12,9 @@ {% trans "Inviter" %} {% trans "Accepter" %} {% trans "Type" %} - {% trans "Invited at" %} - {% trans "Accepted at" %} + {% trans "Invited at" %} + {% trans "Accepted at" %} + {% for invitation in invitations %} @@ -30,6 +31,7 @@ {% else %} -- {% endif %} + {% trans "Delete" %} {% endfor %} @@ -44,5 +46,21 @@ {% block extra_script %} {% endblock %} diff --git a/seahub/urls.py b/seahub/urls.py index ed39134483..99e92d3f90 100644 --- a/seahub/urls.py +++ b/seahub/urls.py @@ -348,6 +348,7 @@ urlpatterns = patterns( url(r'^sys/uploadlink/remove/$', sys_upload_link_remove, name='sys_upload_link_remove'), url(r'^sys/notificationadmin/', notification_list, name='notification_list'), url(r'^sys/invitationadmin/$', sys_invitation_admin, name='sys_invitation_admin'), + url(r'^sys/invitationadmin/remove/$', sys_invitation_remove, name='sys_invitation_remove'), url(r'^sys/sudo/', sys_sudo_mode, name='sys_sudo_mode'), url(r'^sys/check-license/', sys_check_license, name='sys_check_license'), url(r'^useradmin/add/$', user_add, name="user_add"), diff --git a/seahub/views/sysadmin.py b/seahub/views/sysadmin.py index 82574ab7b3..3677e43bcd 100644 --- a/seahub/views/sysadmin.py +++ b/seahub/views/sysadmin.py @@ -16,7 +16,7 @@ from django.conf import settings as dj_settings from django.core.urlresolvers import reverse from django.contrib import messages from django.http import HttpResponse, Http404, HttpResponseRedirect, HttpResponseNotAllowed -from django.shortcuts import render_to_response +from django.shortcuts import render_to_response, get_object_or_404 from django.template import RequestContext from django.utils import timezone from django.utils.translation import ugettext as _ @@ -2316,6 +2316,27 @@ def sys_invitation_admin(request): }, context_instance=RequestContext(request)) +@login_required +@sys_staff_required +def sys_invitation_remove(request): + """Delete an invitation. + """ + ct = 'application/json; charset=utf-8' + result = {} + + if not ENABLE_GUEST_INVITATION: + return HttpResponse(json.dumps({}), status=400, content_type=ct) + + inv_id = request.POST.get('inv_id', '') + if not inv_id: + result = {'error': "Argument missing"} + return HttpResponse(json.dumps(result), status=400, content_type=ct) + + inv = get_object_or_404(Invitation, pk=inv_id) + inv.delete() + + return HttpResponse(json.dumps({'success': True}), content_type=ct) + @login_required @sys_staff_required def sys_terms_admin(request):