From c1d7994045dfec373bacc960e420a46f3bed0c64 Mon Sep 17 00:00:00 2001 From: Col Crunch Date: Wed, 11 Jul 2018 00:47:04 -0400 Subject: [PATCH] Add setting to allow for unrestricted leaving of all groups. --- allianceauth/groupmanagement/views.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/allianceauth/groupmanagement/views.py b/allianceauth/groupmanagement/views.py index 3c199129..3e575e9c 100755 --- a/allianceauth/groupmanagement/views.py +++ b/allianceauth/groupmanagement/views.py @@ -14,6 +14,8 @@ from .models import GroupRequest from allianceauth.notifications import notify +from django.conf import settings + logger = logging.getLogger(__name__) @@ -333,6 +335,18 @@ def group_request_leave(request, group_id): logger.info("%s leaving %s as is an open group" % (request.user, group)) request.user.groups.remove(group) return redirect("groupmanagement:groups") + req = GroupRequest.objects.filter(user=request.user, group=group) + if len(req) > 0: + logger.info("%s attempted to leave %s but already has an pending leave request." % (request.user, group)) + messages.warning(request, "You already have a pending leave request for that group.") + return redirect("groupmanagement:groups") + if hasattr(settings, 'AUTO_LEAVE'): + if settings.auto_leave: + logger.info("%s leaving joinable group %s due to auto_leave" % (request.user, group)) + request.user.groups.remove(group) + return redirect('groupmanagement:groups') + else: + pass grouprequest = GroupRequest() grouprequest.status = _('Pending') grouprequest.group = group