/
cms.py
47 lines (37 loc) · 1.46 KB
/
cms.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
from django.contrib.admin import ModelAdmin
from django.core.exceptions import PermissionDenied
from django.shortcuts import render
from django.urls import include, re_path
from django.views.decorators.clickjacking import xframe_options_exempt
from django.views.generic import View
from ..auth import has_permission
from .mixins import DjediContextMixin
class Admin(ModelAdmin):
verbose_name = "CMS"
verbose_name_plural = verbose_name
def get_urls(self):
return [
re_path(r"^", include("djedi.admin.urls", namespace="djedi")),
re_path(
r"", lambda: None, name="djedi_cms_changelist"
), # Placeholder to show change link to CMS in admin
]
def has_change_permission(self, request, obj=None):
return has_permission(request)
def has_add_permission(self, request, obj=None):
return False
def has_delete_permission(self, request, obj=None):
return False
# Hide Djedi in the admin, since that view is not finished yet.
# This only works in Django 1.8+, but shouldn't break older versions.
def has_module_permission(self, request):
return False
class DjediCMS(DjediContextMixin, View):
@xframe_options_exempt
def get(self, request):
if has_permission(request):
return render(
request, "djedi/cms/cms.html", self.get_context_data(), using="django"
)
else:
raise PermissionDenied