1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-20 02:48:51 +00:00

Add setting to enable/disable constance(web settings)

This commit is contained in:
zhengxie
2016-05-26 15:55:57 +08:00
parent 4f1a4aa492
commit 1b9b18c2cb
7 changed files with 29 additions and 1 deletions

View File

@@ -8,6 +8,6 @@ django-compressor==1.4
django-post-office==2.0.3 django-post-office==2.0.3
django-statici18n==1.1.2 django-statici18n==1.1.2
djangorestframework==3.3.1 djangorestframework==3.3.1
git+git://github.com/haiwen/django-constance.git@bde7f7cdfd0ed1631a6817fd4cd76f37bf54fe35#egg=django-constance[database] git+git://github.com/haiwen/django-constance.git@751f7f8b60651a2828e4a535a47fc05b907883da#egg=django-constance[database]
openpyxl==2.3.0 openpyxl==2.3.0
pytz==2015.7 pytz==2015.7

View File

@@ -89,4 +89,5 @@ def base(request):
'multi_institution': getattr(dj_settings, 'MULTI_INSTITUTION', False), 'multi_institution': getattr(dj_settings, 'MULTI_INSTITUTION', False),
'search_repo_id': search_repo_id, 'search_repo_id': search_repo_id,
'SITE_ROOT': SITE_ROOT, 'SITE_ROOT': SITE_ROOT,
'constance_enabled': dj_settings.CONSTANCE_ENABLED,
} }

View File

@@ -212,6 +212,8 @@ INSTALLED_APPS = (
'seahub.password_session', 'seahub.password_session',
) )
# Enabled or disable constance(web settings).
CONSTANCE_ENABLED = True
CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend' CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend'
CONSTANCE_DATABASE_CACHE_BACKEND = 'default' CONSTANCE_DATABASE_CACHE_BACKEND = 'default'

View File

@@ -8,9 +8,11 @@
</li> </li>
<li class="tab <% if (cur_tab == 'devices') { %> tab-cur<% } %>"> <a href="{{ SITE_ROOT }}sysadmin/#desktop-devices/"><span class="sf2-icon-monitor"></span>{% trans "Devices" %}</a> <li class="tab <% if (cur_tab == 'devices') { %> tab-cur<% } %>"> <a href="{{ SITE_ROOT }}sysadmin/#desktop-devices/"><span class="sf2-icon-monitor"></span>{% trans "Devices" %}</a>
</li> </li>
{% if constance_enabled %}
<li class="tab"> <li class="tab">
<a href="{% url "sys_settings" %}"><span class="sf2-icon-cog2"></span>{% trans "Settings" %}</a> <a href="{% url "sys_settings" %}"><span class="sf2-icon-cog2"></span>{% trans "Settings" %}</a>
</li> </li>
{% endif %}
<li class="tab"> <li class="tab">
<a href="{{ SITE_ROOT }}sys/seafadmin/"><span class="sf2-icon-library"></span>{% trans "Libraries" %}</a> <a href="{{ SITE_ROOT }}sys/seafadmin/"><span class="sf2-icon-library"></span>{% trans "Libraries" %}</a>
</li> </li>

View File

@@ -11,9 +11,11 @@
<li class="tab {% block cur_devices %}{% endblock %}"> <li class="tab {% block cur_devices %}{% endblock %}">
<a href="{{ SITE_ROOT }}sysadmin/#desktop-devices/"><span class="sf2-icon-monitor"></span>{% trans "Devices" %}</a> <a href="{{ SITE_ROOT }}sysadmin/#desktop-devices/"><span class="sf2-icon-monitor"></span>{% trans "Devices" %}</a>
</li> </li>
{% if constance_enabled %}
<li class="tab {% block cur_settings %}{% endblock %}"> <li class="tab {% block cur_settings %}{% endblock %}">
<a href="{% url "sys_settings" %}"><span class="sf2-icon-cog2"></span>{% trans "Settings" %}</a> <a href="{% url "sys_settings" %}"><span class="sf2-icon-cog2"></span>{% trans "Settings" %}</a>
</li> </li>
{% endif %}
<li class="tab {% block cur_repo %}{% endblock %}"> <li class="tab {% block cur_repo %}{% endblock %}">
<a href="{{ SITE_ROOT }}sys/seafadmin/"><span class="sf2-icon-library"></span>{% trans "Libraries" %}</a> <a href="{{ SITE_ROOT }}sys/seafadmin/"><span class="sf2-icon-library"></span>{% trans "Libraries" %}</a>
</li> </li>

View File

@@ -11,6 +11,7 @@ import csv, chardet, StringIO
import time import time
from constance import config from constance import config
from django.conf import settings as dj_settings
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.contrib import messages from django.contrib import messages
from django.http import HttpResponse, Http404, HttpResponseRedirect, HttpResponseNotAllowed from django.http import HttpResponse, Http404, HttpResponseRedirect, HttpResponseNotAllowed
@@ -2181,6 +2182,8 @@ def sys_sudo_mode(request):
def sys_settings(request): def sys_settings(request):
"""List and change seahub settings in admin panel. """List and change seahub settings in admin panel.
""" """
if not dj_settings.CONSTANCE_ENABLED:
raise Http404
DIGIT_WEB_SETTINGS = ( DIGIT_WEB_SETTINGS = (
'DISABLE_SYNC_WITH_ANY_FOLDER', 'ENABLE_SIGNUP', 'DISABLE_SYNC_WITH_ANY_FOLDER', 'ENABLE_SIGNUP',

View File

@@ -0,0 +1,18 @@
from django.core.urlresolvers import reverse
from seahub.test_utils import BaseTestCase
class SysSettingsTest(BaseTestCase):
def setUp(self):
self.url = reverse('sys_settings')
self.login_as(self.admin)
def test_can_render(self):
resp = self.client.get(self.url)
self.assertEqual(200, resp.status_code)
def test_can_not_render_if_setting_disabled(self):
with self.settings(CONSTANCE_ENABLED=False):
resp = self.client.get(self.url)
self.assertEqual(404, resp.status_code)