diff --git a/game/templates/game/group_detail.html b/game/templates/game/group_detail.html
index 08cb55c..9245ca6 100644
--- a/game/templates/game/group_detail.html
+++ b/game/templates/game/group_detail.html
@@ -4,13 +4,17 @@
{{ group.name }}
-
- Modifier le groupe
-
+ {% if group.owner == user %}
+
+ Modifier le groupe
+
+ {% endif %}
Membres
-
- Modifier les membres
-
+ {% if group.owner == user %}
+
+ Modifier les membres
+
+ {% endif %}
-
{{ group.owner }} ({{ owner_count }})
diff --git a/game/views.py b/game/views.py
index 28d0929..1574493 100644
--- a/game/views.py
+++ b/game/views.py
@@ -14,6 +14,15 @@ class OwnerFilterMixin(LoginRequiredMixin):
return super().get_queryset().filter(owner=self.request.user)
+class MemberFilterMixin(LoginRequiredMixin):
+ def get_queryset(self):
+ return (
+ super()
+ .get_queryset()
+ .filter(Q(members=self.request.user) | Q(owner=self.request.user))
+ )
+
+
class GroupMixin:
model = models.Group
fields = ["name"]
@@ -33,7 +42,7 @@ class GroupDeleteView(OwnerFilterMixin, GroupMixin, DeleteView):
success_url = "/"
-class GroupDetailView(OwnerFilterMixin, GroupMixin, DetailView):
+class GroupDetailView(MemberFilterMixin, GroupMixin, DetailView):
def get_context_data(self, **kwargs):
data = super().get_context_data(**kwargs)
@@ -53,7 +62,7 @@ class GroupAddMembersView(OwnerFilterMixin, GroupMixin, UpdateView):
form_class = forms.GroupAddMembersForm
-class GroupAddMusicView(OwnerFilterMixin, SingleObjectMixin, View):
+class GroupAddMusicView(MemberFilterMixin, SingleObjectMixin, View):
model = models.Group
def post(self, request, pk):