diff --git a/HISTORY.rst b/HISTORY.rst index b6ca8d94c4..546e266f16 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -119,6 +119,8 @@ - Don't show the document types of an index instance. - Add the tag created and tag edited events. - Add support for blocking the changing of password for specify users. +- Add support for changing the HOME_VIEW, LOGIN_URL and LOGIN_REDIRECT_URL + from the settings view. 3.0.3 (2018-08-17) ================== diff --git a/mayan/apps/common/settings.py b/mayan/apps/common/settings.py index 75411d447b..eb25882bd5 100644 --- a/mayan/apps/common/settings.py +++ b/mayan/apps/common/settings.py @@ -31,25 +31,6 @@ setting_paginate_by = namespace.add_setting( 'An integer specifying how many objects should be displayed per page.' ) ) -setting_shared_storage = namespace.add_setting( - global_name='COMMON_SHARED_STORAGE', - default='django.core.files.storage.FileSystemStorage', - help_text=_('A storage backend that all workers can use to share files.') -) -setting_shared_storage_arguments = namespace.add_setting( - global_name='COMMON_SHARED_STORAGE_ARGUMENTS', - default='{{location: {}}}'.format( - os.path.join(settings.MEDIA_ROOT, 'shared_files') - ), quoted=True -) -setting_temporary_directory = namespace.add_setting( - global_name='COMMON_TEMPORARY_DIRECTORY', default=tempfile.gettempdir(), - help_text=_( - 'Temporary directory used site wide to store thumbnails, previews ' - 'and temporary files.' - ), - is_path=True -) setting_production_error_logging = namespace.add_setting( global_name='COMMON_PRODUCTION_ERROR_LOGGING', default=False, @@ -71,10 +52,29 @@ setting_project_title = namespace.add_setting( 'Name to be displayed in the main menu.' ), ) +setting_shared_storage = namespace.add_setting( + global_name='COMMON_SHARED_STORAGE', + default='django.core.files.storage.FileSystemStorage', + help_text=_('A storage backend that all workers can use to share files.') +) +setting_shared_storage_arguments = namespace.add_setting( + global_name='COMMON_SHARED_STORAGE_ARGUMENTS', + default='{{location: {}}}'.format( + os.path.join(settings.MEDIA_ROOT, 'shared_files') + ), quoted=True +) +setting_temporary_directory = namespace.add_setting( + global_name='COMMON_TEMPORARY_DIRECTORY', default=tempfile.gettempdir(), + help_text=_( + 'Temporary directory used site wide to store thumbnails, previews ' + 'and temporary files.' + ), + is_path=True +) namespace = Namespace(name='django', label=_('Django')) -setting_django_databases = namespace.add_setting( +setting_django_allowed_hosts = namespace.add_setting( global_name='ALLOWED_HOSTS', default=settings.ALLOWED_HOSTS, help_text=_( 'A list of strings representing the host/domain names that this site ' @@ -92,8 +92,7 @@ setting_django_databases = namespace.add_setting( 'first in MIDDLEWARE).' ), ) - -setting_django_databases = namespace.add_setting( +setting_django_append_slash = namespace.add_setting( global_name='APPEND_SLASH', default=settings.APPEND_SLASH, help_text=_( 'When set to True, if the request URL does not match any of the ' @@ -105,7 +104,6 @@ setting_django_databases = namespace.add_setting( 'PREPEND_WWW.' ) ) - setting_django_databases = namespace.add_setting( global_name='DATABASES', default=settings.DATABASES, help_text=_( @@ -117,8 +115,7 @@ setting_django_databases = namespace.add_setting( 'be specified.' ), ) - -setting_django_databases = namespace.add_setting( +setting_django_data_upload_max_memory_size = namespace.add_setting( global_name='DATA_UPLOAD_MAX_MEMORY_SIZE', default=settings.DATA_UPLOAD_MAX_MEMORY_SIZE, help_text=_( @@ -138,8 +135,7 @@ setting_django_databases = namespace.add_setting( 'FILE_UPLOAD_MAX_MEMORY_SIZE.' ), ) - -setting_django_databases = namespace.add_setting( +setting_django_disallowed_user_agents = namespace.add_setting( global_name='DISALLOWED_USER_AGENTS', default=settings.DISALLOWED_USER_AGENTS, help_text=_( @@ -150,8 +146,7 @@ setting_django_databases = namespace.add_setting( '(see Middleware).' ), ) - -setting_django_databases = namespace.add_setting( +setting_django_email_backend = namespace.add_setting( global_name='EMAIL_BACKEND', default=settings.EMAIL_BACKEND, help_text=_( @@ -159,16 +154,14 @@ setting_django_databases = namespace.add_setting( 'backend to use for sending emails.' ), ) - -setting_django_databases = namespace.add_setting( +setting_django_email_host = namespace.add_setting( global_name='EMAIL_HOST', default=settings.EMAIL_HOST, help_text=_( 'Default: \'localhost\'. The host to use for sending email.' ), ) - -setting_django_databases = namespace.add_setting( +setting_django_email_host_password = namespace.add_setting( global_name='EMAIL_HOST_PASSWORD', default=settings.EMAIL_HOST_PASSWORD, help_text=_( @@ -179,8 +172,7 @@ setting_django_databases = namespace.add_setting( 'Django won\'t attempt authentication.' ), ) - -setting_django_databases = namespace.add_setting( +setting_django_email_host_user = namespace.add_setting( global_name='EMAIL_HOST_USER', default=settings.EMAIL_HOST_USER, help_text=_( @@ -189,16 +181,14 @@ setting_django_databases = namespace.add_setting( 'authentication.' ), ) - -setting_django_databases = namespace.add_setting( +setting_django_email_port = namespace.add_setting( global_name='EMAIL_PORT', default=settings.EMAIL_PORT, help_text=_( 'Default: 25. Port to use for the SMTP server defined in EMAIL_HOST.' ), ) - -setting_django_databases = namespace.add_setting( +setting_django_email_user_tls = namespace.add_setting( global_name='EMAIL_USE_TLS', default=settings.EMAIL_USE_TLS, help_text=_( @@ -208,8 +198,7 @@ setting_django_databases = namespace.add_setting( 'hanging connections, see the implicit TLS setting EMAIL_USE_SSL.' ), ) - -setting_django_databases = namespace.add_setting( +setting_django_email_user_ssl = namespace.add_setting( global_name='EMAIL_USE_SSL', default=settings.EMAIL_USE_SSL, help_text=_( @@ -221,8 +210,7 @@ setting_django_databases = namespace.add_setting( 'are mutually exclusive, so only set one of those settings to True.' ), ) - -setting_django_databases = namespace.add_setting( +setting_django_email_timeout = namespace.add_setting( global_name='EMAIL_TIMEOUT', default=settings.EMAIL_TIMEOUT, help_text=_( @@ -230,8 +218,7 @@ setting_django_databases = namespace.add_setting( 'operations like the connection attempt.' ), ) - -setting_django_databases = namespace.add_setting( +setting_django_file_upload_max_memory_size = namespace.add_setting( global_name='FILE_UPLOAD_MAX_MEMORY_SIZE', default=settings.FILE_UPLOAD_MAX_MEMORY_SIZE, help_text=_( @@ -241,6 +228,38 @@ setting_django_databases = namespace.add_setting( 'DATA_UPLOAD_MAX_MEMORY_SIZE.' ), ) +# Not really a Django setting, but since it is flat and defined in setting.py +# We need to put it here. +setting_home_view = namespace.add_setting( + global_name='HOME_VIEW', + default=settings.HOME_VIEW, help_text=_( + 'Name of the view attached to the branch anchor in the main menu.' + ), +) +setting_django_login_url = namespace.add_setting( + global_name='LOGIN_URL', + default=settings.LOGIN_URL, + help_text=_( + 'Default: \'/accounts/login/\' The URL where requests are ' + 'redirected for login, especially when using the login_required() ' + 'decorator. This setting also accepts named URL patterns which ' + 'can be used to reduce configuration duplication since you ' + 'don\'t have to define the URL in two places (settings ' + 'and URLconf).' + ) +) +setting_django_login_redirect_url = namespace.add_setting( + global_name='LOGIN_REDIRECT_URL', + default=settings.LOGIN_REDIRECT_URL, + help_text=_( + 'Default: \'/accounts/profile/\' The URL where requests are ' + 'redirected after login when the contrib.auth.login view gets no ' + 'next parameter. This is used by the login_required() decorator, ' + 'for example. This setting also accepts named URL patterns which ' + 'can be used to reduce configuration duplication since you don\'t ' + 'have to define the URL in two places (settings and URLconf).' + ), +) namespace = Namespace(name='celery', label=_('Celery')) @@ -253,7 +272,6 @@ setting_celery_broker_url = namespace.add_setting( 'optional, and defaults to the specific transports default values.' ), ) - setting_celery_result_backend = namespace.add_setting( global_name='CELERY_RESULT_BACKEND', default=settings.CELERY_RESULT_BACKEND, diff --git a/mayan/settings/base.py b/mayan/settings/base.py index 8f7ac02952..cbc103fafe 100644 --- a/mayan/settings/base.py +++ b/mayan/settings/base.py @@ -257,9 +257,9 @@ TEST_RUNNER = 'common.tests.runner.MayanTestRunner' # --------- Django ------------------- -HOME_VIEW = 'common:home' -LOGIN_URL = 'authentication:login_view' -LOGIN_REDIRECT_URL = 'common:root' +HOME_VIEW = env('MAYAN_HOME_VIEW', default='common:home') +LOGIN_URL = env('MAYAN_LOGIN_URL', default='authentication:login_view') +LOGIN_REDIRECT_URL = env('MAYAN_LOGIN_REDIRECT_URL', default='common:root') INTERNAL_IPS = ('127.0.0.1',) # ---------- Django REST framework -----------