diff --git a/services/managers/mumble_manager.py b/services/managers/mumble_manager.py index b3e12ff4..8c56d44d 100755 --- a/services/managers/mumble_manager.py +++ b/services/managers/mumble_manager.py @@ -115,3 +115,7 @@ class MumbleManager: model.save() else: logger.error("User %s not found on mumble. Unable to update groups." % username) + + @staticmethod + def user_exists(username): + return MumbleUser.objects.filter(username=username).exists() diff --git a/services/views.py b/services/views.py index adb1ab89..d84fd611 100755 --- a/services/views.py +++ b/services/views.py @@ -514,9 +514,8 @@ def activate_mumble(request): def deactivate_mumble(request): logger.debug("deactivate_mumble called by user %s" % request.user) authinfo = AuthServicesInfo.objects.get_or_create(user=request.user)[0] - result = MumbleManager.delete_user(authinfo.mumble_username) - # if false we failed - if result: + # if we successfully remove the user or the user is already removed + if MumbleManager.delete_user(authinfo.mumble_username) or not MumbleManager.user_exists(authinfo.mumble_username): AuthServicesInfoManager.update_user_mumble_info("", request.user) logger.info("Successfully deactivated mumble for user %s" % request.user) messages.success(request, 'Deactivated Mumble account.')