forked from rc/aircox
		
	aircox/views/episode_detail: when episode page is unpublished and user not authorized, redirect to parent page
This commit is contained in:
		@ -1,5 +1,5 @@
 | 
			
		||||
from django.contrib.auth.mixins import UserPassesTestMixin
 | 
			
		||||
from django.http import HttpResponseRedirect
 | 
			
		||||
from django.http import Http404, HttpResponseRedirect
 | 
			
		||||
from django.shortcuts import get_object_or_404
 | 
			
		||||
from django.urls import reverse
 | 
			
		||||
from django.utils.translation import gettext_lazy as _
 | 
			
		||||
@ -47,6 +47,17 @@ class EpisodeDetailView(PageDetailView):
 | 
			
		||||
            return HttpResponseRedirect(reverse("program-detail", kwargs={"slug": episode.program.slug}))
 | 
			
		||||
        return qs
 | 
			
		||||
 | 
			
		||||
    def get(self, *args, **kwargs):
 | 
			
		||||
        """When episode is unpublished and user not authorized, redirect to
 | 
			
		||||
        parent page."""
 | 
			
		||||
        try:
 | 
			
		||||
            self.object = super().get_object(*args, **kwargs)
 | 
			
		||||
        except Http404:
 | 
			
		||||
            episode = get_object_or_404(Episode, slug=self.kwargs["slug"])
 | 
			
		||||
            return HttpResponseRedirect(reverse("program-detail", kwargs={"slug": episode.program.slug}))
 | 
			
		||||
        context = self.get_context_data(object=self.object)
 | 
			
		||||
        return self.render_to_response(context)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@attach
 | 
			
		||||
class EpisodeListView(PageListView):
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user