Refactor group detail and music views to use MemberFilterMixin for member access control
This commit is contained in:
parent
4e28311b1c
commit
19e6eb32c8
2 changed files with 21 additions and 8 deletions
|
@ -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):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue