diff --git a/pages/context.py b/pages/context.py index 0efb57d..00a87d0 100644 --- a/pages/context.py +++ b/pages/context.py @@ -6,6 +6,7 @@ from django.conf import settings from django.utils.translation import gettext as _ from pages import access +import pages.parameter from .help import actionbar as actionbar_add_help import mycreole import pages @@ -22,6 +23,11 @@ INDEX_UID = 'index' NAVIGATION_ENTRY_UID = 'navigation-%s' +def cms_mode_active(request): + user_logged_in = request.user.is_authenticated + return pages.parameter.get(pages.parameter.CMS_MODE) and not user_logged_in + + def context_adaption(context, request, **kwargs): caller_name = inspect.currentframe().f_back.f_code.co_name try: @@ -56,24 +62,26 @@ def navigationbar(context, request, caller_name, **kwargs): def menubar(context, request, caller_name, **kwargs): bar = context[context.MENUBAR] - menubar_users(bar, request) - add_help_menu(request, bar, "current_help_page" in kwargs) + if not cms_mode_active(request): + menubar_users(bar, request) + add_help_menu(request, bar, "current_help_page" in kwargs) add_index_menu(request, bar, kwargs.get("rel_path", '')) finalise_bar(request, bar) def actionbar(context, request, caller_name, **kwargs): bar = context[context.ACTIONBAR] - if caller_name == 'page': - if access.write_page(request, kwargs["rel_path"]): - add_edit_menu(request, bar, kwargs["rel_path"]) - if access.modify_attachment(request, kwargs["rel_path"]): - add_manageupload_menu(request, bar, kwargs['upload_path']) - if access.read_page(request, kwargs["rel_path"]): - add_meta_menu(request, bar, kwargs["rel_path"]) - elif caller_name == 'helpview': - actionbar_add_help(context, request, **kwargs) - finalise_bar(request, bar) + if not cms_mode_active(request): + if caller_name == 'page': + if access.write_page(request, kwargs["rel_path"]): + add_edit_menu(request, bar, kwargs["rel_path"]) + if access.modify_attachment(request, kwargs["rel_path"]): + add_manageupload_menu(request, bar, kwargs['upload_path']) + if access.read_page(request, kwargs["rel_path"]): + add_meta_menu(request, bar, kwargs["rel_path"]) + elif caller_name == 'helpview': + actionbar_add_help(context, request, **kwargs) + finalise_bar(request, bar) def add_back_menu(request, bar): diff --git a/pages/parameter.py b/pages/parameter.py new file mode 100644 index 0000000..e1ece7d --- /dev/null +++ b/pages/parameter.py @@ -0,0 +1,36 @@ +import config +from django.conf import settings +import importlib +import os + +CMS_MODE = "CMS_MODE" + + +def no_access(*args, **kwargs): + return False + + +DEFAULTS = { + CMS_MODE: True, +} + + +def __get_object_by_name__(object_name): + class_data = object_name.split(".") + module_path = ".".join(class_data[:-1]) + class_str = class_data[-1] + # + module = importlib.import_module(module_path) + return getattr(module, class_str) + + +def get(key): + # take data from config, settings or defaults + try: + data = getattr(config, key) + except AttributeError: + try: + data = getattr(settings, key) + except AttributeError: + data = DEFAULTS.get(key) + return data diff --git a/piki/urls.py b/piki/urls.py index a02dbe4..c5d2c02 100644 --- a/piki/urls.py +++ b/piki/urls.py @@ -20,6 +20,7 @@ from django.contrib import admin from django.urls import path, include import pages.views +import users urlpatterns = [ path('admin/', admin.site.urls), @@ -37,6 +38,7 @@ urlpatterns = [ path('mycreole/', include('mycreole.urls')), # users path('users/', include('users.urls')), + path('login/', users.views.login, name='users-login-root'), ] if settings.DEBUG: