From 45929882631537297daf9e14786f35ed93a6d852 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Tue, 30 Mar 2010 22:23:55 +0100 Subject: [PATCH] Warn on errors deleting a service account, also avoids deleting the record --- sso/models.py | 3 ++- sso/views.py | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/sso/models.py b/sso/models.py index 78afc1f..c6f3d88 100644 --- a/sso/models.py +++ b/sso/models.py @@ -181,6 +181,7 @@ class ServiceAccount(models.Model): def pre_delete_listener( **kwargs ): api = kwargs['instance'].service.api_class if api.check_user(kwargs['instance'].service_uid): - api.delete_user(kwargs['instance'].service_uid) + if not api.delete_user(kwargs['instance'].service_uid): + raise ServiceError('Unable to delete account on related service') signals.pre_delete.connect(ServiceAccount.pre_delete_listener, sender=ServiceAccount) diff --git a/sso/views.py b/sso/views.py index 8a27171..6487f8a 100644 --- a/sso/views.py +++ b/sso/views.py @@ -158,8 +158,12 @@ def service_del(request, serviceid=0): if request.method == 'POST': if 'confirm-delete' in request.POST: - acc.delete() - request.user.message_set.create(message="Service account successfully deleted.") + try: + acc.delete() + except ServiceError: + request.user.message_set.create(message="Error deleting the service account, try again later.") + else: + request.user.message_set.create(message="Service account successfully deleted.") else: return render_to_response('sso/serviceaccount/deleteconfirm.html', locals(), context_instance=RequestContext(request))