mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-12 14:00:17 +02:00
Include requestable groups other than open
This commit is contained in:
parent
25dadf81f6
commit
42def30c91
@ -48,11 +48,8 @@ def group_management(request):
|
|||||||
def group_membership(request):
|
def group_membership(request):
|
||||||
logger.debug("group_membership called by user %s" % request.user)
|
logger.debug("group_membership called by user %s" % request.user)
|
||||||
# Get all open and closed groups
|
# Get all open and closed groups
|
||||||
opengroups = OpenGroup.objects.all().annotate(num_members=Count('group__user'))
|
groups = [group for group in Group.objects.all().annotate(num_members=Count('user')).order_by('name')
|
||||||
closedgroups = HiddenGroup.objects.all().annotate(num_members=Count('group__user'))
|
if joinable_group(group)]
|
||||||
|
|
||||||
groups = list(chain(opengroups, closedgroups))
|
|
||||||
groups.sort(key=lambda g: g.group.name.lower())
|
|
||||||
|
|
||||||
render_items = {'groups': groups}
|
render_items = {'groups': groups}
|
||||||
|
|
||||||
@ -67,7 +64,7 @@ def group_membership_list(request, group_id):
|
|||||||
group = Group.objects.get(id=group_id)
|
group = Group.objects.get(id=group_id)
|
||||||
|
|
||||||
# Check its a joinable group i.e. not corp or internal
|
# Check its a joinable group i.e. not corp or internal
|
||||||
if not hasattr(group, 'hiddengroup') and not hasattr(group, 'opengroup'):
|
if not joinable_group(group):
|
||||||
raise PermissionDenied
|
raise PermissionDenied
|
||||||
|
|
||||||
except ObjectDoesNotExist:
|
except ObjectDoesNotExist:
|
||||||
@ -221,13 +218,7 @@ def groups_view(request):
|
|||||||
|
|
||||||
for group in Group.objects.all():
|
for group in Group.objects.all():
|
||||||
# Check if group is a corp
|
# Check if group is a corp
|
||||||
if "Corp_" in group.name:
|
if not joinable_group(group):
|
||||||
pass
|
|
||||||
elif "Alliance_" in group.name:
|
|
||||||
pass
|
|
||||||
elif settings.DEFAULT_AUTH_GROUP in group.name:
|
|
||||||
pass
|
|
||||||
elif settings.DEFAULT_BLUE_GROUP in group.name:
|
|
||||||
pass
|
pass
|
||||||
elif HiddenGroup.objects.filter(group=group).exists():
|
elif HiddenGroup.objects.filter(group=group).exists():
|
||||||
pass
|
pass
|
||||||
@ -291,3 +282,18 @@ def group_request_leave(request, group_id):
|
|||||||
logger.info("Created group leave request for user %s to group %s" % (request.user, Group.objects.get(id=group_id)))
|
logger.info("Created group leave request for user %s to group %s" % (request.user, Group.objects.get(id=group_id)))
|
||||||
messages.success(request, 'Applied to leave group %s.' % group)
|
messages.success(request, 'Applied to leave group %s.' % group)
|
||||||
return redirect("auth_groups")
|
return redirect("auth_groups")
|
||||||
|
|
||||||
|
|
||||||
|
def joinable_group(group):
|
||||||
|
"""
|
||||||
|
Check if a group is a user joinable group, i.e.
|
||||||
|
not an internal group for Corp, Alliance, Members etc
|
||||||
|
:param group: django.contrib.auth.models.Group object
|
||||||
|
:return: bool True if its joinable, False otherwise
|
||||||
|
"""
|
||||||
|
return (
|
||||||
|
"Corp_" not in group.name and
|
||||||
|
"Alliance_" not in group.name and
|
||||||
|
settings.DEFAULT_AUTH_GROUP not in group.name and
|
||||||
|
settings.DEFAULT_BLUE_GROUP not in group.name
|
||||||
|
)
|
||||||
|
@ -23,22 +23,22 @@
|
|||||||
</tr>
|
</tr>
|
||||||
{% for group in groups %}
|
{% for group in groups %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center">{{ group.group.name }}</td>
|
<td class="text-center">{{ group.name }}</td>
|
||||||
<td class="text-center">{{ group.group.groupdescription.description }}</td>
|
<td class="text-center">{{ group.groupdescription.description }}</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
{% if group.group.hiddengroup %}
|
{% if group.hiddengroup %}
|
||||||
<span class="label label-info">{% trans "Hidden" %}</span>
|
<span class="label label-info">{% trans "Hidden" %}</span>
|
||||||
{% elif group.group.opengroup %}
|
{% elif group.opengroup %}
|
||||||
<span class="label label-success">{% trans "Open" %}</span>
|
<span class="label label-success">{% trans "Open" %}</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="label label-default">{% trans "Other" %}</span>
|
<span class="label label-default">{% trans "Requestable" %}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
{{ group.num_members }}
|
{{ group.num_members }}
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<a href="{% url 'auth_group_membership_list' group.group.id %}" class="btn btn-primary"
|
<a href="{% url 'auth_group_membership_list' group.id %}" class="btn btn-primary"
|
||||||
title="{% trans "View Members" %}">
|
title="{% trans "View Members" %}">
|
||||||
<i class="glyphicon glyphicon-eye-open"></i>
|
<i class="glyphicon glyphicon-eye-open"></i>
|
||||||
</a>
|
</a>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user