diff --git a/cbreader/settings/base.py b/cbreader/settings/base.py index f08bb43..a1792b7 100644 --- a/cbreader/settings/base.py +++ b/cbreader/settings/base.py @@ -50,6 +50,7 @@ MIDDLEWARE = [ "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", + 'csp.middleware.CSPMiddleware', ] ROOT_URLCONF = "cbreader.urls" @@ -144,4 +145,12 @@ BOOTSTRAP4 = { "integrity": "sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns", "crossorigin": "anonymous", }, -} \ No newline at end of file +} +CSP_DEFAULT_SRC = ("'none'") +CSP_STYLE_SRC = ("'self'", 'cdn.jsdelivr.net', 'cdn.datatables.net') +CSP_IMG_SRC = ("'self'", "data:") +CSP_FONT_SRC = ("'self'") +CSP_SCRIPT_SRC = ("'self'", 'code.jquery.com', 'cdn.jsdelivr.net', 'cdn.datatables.net') +CSP_CONNECT_SRC = ("'self'") +CSP_INCLUDE_NONCE_IN = ['script-src'] +CSP_SCRIPT_SRC_ATTR = ("'self'", "'unsafe-inline'") \ No newline at end of file diff --git a/comic/models.py b/comic/models.py index 6f89ff4..ec86c5c 100644 --- a/comic/models.py +++ b/comic/models.py @@ -2,7 +2,6 @@ import io import mimetypes import uuid import zipfile -from dataclasses import dataclass from functools import reduce from itertools import zip_longest from os import listdir @@ -13,7 +12,7 @@ import fitz import rarfile from PIL import Image, UnidentifiedImageError from django.conf import settings -from django.contrib.auth.models import User +from django.contrib.auth.models import User, AbstractUser from django.core.files.uploadedfile import InMemoryUploadedFile from django.db import models from django.db.transaction import atomic @@ -230,18 +229,12 @@ class ComicBook(models.Model): def page_count(self): return ComicPage.objects.filter(Comic=self).count() - @dataclass - class Navigation: - next_path: str - prev_path: str - cur_path: str - def nav(self, user): - return self.Navigation( - next_path=self.nav_get_next_comic(user), - prev_path=self.nav_get_prev_comic(user), - cur_path=urlsafe_base64_encode(self.selector.bytes) - ) + return { + "next_path": self.nav_get_next_comic(user), + "prev_path": self.nav_get_prev_comic(user), + "cur_path": urlsafe_base64_encode(self.selector.bytes) + } def nav_get_prev_comic(self, user) -> str: base_dir = settings.COMIC_BOOK_VOLUME diff --git a/comic/templates/base.html b/comic/templates/base.html index d34c512..1163cdd 100644 --- a/comic/templates/base.html +++ b/comic/templates/base.html @@ -11,13 +11,13 @@ - {% block title %}CB Reader{% endblock %} + {% block title %}CB Web Reader{% endblock %} {% bootstrap_css %} - + {# #} @@ -28,7 +28,7 @@