```python import json import logging import traceback from django.shortcuts import render from django.http import HttpResponse from django.views.generic import DetailView from django.core.exceptions import PermissionDenied from django.contrib.auth.mixins import PermissionRequiredMixin from .models import Geocollection logger = logging.getLogger(__name__) class GeocollectionDetail(PermissionRequiredMixin, DetailView): model = Geocollection def has_permission(self): return self.request.user.has_perm('access_geocollection', self.get_object()) def geocollection_permissions(request, collection_slug): geocollection = Geocollection.objects.get(slug=collection_slug) user = request.user if user.has_perm('access_geocollection', geocollection): return HttpResponse( (f'You have the permission to access the geocollection "{collection_slug}". ' 'Please customize a template for this view'), content_type='text/plain') else: raise PermissionDenied ```