mirror of
https://github.com/dkmstr/openuds.git
synced 2025-01-15 23:24:24 +03:00
updated requirements
This commit is contained in:
parent
78731b2e51
commit
e33a6e4712
@ -8,10 +8,10 @@ lxml==3.6.0
|
|||||||
ovirt-engine-sdk-python==4.1.7
|
ovirt-engine-sdk-python==4.1.7
|
||||||
pycurl==7.43.0
|
pycurl==7.43.0
|
||||||
matplotlib==2.1.2
|
matplotlib==2.1.2
|
||||||
pyOpenSSL==16.2.0
|
pyOpenSSL==17.5.0
|
||||||
mysqlclient==1.3.12
|
mysqlclient==1.3.12
|
||||||
python-ldap==3.0.0b4
|
python-ldap==3.0.0b4
|
||||||
paramiko==2.4.1
|
paramiko==2.4.2
|
||||||
defusedxml==0.5.0
|
defusedxml==0.5.0
|
||||||
python-dateutil==2.6.1
|
python-dateutil==2.6.1
|
||||||
requests==2.18.4
|
requests==2.18.4
|
||||||
|
@ -39,7 +39,7 @@ from uds.REST import Handler
|
|||||||
from uds.REST import RequestError
|
from uds.REST import RequestError
|
||||||
from uds.models import TicketStore
|
from uds.models import TicketStore
|
||||||
from uds.models import User
|
from uds.models import User
|
||||||
from uds.web import errors
|
from uds.web.util import errors
|
||||||
from uds.core.managers import cryptoManager, userServiceManager
|
from uds.core.managers import cryptoManager, userServiceManager
|
||||||
from uds.core.util.Config import GlobalConfig
|
from uds.core.util.Config import GlobalConfig
|
||||||
from uds.core.services.Exceptions import ServiceNotReadyError
|
from uds.core.services.Exceptions import ServiceNotReadyError
|
||||||
|
@ -42,7 +42,7 @@ from uds.core.managers import cryptoManager
|
|||||||
from uds.core.ui.images import DEFAULT_THUMB_BASE64
|
from uds.core.ui.images import DEFAULT_THUMB_BASE64
|
||||||
from uds.core.util.Config import GlobalConfig
|
from uds.core.util.Config import GlobalConfig
|
||||||
from uds.core.services.Exceptions import ServiceNotReadyError
|
from uds.core.services.Exceptions import ServiceNotReadyError
|
||||||
from uds.web import errors
|
from uds.web.util import errors
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
import six
|
import six
|
||||||
|
@ -198,6 +198,9 @@ class Config(object):
|
|||||||
def enumerate():
|
def enumerate():
|
||||||
GlobalConfig.initialize() # Ensures DB contains all values
|
GlobalConfig.initialize() # Ensures DB contains all values
|
||||||
for cfg in uds.models.Config.objects.all().order_by('key'): # @UndefinedVariable
|
for cfg in uds.models.Config.objects.all().order_by('key'): # @UndefinedVariable
|
||||||
|
# Skip sections with name starting with "__" (not to be editted on configuration)
|
||||||
|
if cfg.section.startswith('__'): # Hidden section:
|
||||||
|
continue
|
||||||
logger.debug('{0}.{1}:{2},{3}'.format(cfg.section, cfg.key, cfg.value, cfg.field_type))
|
logger.debug('{0}.{1}:{2},{3}'.format(cfg.section, cfg.key, cfg.value, cfg.field_type))
|
||||||
if cfg.crypt is True:
|
if cfg.crypt is True:
|
||||||
val = Config.section(cfg.section).valueCrypt(cfg.key)
|
val = Config.section(cfg.section).valueCrypt(cfg.key)
|
||||||
|
@ -33,13 +33,13 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from uds.core.util.html import checkBrowser
|
from uds.core.util.html import checkBrowser
|
||||||
from uds.web import errors
|
from uds.web.util import errors
|
||||||
|
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
__updated__ = '2018-06-25'
|
__updated__ = '2018-10-07'
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -56,6 +56,7 @@ def denyBrowsers(browsers=None, errorResponse=lambda request: errors.errorView(r
|
|||||||
browsers = ['ie<9']
|
browsers = ['ie<9']
|
||||||
|
|
||||||
def wrap(view_func):
|
def wrap(view_func):
|
||||||
|
|
||||||
@wraps(view_func)
|
@wraps(view_func)
|
||||||
def _wrapped_view(request, *args, **kwargs):
|
def _wrapped_view(request, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
@ -66,7 +67,9 @@ def denyBrowsers(browsers=None, errorResponse=lambda request: errors.errorView(r
|
|||||||
return errorResponse(request)
|
return errorResponse(request)
|
||||||
|
|
||||||
return view_func(request, *args, **kwargs)
|
return view_func(request, *args, **kwargs)
|
||||||
|
|
||||||
return _wrapped_view
|
return _wrapped_view
|
||||||
|
|
||||||
return wrap
|
return wrap
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2012 Virtual Cable S.L.
|
# Copyright (c) 2012-2018 Virtual Cable S.L.
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without modification,
|
# Redistribution and use in source and binary forms, with or without modification,
|
||||||
@ -31,8 +31,6 @@
|
|||||||
.. moduleauthor:: Adolfo Gómez, dkmaster at dkmon dot com
|
.. moduleauthor:: Adolfo Gómez, dkmaster at dkmon dot com
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 209 B |
Binary file not shown.
Before Width: | Height: | Size: 251 B |
Binary file not shown.
Before Width: | Height: | Size: 232 B |
Binary file not shown.
Before Width: | Height: | Size: 208 B |
Binary file not shown.
Before Width: | Height: | Size: 420 B |
Binary file not shown.
Before Width: | Height: | Size: 554 B |
File diff suppressed because one or more lines are too long
@ -1,2 +0,0 @@
|
|||||||
{% load i18n uds %}
|
|
||||||
{% udsJs %}
|
|
@ -1,26 +1,27 @@
|
|||||||
{% load uds i18n %}{% get_current_language as LANGUAGE_CODE %}<!doctype html>
|
{% load i18n %}{% get_current_language as LANGUAGE_CODE %}<!doctype html>
|
||||||
<html lang="{{ LANGUAGE_CODE }}">
|
<html lang="{{ LANGUAGE_CODE }}">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
|
||||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet">
|
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>Uds</title>
|
<title>Uds</title>
|
||||||
<base href="/uds/page">
|
<base href="/uds/page">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
<link rel="icon" type="image/png" href="/uds/res/modern/img/favicon.png">
|
||||||
|
|
||||||
|
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet">
|
||||||
|
|
||||||
<!-- just in case translations cannot be loaded, provide a fallback -->
|
<!-- just in case translations cannot be loaded, provide a fallback -->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
django = {
|
django = {
|
||||||
gettext: function(s) {
|
gettext: function (s) {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript" src="{% url 'utility.jsCatalog' LANGUAGE_CODE %}"></script><script type="text/javascript" src="{% url 'utility.js' %}"></script>
|
<script type="text/javascript" src="{% url 'utility.jsCatalog' LANGUAGE_CODE %}"></script><script type="text/javascript" src="{% url 'utility.js' %}"></script>
|
||||||
|
|
||||||
<link rel="stylesheet" href="/uds/res/modern/styles.css"></head>
|
<link rel="stylesheet" href="/uds/res/modern/styles.css"><link rel="stylesheet" href="{% url 'custom' 'styles.css' %}"></head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<uds-root></uds-root>
|
<uds-root></uds-root>
|
||||||
|
@ -119,6 +119,11 @@ urlpatterns = [
|
|||||||
# Authenticators custom html
|
# Authenticators custom html
|
||||||
re_path(r'^uds/webapi/customAuth/(?P<idAuth>.*)$', uds.web.views.customAuth, name='uds.web.views.customAuth'),
|
re_path(r'^uds/webapi/customAuth/(?P<idAuth>.*)$', uds.web.views.customAuth, name='uds.web.views.customAuth'),
|
||||||
|
|
||||||
|
# END WEB API
|
||||||
|
|
||||||
|
# Costumization of GUI
|
||||||
|
re_path(r'^uds/custom/(?P<component>[a-zA-Z.-]+)$', uds.web.views.custom.custom, name='custom'),
|
||||||
|
|
||||||
# REST Api
|
# REST Api
|
||||||
re_path(r'^uds/rest/(?P<arguments>.*)$', REST.Dispatcher.as_view(), name="REST"),
|
re_path(r'^uds/rest/(?P<arguments>.*)$', REST.Dispatcher.as_view(), name="REST"),
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ def transformId(view_func):
|
|||||||
|
|
||||||
@wraps(view_func)
|
@wraps(view_func)
|
||||||
def _wrapped_view(request, *args, **kwargs):
|
def _wrapped_view(request, *args, **kwargs):
|
||||||
from uds.web import errors
|
from uds.web.util import errors
|
||||||
for k in kwargs.keys():
|
for k in kwargs.keys():
|
||||||
if k[:2] == 'id':
|
if k[:2] == 'id':
|
||||||
try:
|
try:
|
||||||
|
@ -37,7 +37,7 @@ from uds.core.util.Config import GlobalConfig
|
|||||||
from uds.core.util.Cache import Cache
|
from uds.core.util.Cache import Cache
|
||||||
from uds.core.util.model import processUuid
|
from uds.core.util.model import processUuid
|
||||||
|
|
||||||
import uds.web.errors as errors
|
import uds.web.util.errors as errors
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
@ -36,12 +36,15 @@ import logging
|
|||||||
|
|
||||||
from django import template
|
from django import template
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.middleware import csrf
|
||||||
from django.utils.translation import gettext, get_language
|
from django.utils.translation import gettext, get_language
|
||||||
from django.utils.html import mark_safe
|
from django.utils.html import mark_safe
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.templatetags.static import static
|
from django.templatetags.static import static
|
||||||
|
|
||||||
|
from uds.REST import AUTH_TOKEN_HEADER
|
||||||
from uds.REST.methods.client import CLIENT_VERSION
|
from uds.REST.methods.client import CLIENT_VERSION
|
||||||
|
|
||||||
from uds.core.managers import downloadsManager
|
from uds.core.managers import downloadsManager
|
||||||
from uds.core.util.Config import GlobalConfig
|
from uds.core.util.Config import GlobalConfig
|
||||||
|
|
||||||
@ -57,8 +60,7 @@ CSRF_FIELD = 'csrfmiddlewaretoken'
|
|||||||
|
|
||||||
|
|
||||||
@register.simple_tag(takes_context=True)
|
@register.simple_tag(takes_context=True)
|
||||||
def udsJs(context):
|
def udsJs(request):
|
||||||
request = context['request']
|
|
||||||
auth_host = request.META.get('HTTP_HOST') or request.META.get('SERVER_NAME') or 'auth_host' # Last one is a placeholder in case we can't locate host name
|
auth_host = request.META.get('HTTP_HOST') or request.META.get('SERVER_NAME') or 'auth_host' # Last one is a placeholder in case we can't locate host name
|
||||||
|
|
||||||
profile = {
|
profile = {
|
||||||
@ -67,7 +69,7 @@ def udsJs(context):
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Gets csrf token
|
# Gets csrf token
|
||||||
csrf_token = context.get('csrf_token')
|
csrf_token = csrf.get_token(request)
|
||||||
if csrf_token is not None:
|
if csrf_token is not None:
|
||||||
csrf_token = str(csrf_token)
|
csrf_token = str(csrf_token)
|
||||||
|
|
||||||
@ -107,6 +109,7 @@ def udsJs(context):
|
|||||||
'changeLang': reverse('set_language'),
|
'changeLang': reverse('set_language'),
|
||||||
'login': reverse('page.login'),
|
'login': reverse('page.login'),
|
||||||
'logout': reverse('page.logout'),
|
'logout': reverse('page.logout'),
|
||||||
|
'user': reverse('page.index'),
|
||||||
'customAuth': reverse('uds.web.views.customAuth', kwargs={'idAuth': ''}),
|
'customAuth': reverse('uds.web.views.customAuth', kwargs={'idAuth': ''}),
|
||||||
'services': reverse('webapi.services'),
|
'services': reverse('webapi.services'),
|
||||||
'enabler': reverse('webapi.enabler', kwargs={ 'idService': 'param1', 'idTransport': 'param2' }),
|
'enabler': reverse('webapi.enabler', kwargs={ 'idService': 'param1', 'idTransport': 'param2' }),
|
||||||
@ -135,8 +138,16 @@ def udsJs(context):
|
|||||||
actors = []
|
actors = []
|
||||||
|
|
||||||
if profile['role'] == 'staff': # Add staff things
|
if profile['role'] == 'staff': # Add staff things
|
||||||
|
# If is admin (informational, REST api checks users privileges anyway...)
|
||||||
|
profile['admin'] = True;
|
||||||
|
# REST auth
|
||||||
|
config['auth_token'] = request.session.session_key
|
||||||
|
config['auth_header'] = AUTH_TOKEN_HEADER
|
||||||
|
# Actors
|
||||||
actors = [{'url': reverse('utility.downloader', kwargs={'idDownload': key}), 'name': val['name'], 'description': gettext(val['comment'])} for key, val in downloadsManager().getDownloadables().items()]
|
actors = [{'url': reverse('utility.downloader', kwargs={'idDownload': key}), 'name': val['name'], 'description': gettext(val['comment'])} for key, val in downloadsManager().getDownloadables().items()]
|
||||||
|
# URLS
|
||||||
config['urls']['admin'] = reverse('uds.admin.views.index')
|
config['urls']['admin'] = reverse('uds.admin.views.index')
|
||||||
|
config['urls']['rest'] = reverse('REST', kwargs={'arguments': ''})
|
||||||
|
|
||||||
errors = []
|
errors = []
|
||||||
if 'errors' in request.session:
|
if 'errors' in request.session:
|
||||||
@ -152,6 +163,5 @@ def udsJs(context):
|
|||||||
'data': request.session.get('data')
|
'data': request.session.get('data')
|
||||||
}
|
}
|
||||||
|
|
||||||
javascript = 'var udsData = ' + json.dumps(uds) + ';\n';
|
return 'var udsData = ' + json.dumps(uds) + ';\n'
|
||||||
|
|
||||||
return mark_safe(javascript);
|
|
@ -36,11 +36,12 @@ import logging
|
|||||||
from .service import transportOwnLink, transportIcon, clientEnabler, serviceImage, action
|
from .service import transportOwnLink, transportIcon, clientEnabler, serviceImage, action
|
||||||
from .auth import authCallback, authInfo, ticketAuth, customAuth
|
from .auth import authCallback, authInfo, ticketAuth, customAuth
|
||||||
from .download import download
|
from .download import download
|
||||||
from ..errors import error
|
from uds.web.util.errors import error
|
||||||
from .images import image
|
from .images import image
|
||||||
from .file_storage import file_storage
|
from .file_storage import file_storage
|
||||||
from . import modern
|
from . import modern
|
||||||
|
from . import custom
|
||||||
|
|
||||||
__updated__ = '2018-09-28'
|
__updated__ = '2018-10-04'
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
@ -38,7 +38,7 @@ from django.utils.translation import ugettext as _
|
|||||||
from django.views.decorators.cache import never_cache
|
from django.views.decorators.cache import never_cache
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
|
|
||||||
import uds.web.errors as errors
|
import uds.web.util.errors as errors
|
||||||
from uds.core.auths.Exceptions import InvalidUserException
|
from uds.core.auths.Exceptions import InvalidUserException
|
||||||
from uds.core.auths.auth import webLogin, webLogout, authenticateViaCallback, authLogLogin, getUDSCookie
|
from uds.core.auths.auth import webLogin, webLogout, authenticateViaCallback, authLogLogin, getUDSCookie
|
||||||
from uds.core.managers import userServiceManager, cryptoManager
|
from uds.core.managers import userServiceManager, cryptoManager
|
||||||
|
46
server/src/uds/web/views/custom.py
Normal file
46
server/src/uds/web/views/custom.py
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Copyright (c) 2018 Virtual Cable S.L.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
# are permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# * Redistributions of source code must retain the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer in the documentation
|
||||||
|
# and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
|
||||||
|
# may be used to endorse or promote products derived from this software
|
||||||
|
# without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
"""
|
||||||
|
@author: Adolfo Gómez, dkmaster at dkmon dot com
|
||||||
|
"""
|
||||||
|
|
||||||
|
from django.http import HttpResponse
|
||||||
|
from django.views.decorators.cache import cache_page
|
||||||
|
from uds.core.util.Config import Config
|
||||||
|
|
||||||
|
|
||||||
|
# @cache_page(3600, key_prefix='custom', cache='memory')
|
||||||
|
def custom(request, component):
|
||||||
|
content_type = 'text/plain'
|
||||||
|
value = ''
|
||||||
|
|
||||||
|
if component == 'styles.css':
|
||||||
|
content_type = 'text/css'
|
||||||
|
value = Config.section('__custom').value('style').get(force=True)
|
||||||
|
|
||||||
|
return HttpResponse(content_type=content_type, content=value)
|
@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (c) 2012 Virtual Cable S.L.
|
# Copyright (c) 2012-2018 Virtual Cable S.L.
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without modification,
|
# Redistribution and use in source and binary forms, with or without modification,
|
||||||
@ -28,7 +28,6 @@
|
|||||||
"""
|
"""
|
||||||
@author: Adolfo Gómez, dkmaster at dkmon dot com
|
@author: Adolfo Gómez, dkmaster at dkmon dot com
|
||||||
"""
|
"""
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from uds.core.auths.auth import webLoginRequired
|
from uds.core.auths.auth import webLoginRequired
|
||||||
from uds.core.managers.DownloadsManager import DownloadsManager
|
from uds.core.managers.DownloadsManager import DownloadsManager
|
||||||
@ -38,7 +37,7 @@ import logging
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
__updated__ = '2018-09-28'
|
__updated__ = '2018-10-04'
|
||||||
|
|
||||||
|
|
||||||
@webLoginRequired(admin=True)
|
@webLoginRequired(admin=True)
|
||||||
|
@ -44,7 +44,7 @@ from uds.web.authentication import checkLogin
|
|||||||
from uds.core.ui import theme
|
from uds.core.ui import theme
|
||||||
from uds.core import VERSION
|
from uds.core import VERSION
|
||||||
|
|
||||||
import uds.web.errors as errors
|
import uds.web.util.errors as errors
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
@ -34,7 +34,7 @@ import json
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from uds.web.errors import errorView
|
from uds.web.util.errors import errorView
|
||||||
from uds.core.auths.auth import (
|
from uds.core.auths.auth import (
|
||||||
getUDSCookie,
|
getUDSCookie,
|
||||||
denyNonAuthenticated,
|
denyNonAuthenticated,
|
||||||
@ -42,7 +42,8 @@ from uds.core.auths.auth import (
|
|||||||
authLogLogout,
|
authLogLogout,
|
||||||
webLogout,
|
webLogout,
|
||||||
)
|
)
|
||||||
from uds.web.services import getServicesData
|
from uds.web.util.services import getServicesData
|
||||||
|
from uds.web.util import configjs
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -62,7 +63,7 @@ def index(request):
|
|||||||
# Basically, the original /login method, but fixed for modern interface
|
# Basically, the original /login method, but fixed for modern interface
|
||||||
def login(request, tag=None):
|
def login(request, tag=None):
|
||||||
from uds.web.forms.LoginForm import LoginForm
|
from uds.web.forms.LoginForm import LoginForm
|
||||||
from uds.web.authentication import checkLogin
|
from uds.web.util.authentication import checkLogin
|
||||||
from uds.core.auths.auth import webLogin
|
from uds.core.auths.auth import webLogin
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
|
|
||||||
@ -97,7 +98,7 @@ def logout(request):
|
|||||||
|
|
||||||
|
|
||||||
def js(request):
|
def js(request):
|
||||||
return render(request, 'uds/js.js', content_type='text/javascript')
|
return HttpResponse(content=configjs.udsJs(request), content_type='application/javascript')
|
||||||
|
|
||||||
|
|
||||||
@denyNonAuthenticated
|
@denyNonAuthenticated
|
||||||
|
@ -43,15 +43,15 @@ from uds.models import Transport, Image
|
|||||||
from uds.core.util import html, log
|
from uds.core.util import html, log
|
||||||
from uds.core.services.Exceptions import ServiceNotReadyError, MaxServicesReachedError, ServiceAccessDeniedByCalendar
|
from uds.core.services.Exceptions import ServiceNotReadyError, MaxServicesReachedError, ServiceAccessDeniedByCalendar
|
||||||
|
|
||||||
from uds.web import errors
|
from uds.web.util import errors
|
||||||
from uds.web import services
|
from uds.web.util import services
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
__updated__ = '2018-09-27'
|
__updated__ = '2018-10-07'
|
||||||
|
|
||||||
|
|
||||||
@webLoginRequired(admin=False)
|
@webLoginRequired(admin=False)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user