mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-05-13 10:30:16 +00:00
use django-stronghold for authentication handling (instead of @login_required)
This commit is contained in:
parent
0335ee9c32
commit
824a9091c1
@ -188,6 +188,7 @@ def configure_django():
|
|||||||
'django.contrib.auth',
|
'django.contrib.auth',
|
||||||
'django.contrib.contenttypes',
|
'django.contrib.contenttypes',
|
||||||
'django.contrib.messages',
|
'django.contrib.messages',
|
||||||
|
'stronghold',
|
||||||
'plinth']
|
'plinth']
|
||||||
applications += module_loader.get_modules_to_load()
|
applications += module_loader.get_modules_to_load()
|
||||||
sessions_directory = os.path.join(cfg.data_dir, 'sessions')
|
sessions_directory = os.path.join(cfg.data_dir, 'sessions')
|
||||||
@ -217,6 +218,7 @@ def configure_django():
|
|||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
'django.contrib.messages.middleware.MessageMiddleware',
|
'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||||
|
'stronghold.middleware.LoginRequiredMiddleware',
|
||||||
'plinth.modules.first_boot.middleware.FirstBootMiddleware',
|
'plinth.modules.first_boot.middleware.FirstBootMiddleware',
|
||||||
),
|
),
|
||||||
ROOT_URLCONF='plinth.urls',
|
ROOT_URLCONF='plinth.urls',
|
||||||
@ -224,6 +226,7 @@ def configure_django():
|
|||||||
SESSION_ENGINE='django.contrib.sessions.backends.file',
|
SESSION_ENGINE='django.contrib.sessions.backends.file',
|
||||||
SESSION_FILE_PATH=sessions_directory,
|
SESSION_FILE_PATH=sessions_directory,
|
||||||
STATIC_URL='/'.join([cfg.server_dir, 'static/']).replace('//', '/'),
|
STATIC_URL='/'.join([cfg.server_dir, 'static/']).replace('//', '/'),
|
||||||
|
STRONGHOLD_PUBLIC_NAMED_URLS=('lib:login',),
|
||||||
TEMPLATE_CONTEXT_PROCESSORS=context_processors,
|
TEMPLATE_CONTEXT_PROCESSORS=context_processors,
|
||||||
USE_X_FORWARDED_HOST=bool(cfg.use_x_forwarded_host))
|
USE_X_FORWARDED_HOST=bool(cfg.use_x_forwarded_host))
|
||||||
django.setup()
|
django.setup()
|
||||||
|
|||||||
@ -21,7 +21,6 @@ Plinth module for configuring timezone, hostname etc.
|
|||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.core import validators
|
from django.core import validators
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
@ -116,7 +115,6 @@ def init():
|
|||||||
menu.add_urlname(_('Configure'), 'glyphicon-cog', 'config:index', 10)
|
menu.add_urlname(_('Configure'), 'glyphicon-cog', 'config:index', 10)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Serve the configuration form"""
|
"""Serve the configuration form"""
|
||||||
status = get_status()
|
status = get_status()
|
||||||
|
|||||||
@ -20,7 +20,6 @@ Plinth module to configure a Deluge web client.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
|
|
||||||
@ -30,7 +29,6 @@ from plinth import package
|
|||||||
from plinth.modules import deluge
|
from plinth.modules import deluge
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['deluged', 'deluge-web'])
|
@package.required(['deluged', 'deluge-web'])
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Serve configuration page."""
|
"""Serve configuration page."""
|
||||||
|
|||||||
@ -19,7 +19,6 @@
|
|||||||
Plinth module for running diagnostics
|
Plinth module for running diagnostics
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
|
|
||||||
@ -35,14 +34,12 @@ def init():
|
|||||||
"diagnostics:index", 30)
|
"diagnostics:index", 30)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Serve the index page"""
|
"""Serve the index page"""
|
||||||
return TemplateResponse(request, 'diagnostics.html',
|
return TemplateResponse(request, 'diagnostics.html',
|
||||||
{'title': _('System Diagnostics')})
|
{'title': _('System Diagnostics')})
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def test(request):
|
def test(request):
|
||||||
"""Run diagnostics and the output page"""
|
"""Run diagnostics and the output page"""
|
||||||
output = ''
|
output = ''
|
||||||
|
|||||||
@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.core import validators
|
from django.core import validators
|
||||||
from django.core.urlresolvers import reverse_lazy
|
from django.core.urlresolvers import reverse_lazy
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
@ -47,7 +46,6 @@ def init():
|
|||||||
'dynamicdns:index', 40)
|
'dynamicdns:index', 40)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['ez-ipupdate'])
|
@package.required(['ez-ipupdate'])
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Serve dynamic DNS page"""
|
"""Serve dynamic DNS page"""
|
||||||
@ -205,7 +203,6 @@ class ConfigureForm(forms.Form):
|
|||||||
LOGGER.info('no password given')
|
LOGGER.info('no password given')
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['ez-ipupdate'])
|
@package.required(['ez-ipupdate'])
|
||||||
def configure(request):
|
def configure(request):
|
||||||
"""Serve the configuration form"""
|
"""Serve the configuration form"""
|
||||||
@ -227,7 +224,6 @@ def configure(request):
|
|||||||
'subsubmenu': subsubmenu})
|
'subsubmenu': subsubmenu})
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['ez-ipupdate'])
|
@package.required(['ez-ipupdate'])
|
||||||
def statuspage(request):
|
def statuspage(request):
|
||||||
"""Serve the status page """
|
"""Serve the status page """
|
||||||
|
|||||||
@ -19,7 +19,6 @@
|
|||||||
Plinth module to configure a firewall
|
Plinth module to configure a firewall
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
import logging
|
import logging
|
||||||
@ -42,7 +41,6 @@ def init():
|
|||||||
service_enabled.connect(on_service_enabled)
|
service_enabled.connect(on_service_enabled)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['firewalld'])
|
@package.required(['firewalld'])
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Serve introcution page"""
|
"""Serve introcution page"""
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import os
|
|||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
|
from stronghold.decorators import public
|
||||||
|
|
||||||
from plinth import cfg, __version__
|
from plinth import cfg, __version__
|
||||||
|
|
||||||
@ -38,12 +39,14 @@ def init():
|
|||||||
menu.add_urlname(_('About'), 'glyphicon-star', 'help:about', 100)
|
menu.add_urlname(_('About'), 'glyphicon-star', 'help:about', 100)
|
||||||
|
|
||||||
|
|
||||||
|
@public
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Serve the index page"""
|
"""Serve the index page"""
|
||||||
return TemplateResponse(request, 'help_index.html',
|
return TemplateResponse(request, 'help_index.html',
|
||||||
{'title': _('Documentation and FAQ')})
|
{'title': _('Documentation and FAQ')})
|
||||||
|
|
||||||
|
|
||||||
|
@public
|
||||||
def about(request):
|
def about(request):
|
||||||
"""Serve the about page"""
|
"""Serve the about page"""
|
||||||
context = {
|
context = {
|
||||||
@ -53,6 +56,7 @@ def about(request):
|
|||||||
return TemplateResponse(request, 'help_about.html', context)
|
return TemplateResponse(request, 'help_about.html', context)
|
||||||
|
|
||||||
|
|
||||||
|
@public
|
||||||
def helppage(request, page):
|
def helppage(request, page):
|
||||||
"""Serve a help page from the 'doc' directory"""
|
"""Serve a help page from the 'doc' directory"""
|
||||||
try:
|
try:
|
||||||
|
|||||||
@ -20,7 +20,6 @@ Plinth module for configuring ikiwiki
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.core.urlresolvers import reverse_lazy
|
from django.core.urlresolvers import reverse_lazy
|
||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
@ -45,7 +44,6 @@ def on_install():
|
|||||||
actions.superuser_run('ikiwiki', ['setup'])
|
actions.superuser_run('ikiwiki', ['setup'])
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['ikiwiki',
|
@package.required(['ikiwiki',
|
||||||
'gcc',
|
'gcc',
|
||||||
'libc6-dev',
|
'libc6-dev',
|
||||||
@ -98,7 +96,6 @@ def _apply_changes(request, old_status, new_status):
|
|||||||
messages.info(request, _('Setting unchanged'))
|
messages.info(request, _('Setting unchanged'))
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def manage(request):
|
def manage(request):
|
||||||
"""Manage existing wikis and blogs."""
|
"""Manage existing wikis and blogs."""
|
||||||
sites = actions.run('ikiwiki', ['get-sites']).split('\n')
|
sites = actions.run('ikiwiki', ['get-sites']).split('\n')
|
||||||
@ -110,7 +107,6 @@ def manage(request):
|
|||||||
'sites': sites})
|
'sites': sites})
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def create(request):
|
def create(request):
|
||||||
"""Form to create a wiki or blog."""
|
"""Form to create a wiki or blog."""
|
||||||
form = None
|
form = None
|
||||||
@ -161,7 +157,6 @@ def _create_blog(request, name, admin_name, admin_password):
|
|||||||
messages.error(request, _('Could not create blog: %s') % err)
|
messages.error(request, _('Could not create blog: %s') % err)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def delete(request, name):
|
def delete(request, name):
|
||||||
"""Handle deleting wikis/blogs, showing a confirmation dialog first.
|
"""Handle deleting wikis/blogs, showing a confirmation dialog first.
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,6 @@ Plinth module for configuring Mumble Server
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
import logging
|
import logging
|
||||||
@ -38,7 +37,6 @@ def on_install():
|
|||||||
mumble.service.notify_enabled(None, True)
|
mumble.service.notify_enabled(None, True)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['mumble-server'], on_install=on_install)
|
@package.required(['mumble-server'], on_install=on_install)
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Serve configuration page."""
|
"""Serve configuration page."""
|
||||||
|
|||||||
@ -16,7 +16,6 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.core.urlresolvers import reverse_lazy
|
from django.core.urlresolvers import reverse_lazy
|
||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
@ -45,7 +44,6 @@ def init():
|
|||||||
menu.add_urlname(_('Networks'), 'glyphicon-signal', 'networks:index', 18)
|
menu.add_urlname(_('Networks'), 'glyphicon-signal', 'networks:index', 18)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['network-manager'])
|
@package.required(['network-manager'])
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Show connection list."""
|
"""Show connection list."""
|
||||||
@ -57,7 +55,6 @@ def index(request):
|
|||||||
'connections': connections})
|
'connections': connections})
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def edit(request, uuid):
|
def edit(request, uuid):
|
||||||
"""Serve connection editing form."""
|
"""Serve connection editing form."""
|
||||||
try:
|
try:
|
||||||
@ -148,7 +145,6 @@ def edit(request, uuid):
|
|||||||
'form': form})
|
'form': form})
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def activate(request, uuid):
|
def activate(request, uuid):
|
||||||
"""Activate the connection."""
|
"""Activate the connection."""
|
||||||
try:
|
try:
|
||||||
@ -166,7 +162,6 @@ def activate(request, uuid):
|
|||||||
return redirect(reverse_lazy('networks:index'))
|
return redirect(reverse_lazy('networks:index'))
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def deactivate(request, uuid):
|
def deactivate(request, uuid):
|
||||||
"""Deactivate the connection."""
|
"""Deactivate the connection."""
|
||||||
try:
|
try:
|
||||||
@ -180,7 +175,6 @@ def deactivate(request, uuid):
|
|||||||
return redirect(reverse_lazy('networks:index'))
|
return redirect(reverse_lazy('networks:index'))
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def scan(request):
|
def scan(request):
|
||||||
"""Show a list of nearby visible Wi-Fi access points."""
|
"""Show a list of nearby visible Wi-Fi access points."""
|
||||||
access_points = network.wifi_scan()
|
access_points = network.wifi_scan()
|
||||||
@ -190,7 +184,6 @@ def scan(request):
|
|||||||
'access_points': access_points})
|
'access_points': access_points})
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def add(request):
|
def add(request):
|
||||||
"""Serve the connection type selection form."""
|
"""Serve the connection type selection form."""
|
||||||
form = None
|
form = None
|
||||||
@ -211,7 +204,6 @@ def add(request):
|
|||||||
'form': form})
|
'form': form})
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def add_ethernet(request):
|
def add_ethernet(request):
|
||||||
"""Serve ethernet connection create form."""
|
"""Serve ethernet connection create form."""
|
||||||
form = None
|
form = None
|
||||||
@ -237,7 +229,6 @@ def add_ethernet(request):
|
|||||||
'form': form})
|
'form': form})
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def add_wifi(request, ssid=None):
|
def add_wifi(request, ssid=None):
|
||||||
"""Serve wifi connection create form."""
|
"""Serve wifi connection create form."""
|
||||||
form = None
|
form = None
|
||||||
@ -280,7 +271,6 @@ def add_wifi(request, ssid=None):
|
|||||||
'form': form})
|
'form': form})
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def delete(request, uuid):
|
def delete(request, uuid):
|
||||||
"""Handle deleting connections, showing a confirmation dialog first.
|
"""Handle deleting connections, showing a confirmation dialog first.
|
||||||
|
|
||||||
|
|||||||
@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
|
|
||||||
@ -47,7 +46,6 @@ def init():
|
|||||||
is_external=True, enabled=status['enabled'])
|
is_external=True, enabled=status['enabled'])
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['postgresql', 'php5-pgsql', 'owncloud'])
|
@package.required(['postgresql', 'php5-pgsql', 'owncloud'])
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Serve the ownCloud configuration page"""
|
"""Serve the ownCloud configuration page"""
|
||||||
|
|||||||
@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
import os
|
import os
|
||||||
@ -60,7 +59,6 @@ def init():
|
|||||||
menu.add_urlname('Package Manager', 'glyphicon-gift', 'packages:index', 20)
|
menu.add_urlname('Package Manager', 'glyphicon-gift', 'packages:index', 20)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Serve the form"""
|
"""Serve the form"""
|
||||||
status = get_status()
|
status = get_status()
|
||||||
|
|||||||
@ -20,7 +20,6 @@ URLs for the PageKite module
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.conf.urls import patterns, url
|
from django.conf.urls import patterns, url
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
|
|
||||||
from .views import StandardServiceView, CustomServiceView, ConfigurationView, \
|
from .views import StandardServiceView, CustomServiceView, ConfigurationView, \
|
||||||
DeleteServiceView, index
|
DeleteServiceView, index
|
||||||
@ -28,15 +27,13 @@ from .views import StandardServiceView, CustomServiceView, ConfigurationView, \
|
|||||||
|
|
||||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||||
'plinth.modules.pagekite.views',
|
'plinth.modules.pagekite.views',
|
||||||
url(r'^apps/pagekite/$', login_required(index), name='index'),
|
url(r'^apps/pagekite/$', index, name='index'),
|
||||||
url(r'^apps/pagekite/configure/$',
|
url(r'^apps/pagekite/configure/$', ConfigurationView.as_view(),
|
||||||
login_required(ConfigurationView.as_view()), name='configure'),
|
name='configure'),
|
||||||
url(r'^apps/pagekite/services/standard$',
|
url(r'^apps/pagekite/services/standard$', StandardServiceView.as_view(),
|
||||||
login_required(StandardServiceView.as_view()),
|
|
||||||
name='standard-services'),
|
name='standard-services'),
|
||||||
url(r'^apps/pagekite/services/custom$',
|
url(r'^apps/pagekite/services/custom$', CustomServiceView.as_view(),
|
||||||
login_required(CustomServiceView.as_view()), name='custom-services'),
|
name='custom-services'),
|
||||||
url(r'^apps/pagekite/services/custom/delete$',
|
url(r'^apps/pagekite/services/custom/delete$', DeleteServiceView.as_view(),
|
||||||
login_required(DeleteServiceView.as_view()),
|
|
||||||
name='delete-custom-service'),
|
name='delete-custom-service'),
|
||||||
)
|
)
|
||||||
|
|||||||
@ -20,7 +20,6 @@ Plinth module for configuring Privoxy Server.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
import logging
|
import logging
|
||||||
@ -38,7 +37,6 @@ def on_install():
|
|||||||
actions.superuser_run('privoxy', ['setup'])
|
actions.superuser_run('privoxy', ['setup'])
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['privoxy'], on_install=on_install)
|
@package.required(['privoxy'], on_install=on_install)
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Serve configuration page."""
|
"""Serve configuration page."""
|
||||||
|
|||||||
@ -20,7 +20,6 @@ Plinth module for configuring Roundcube.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
import logging
|
import logging
|
||||||
@ -42,7 +41,6 @@ def on_install():
|
|||||||
actions.superuser_run('roundcube', ['setup'])
|
actions.superuser_run('roundcube', ['setup'])
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['sqlite3', 'roundcube', 'roundcube-sqlite3'],
|
@package.required(['sqlite3', 'roundcube', 'roundcube-sqlite3'],
|
||||||
before_install=before_install, on_install=on_install)
|
before_install=before_install, on_install=on_install)
|
||||||
def index(request):
|
def index(request):
|
||||||
|
|||||||
@ -21,7 +21,6 @@ Plinth module for configuring Tor
|
|||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
|
|
||||||
@ -43,7 +42,6 @@ def init():
|
|||||||
menu.add_urlname('Tor', 'glyphicon-eye-close', 'tor:index', 30)
|
menu.add_urlname('Tor', 'glyphicon-eye-close', 'tor:index', 30)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['tor'])
|
@package.required(['tor'])
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Service the index page"""
|
"""Service the index page"""
|
||||||
|
|||||||
@ -20,7 +20,6 @@ Plinth module for configuring Transmission Server
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
import json
|
import json
|
||||||
@ -42,7 +41,6 @@ def on_install():
|
|||||||
actions.superuser_run('transmission', ['enable'])
|
actions.superuser_run('transmission', ['enable'])
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['transmission-daemon'], on_install=on_install)
|
@package.required(['transmission-daemon'], on_install=on_install)
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Serve configuration page."""
|
"""Serve configuration page."""
|
||||||
|
|||||||
@ -21,7 +21,6 @@ Plinth module for upgrades
|
|||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.core.urlresolvers import reverse_lazy
|
from django.core.urlresolvers import reverse_lazy
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from django.views.decorators.http import require_POST
|
from django.views.decorators.http import require_POST
|
||||||
@ -45,7 +44,6 @@ def init():
|
|||||||
'upgrades:index', 21)
|
'upgrades:index', 21)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['unattended-upgrades'])
|
@package.required(['unattended-upgrades'])
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Serve the index page."""
|
"""Serve the index page."""
|
||||||
@ -54,7 +52,6 @@ def index(request):
|
|||||||
'subsubmenu': subsubmenu})
|
'subsubmenu': subsubmenu})
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@require_POST
|
@require_POST
|
||||||
@package.required(['unattended-upgrades'])
|
@package.required(['unattended-upgrades'])
|
||||||
def run(request):
|
def run(request):
|
||||||
@ -84,7 +81,6 @@ run once per day. It will attempt to perform any package upgrades that are \
|
|||||||
available.'))
|
available.'))
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['unattended-upgrades'])
|
@package.required(['unattended-upgrades'])
|
||||||
def configure(request):
|
def configure(request):
|
||||||
"""Serve the configuration form."""
|
"""Serve the configuration form."""
|
||||||
|
|||||||
@ -20,7 +20,6 @@ URLs for the Users module
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.conf.urls import patterns, url
|
from django.conf.urls import patterns, url
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.core.urlresolvers import reverse_lazy
|
from django.core.urlresolvers import reverse_lazy
|
||||||
|
|
||||||
from . import views
|
from . import views
|
||||||
@ -28,17 +27,14 @@ from . import views
|
|||||||
|
|
||||||
urlpatterns = patterns(
|
urlpatterns = patterns(
|
||||||
'',
|
'',
|
||||||
url(r'^sys/users/$', login_required(views.UserList.as_view()),
|
url(r'^sys/users/$', views.UserList.as_view(), name='index'),
|
||||||
name='index'),
|
url(r'^sys/users/create/$', views.UserCreate.as_view(), name='create'),
|
||||||
url(r'^sys/users/create/$', login_required(views.UserCreate.as_view()),
|
url(r'^sys/users/(?P<slug>[\w.@+-]+)/edit/$', views.UserUpdate.as_view(),
|
||||||
name='create'),
|
name='edit'),
|
||||||
url(r'^sys/users/(?P<slug>[\w.@+-]+)/edit/$',
|
url(r'^sys/users/(?P<slug>[\w.@+-]+)/delete/$', views.UserDelete.as_view(),
|
||||||
login_required(views.UserUpdate.as_view()), name='edit'),
|
name='delete'),
|
||||||
url(r'^sys/users/(?P<slug>[\w.@+-]+)/delete/$',
|
|
||||||
login_required(views.UserDelete.as_view()), name='delete'),
|
|
||||||
url(r'^sys/users/(?P<slug>[\w.@+-]+)/change_password/$',
|
url(r'^sys/users/(?P<slug>[\w.@+-]+)/change_password/$',
|
||||||
login_required(views.UserChangePassword.as_view()),
|
views.UserChangePassword.as_view(), name='change_password'),
|
||||||
name='change_password'),
|
|
||||||
# Add Django's login/logout urls
|
# Add Django's login/logout urls
|
||||||
url(r'^accounts/login/$', 'django.contrib.auth.views.login',
|
url(r'^accounts/login/$', 'django.contrib.auth.views.login',
|
||||||
{'template_name': 'login.html'}, name='login'),
|
{'template_name': 'login.html'}, name='login'),
|
||||||
|
|||||||
@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.core.urlresolvers import reverse_lazy
|
from django.core.urlresolvers import reverse_lazy
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
@ -75,7 +74,6 @@ def on_install():
|
|||||||
actions.superuser_run('xmpp', ['setup'])
|
actions.superuser_run('xmpp', ['setup'])
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
@package.required(['jwchat', 'ejabberd'],
|
@package.required(['jwchat', 'ejabberd'],
|
||||||
before_install=before_install,
|
before_install=before_install,
|
||||||
on_install=on_install)
|
on_install=on_install)
|
||||||
@ -98,7 +96,6 @@ the XMPP service'))
|
|||||||
allowed to register an account through an XMPP client'))
|
allowed to register an account through an XMPP client'))
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def configure(request):
|
def configure(request):
|
||||||
"""Serve the configuration form"""
|
"""Serve the configuration form"""
|
||||||
status = get_status()
|
status = get_status()
|
||||||
@ -196,7 +193,6 @@ class RegisterForm(forms.Form): # pylint: disable-msg=W0232
|
|||||||
for vhost in vhosts)
|
for vhost in vhosts)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def register(request):
|
def register(request):
|
||||||
"""Serve the registration form."""
|
"""Serve the registration form."""
|
||||||
form = None
|
form = None
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user