mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-16 16:00:17 +02:00
Merge branch 'group_application_fix' into 'master'
Group Application Tweaks See merge request allianceauth/allianceauth!1096
This commit is contained in:
commit
4947e0c483
@ -14,6 +14,8 @@ from .models import GroupRequest, RequestLog
|
|||||||
|
|
||||||
from allianceauth.notifications import notify
|
from allianceauth.notifications import notify
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@ -327,6 +329,12 @@ def group_request_add(request, group_id):
|
|||||||
(request.user, group_id))
|
(request.user, group_id))
|
||||||
messages.warning(request, _("You cannot join that group"))
|
messages.warning(request, _("You cannot join that group"))
|
||||||
return redirect('groupmanagement:groups')
|
return redirect('groupmanagement:groups')
|
||||||
|
if group in request.user.groups.all():
|
||||||
|
# User is already a member of this group.
|
||||||
|
logger.warning("User %s attempted to join group id %s but they are already a member." %
|
||||||
|
(request.user, group_id))
|
||||||
|
messages.warning(request, "You are already a member of that group.")
|
||||||
|
return redirect('groupmanagement:groups')
|
||||||
if not request.user.has_perm('groupmanagement.request_groups') and not group.authgroup.public:
|
if not request.user.has_perm('groupmanagement.request_groups') and not group.authgroup.public:
|
||||||
# Does not have the required permission, trying to join a non-public group
|
# Does not have the required permission, trying to join a non-public group
|
||||||
logger.warning("User %s attempted to join group id %s but it is not a public group" %
|
logger.warning("User %s attempted to join group id %s but it is not a public group" %
|
||||||
@ -337,6 +345,11 @@ def group_request_add(request, group_id):
|
|||||||
logger.info("%s joining %s as is an open group" % (request.user, group))
|
logger.info("%s joining %s as is an open group" % (request.user, group))
|
||||||
request.user.groups.add(group)
|
request.user.groups.add(group)
|
||||||
return redirect("groupmanagement:groups")
|
return redirect("groupmanagement:groups")
|
||||||
|
req = GroupRequest.objects.filter(user=request.user, group=group)
|
||||||
|
if len(req) > 0:
|
||||||
|
logger.info("%s attempted to join %s but already has an open application" % (request.user, group))
|
||||||
|
messages.warning(request, "You already have a pending application for that group.")
|
||||||
|
return redirect("groupmanagement:groups")
|
||||||
grouprequest = GroupRequest()
|
grouprequest = GroupRequest()
|
||||||
grouprequest.status = _('Pending')
|
grouprequest.status = _('Pending')
|
||||||
grouprequest.group = group
|
grouprequest.group = group
|
||||||
@ -366,6 +379,15 @@ def group_request_leave(request, group_id):
|
|||||||
logger.info("%s leaving %s as is an open group" % (request.user, group))
|
logger.info("%s leaving %s as is an open group" % (request.user, group))
|
||||||
request.user.groups.remove(group)
|
request.user.groups.remove(group)
|
||||||
return redirect("groupmanagement:groups")
|
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', False) and 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')
|
||||||
grouprequest = GroupRequest()
|
grouprequest = GroupRequest()
|
||||||
grouprequest.status = _('Pending')
|
grouprequest.status = _('Pending')
|
||||||
grouprequest.group = group
|
grouprequest.group = group
|
||||||
|
Loading…
x
Reference in New Issue
Block a user