From a035532f464d3968fac32045752e4d875477a7b6 Mon Sep 17 00:00:00 2001 From: Hangzhi Yu <hangzhi@protonmail.com> Date: Wed, 3 Feb 2021 22:54:13 +0100 Subject: [PATCH] Add possibility to upload files using ckeditor --- aleksis/core/rules.py | 4 ++++ aleksis/core/settings.py | 4 ++++ aleksis/core/urls.py | 12 ++++++++++++ 3 files changed, 20 insertions(+) diff --git a/aleksis/core/rules.py b/aleksis/core/rules.py index c118d9790..5e39c1af4 100644 --- a/aleksis/core/rules.py +++ b/aleksis/core/rules.py @@ -312,3 +312,7 @@ rules.add_perm("core.delete_dashboardwidget", delete_dashboard_widget_predicate) edit_default_dashboard_predicate = has_person & has_global_perm("core.edit_default_dashboard") rules.add_perm("core.edit_default_dashboard", edit_default_dashboard_predicate) + +# Upload and browse files via CKEditor +upload_files_ckeditor_predicate = has_person & has_global_perm("core.upload_files_ckeditor") +rules.add_perm("core.upload_files_ckeditor", upload_files_ckeditor_predicate) diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py index e40f4bc0b..c3705b3ca 100644 --- a/aleksis/core/settings.py +++ b/aleksis/core/settings.py @@ -113,6 +113,7 @@ INSTALLED_APPS = [ "material", "pwa", "ckeditor", + "ckeditor_uploader", "django_js_reverse", "colorfield", "django_bleach", @@ -653,6 +654,9 @@ CKEDITOR_CONFIGS = { } } +# Upload path for CKEditor. Relative to MEDIA_ROOT. +CKEDITOR_UPLOAD_PATH = "ckeditor_uploads/" + # Which HTML tags are allowed BLEACH_ALLOWED_TAGS = ["p", "b", "i", "u", "em", "strong", "a", "div"] diff --git a/aleksis/core/urls.py b/aleksis/core/urls.py index 4b0871da9..eb5c6c41a 100644 --- a/aleksis/core/urls.py +++ b/aleksis/core/urls.py @@ -8,8 +8,10 @@ from django.views.i18n import JavaScriptCatalog import calendarweek.django import debug_toolbar +from ckeditor_uploader import views as ckeditor_uploader_views from django_js_reverse.views import urls_js from health_check.urls import urlpatterns as health_urls +from rules.contrib.views import permission_required from two_factor.urls import urlpatterns as tf_urls from . import views @@ -81,6 +83,16 @@ urlpatterns = [ path("maintenance-mode/", include("maintenance_mode.urls")), path("impersonate/", include("impersonate.urls")), path("__i18n__/", include("django.conf.urls.i18n")), + path( + "ckeditor/upload/", + permission_required("core.ckeditor_upload_files")(ckeditor_uploader_views.upload), + name="ckeditor_upload", + ), + path( + "ckeditor/browse/", + permission_required("core.ckeditor_upload_files")(ckeditor_uploader_views.browse), + name="ckeditor_browse", + ), path("select2/", include("django_select2.urls")), path("jsreverse.js", urls_js, name="js_reverse"), path("calendarweek_i18n.js", calendarweek.django.i18n_js, name="calendarweek_i18n_js"), -- GitLab