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))