Exemplo n.º 1
0
def auto_select_workspace(request, mode=None):

    if settings.ALLOW_ANONYMOUS_ACCESS is False and request.user.is_authenticated() is False:
        return redirect_to_login(request.get_full_path())

    if request.user.is_authenticated():
        url = urlresolvers.reverse('wirecloud.workspace_view', kwargs={
            'owner': 'wirecloud',
            'name': 'home'
        })

        parameters = {}
        if mode:
            parameters['mode'] = mode

        if 'theme' in request.GET:
            parameters['theme'] = request.GET['theme']

        if len(parameters) > 0:
            url += '?' + urlencode(parameters)

        return HttpResponseRedirect(url)
    else:
        context = {
            'THEME': get_active_theme_name(),
            'VIEW_MODE': 'classic',
            'WIRECLOUD_VERSION_HASH': get_version_hash()
        }
        return render(request, 'wirecloud/landing_page.html', context=context, content_type="application/xhtml+xml; charset=UTF-8")
Exemplo n.º 2
0
def auto_select_workspace(request, mode=None):

    if settings.ALLOW_ANONYMOUS_ACCESS is False and request.user.is_authenticated() is False:
        return redirect_to_login(request.get_full_path())

    _junk1, active_workspace = get_workspace_list(request.user)

    if active_workspace is not None:
        url = urlresolvers.reverse('wirecloud.workspace_view', kwargs={
            'owner': active_workspace.workspace.creator.username,
            'name': active_workspace.workspace.name,
        })

        if mode:
            url += '?' + urlencode({'mode': mode})

        return HttpResponseRedirect(url)
    elif request.user.is_authenticated():
        return render_wirecloud(request, mode)
    else:
        context = {
            'THEME': get_active_theme_name(),
            'VIEW_MODE': 'classic',
            'WIRECLOUD_VERSION_HASH': get_version_hash()
        }
        context = RequestContext(request, context)
        return render(request, 'wirecloud/landing_page.html', context_instance=context, content_type="application/xhtml+xml; charset=UTF-8")
Exemplo n.º 3
0
def render_wirecloud(request, view_type=None, title=None, description=None):

    if view_type is None:
        if 'mode' in request.GET:
            view_type = request.GET['mode']
        else:
            view_type = get_default_view(request)

    theme = request.GET.get('theme', get_active_theme_name())
    if theme not in get_available_themes():
        return remove_query_parameter(request, 'theme')

    context = {
        'title': title,
        'description': description,
        'THEME': theme,
        'VIEW_MODE': view_type,
        'WIRECLOUD_VERSION_HASH': get_version_hash()
    }

    try:

        return render(request, theme + ':wirecloud/views/%s.html' % view_type, context=context, content_type="application/xhtml+xml; charset=UTF-8")

    except TemplateDoesNotExist:

        if 'mode' in request.GET:
            return remove_query_parameter(request, 'mode')
        else:
            view_type = get_default_view(request)
            return render_wirecloud(request, view_type, title, description)
Exemplo n.º 4
0
def render_wirecloud(request, view_type=None):

    if view_type is None:
        if 'mode' in request.GET:
            view_type = request.GET['mode']
        else:
            view_type = get_default_view(request)

    theme = request.GET.get('theme', get_active_theme_name())
    if theme not in get_available_themes():
        return remove_query_parameter(request, 'theme')

    try:

        template = get_template(theme + ':wirecloud/views/%s.html' % view_type)

    except TemplateDoesNotExist:

        if 'mode' in request.GET:
            return remove_query_parameter(request, 'mode')
        else:
            view_type = get_default_view(request)
            return render_wirecloud(request, view_type)

    context = {
        'THEME': theme,
        'VIEW_MODE': view_type,
        'WIRECLOUD_VERSION_HASH': get_version_hash()
    }
    content = template.render(RequestContext(request, context))
    return HttpResponse(content, content_type="application/xhtml+xml; charset=UTF-8")
Exemplo n.º 5
0
def version_entry(request):
    # git hash and release_date is only available on released versions
    # but we can retrieve it using get_git_info
    if not hasattr(wirecloud.platform, "__git_hash__"):
        wirecloud.platform.__git_hash__, wirecloud.platform.__release_date__, wirecloud.platform.__git_dirty__ = get_git_info(
        )

    td = datetime.now() - START_TIME
    info = {
        "version":
        wirecloud.platform.__version__,
        "uptime":
        "%d d, %d h, %d m, %d s" % (td.days, td.seconds // 3600,
                                    (td.seconds // 60) % 60, td.seconds % 60),
        "version_hash":
        get_version_hash(),
        "doc":
        "http://fiware.github.io/apps.Wirecloud/restapi/v2.2/",
        "git_hash":
        wirecloud.platform.__git_hash__,
        "git_dirty":
        wirecloud.platform.__git_dirty__,
        "release_date":
        wirecloud.platform.__release_date__,
    }

    return HttpResponse(json.dumps(info),
                        content_type='application/json; charset=UTF-8')
Exemplo n.º 6
0
def get_widget_api_files(request):

    from wirecloud.platform.core.plugins import get_version_hash

    key = 'widget_api_files/%s?v=%s' % (get_current_domain(request),
                                        get_version_hash())
    widget_api_files = cache.get(key)

    if widget_api_files is None or settings.DEBUG is True:
        code = '''{% load compress %}{% load static from staticfiles %}{% compress js %}
        <script type="text/javascript" src="{% static "js/WirecloudAPI/WirecloudAPIBootstrap.js" %}"></script>
        <script type="text/javascript" src="{% static "js/WirecloudAPI/WirecloudWidgetAPI.js" %}"></script>
        <script type="text/javascript" src="{% static "js/WirecloudAPI/WirecloudAPICommon.js" %}"></script>
        {% endcompress %}'''

        result = Template(code).render(Context())
        doc = etree.parse(
            BytesIO(('<files>' + result + '</files>').encode('utf-8')),
            etree.XMLParser())

        files = [script.get('src') for script in doc.getroot()]
        files.reverse()
        widget_api_files = tuple([
            get_absolute_static_url(file, request=request, versioned=True)
            for file in files
        ])
        cache.set(key, widget_api_files)

    return list(widget_api_files)
Exemplo n.º 7
0
def auto_select_workspace(request, mode=None):

    if settings.ALLOW_ANONYMOUS_ACCESS is False and request.user.is_authenticated(
    ) is False:
        return redirect_to_login(request.get_full_path())

    if request.user.is_authenticated():
        url = urlresolvers.reverse('wirecloud.workspace_view',
                                   kwargs={
                                       'owner': 'wirecloud',
                                       'name': 'home'
                                   })

        parameters = {}
        if mode:
            parameters['mode'] = mode

        if 'theme' in request.GET:
            parameters['theme'] = request.GET['theme']

        if len(parameters) > 0:
            url += '?' + urlencode(parameters)

        return HttpResponseRedirect(url)
    else:
        context = {
            'THEME': get_active_theme_name(),
            'VIEW_MODE': 'classic',
            'WIRECLOUD_VERSION_HASH': get_version_hash()
        }
        return render(request,
                      'wirecloud/landing_page.html',
                      context=context,
                      content_type="application/xhtml+xml; charset=UTF-8")
Exemplo n.º 8
0
def render_wirecloud(request, view_type=None):

    if view_type is None:
        if 'mode' in request.GET:
            view_type = request.GET['mode']
        else:
            view_type = get_default_view(request)

    try:
        return render(request,
                      'wirecloud/views/%s.html' % view_type, {
                          'VIEW_MODE': view_type,
                          'WIRECLOUD_VERSION_HASH': get_version_hash()
                      },
                      content_type="application/xhtml+xml; charset=UTF-8")
    except TemplateDoesNotExist:
        if 'mode' in request.GET:
            url = urlparse(request.build_absolute_uri())
            query_params = parse_qs(url.query, True)
            del query_params['mode']
            return HttpResponseRedirect(
                urlunparse((url.scheme, url.netloc, url.path, url.params,
                            urlencode(query_params, True), url.fragment)))
        else:
            view_type = get_default_view(request)
            return render_wirecloud(request, view_type)
Exemplo n.º 9
0
def render_wirecloud(request, view_type=None):

    if view_type is None:
        if 'mode' in request.GET:
            view_type = request.GET['mode']
        else:
            view_type = get_default_view(request)

    theme = request.GET.get('theme', get_active_theme_name())
    if theme not in get_available_themes():
        return remove_query_parameter(request, 'theme')

    context = {
        'THEME': theme,
        'VIEW_MODE': view_type,
        'WIRECLOUD_VERSION_HASH': get_version_hash()
    }

    try:

        return render(request,
                      theme + ':wirecloud/views/%s.html' % view_type,
                      context=context,
                      content_type="application/xhtml+xml; charset=UTF-8")

    except TemplateDoesNotExist:

        if 'mode' in request.GET:
            return remove_query_parameter(request, 'mode')
        else:
            view_type = get_default_view(request)
            return render_wirecloud(request, view_type)
Exemplo n.º 10
0
    def test_get_absolute_static_url_versioned(self, get_current_domain,
                                               get_current_scheme):
        request = self._prepare_request_mock()
        get_current_scheme.return_value = "http"
        get_current_domain.return_value = "dashboards.example.org"
        self.assertEqual(
            get_absolute_static_url("/path", request=request, versioned=True),
            'http://dashboards.example.org/path?v=' + get_version_hash())

        get_current_scheme.assert_called_once_with(request)
        get_current_domain.assert_called_once_with(request)
Exemplo n.º 11
0
def get_absolute_static_url(url, request=None, versioned=False):
    from django.conf import settings

    scheme = get_current_scheme()
    base = urljoin(scheme + '://' + get_current_domain(request), settings.STATIC_URL)

    if versioned:
        from wirecloud.platform.core.plugins import get_version_hash
        url += '?v=' + get_version_hash()

    return urljoin(base, url)
Exemplo n.º 12
0
    def get_urls(self):

        if IDM_SUPPORT_ENABLED:
            from wirecloud.fiware.views import oauth_discovery
            return (url('^.well-known/oauth$',
                        cache_page(7 * 24 * 60 * 60,
                                   key_prefix='well-known-oauth-%s' %
                                   get_version_hash())(oauth_discovery),
                        name='oauth.discovery'), )
        else:
            return ()
Exemplo n.º 13
0
    def get_urls(self):
        urls = (url(r'^api/marketAdaptor/',
                    include('wirecloud.fiware.marketAdaptor.urls')), )

        if IDM_SUPPORT_ENABLED:
            from wirecloud.fiware.views import oauth_discovery
            urls += (url('^.well-known/oauth$',
                         cache_page(7 * 24 * 60 * 60,
                                    key_prefix='well-known-oauth-%s' %
                                    get_version_hash())(oauth_discovery),
                         name='oauth.discovery'), )

        return urls
Exemplo n.º 14
0
def version_entry(request):
    # git hash and release_date is only available on released versions
    # but we can retrieve it using get_git_info
    if not hasattr(wirecloud.platform, "__git_hash__"):
        wirecloud.platform.__git_hash__, wirecloud.platform.__release_date__, wirecloud.platform.__git_dirty__ = get_git_info()

    td = datetime.now() - START_TIME
    info = {
        "version": wirecloud.platform.__version__,
        "uptime": "%d d, %d h, %d m, %d s" % (td.days, td.seconds // 3600, (td.seconds // 60) % 60, td.seconds % 60),
        "version_hash": get_version_hash(),
        "doc": "https://wirecloud.github.io/wirecloud/restapi/v%s/" % wirecloud.platform.__application_mashup_version__,
        "userDoc": "https://wirecloud.readthedocs.io/en/%s/" % wirecloud.platform.__version__,
        "git_hash": wirecloud.platform.__git_hash__,
        "git_dirty": wirecloud.platform.__git_dirty__,
        "release_date": wirecloud.platform.__release_date__,
    }

    return HttpResponse(json.dumps(info), content_type='application/json; charset=UTF-8')
Exemplo n.º 15
0
def get_widget_api_files(request):

    from wirecloud.platform.core.plugins import get_version_hash

    key = 'widget_api_files/%s?v=%s' % (get_current_domain(request), get_version_hash())
    widget_api_files = cache.get(key)

    if widget_api_files is None or settings.DEBUG is True:
        code = '''{% load compress %}{% load static from staticfiles %}{% compress js %}
        <script type="text/javascript" src="{% static "js/WirecloudAPI/WirecloudAPIBootstrap.js" %}"></script>
        <script type="text/javascript" src="{% static "js/WirecloudAPI/WirecloudWidgetAPI.js" %}"></script>
        <script type="text/javascript" src="{% static "js/WirecloudAPI/WirecloudAPICommon.js" %}"></script>
        {% endcompress %}'''

        result = Template(code).render(Context({}))
        doc = etree.parse(BytesIO(('<files>' + result + '</files>').encode('utf-8')), etree.XMLParser())

        files = [script.get('src') for script in doc.getroot()]
        files.reverse()
        widget_api_files = tuple([get_absolute_static_url(file, request=request, versioned=True) for file in files])
        cache.set(key, widget_api_files)

    return list(widget_api_files)
Exemplo n.º 16
0
from user_agents import parse as ua_parse
import six

from wirecloud.commons.utils.cache import patch_cache_headers
from wirecloud.commons.utils.http import build_error_response
from wirecloud.platform.core.plugins import get_version_hash
from wirecloud.platform.plugins import get_active_features_info, get_plugins
from wirecloud.platform.models import Workspace
from wirecloud.platform.themes import get_active_theme_name, get_available_themes
from wirecloud.platform.workspace.utils import get_workspace_list

LANGUAGE_QUERY_PARAMETER = 'language'


@cache_page(60 * 60 * 24,
            key_prefix='wirecloud-features-%s' % get_version_hash())
@require_safe
def feature_collection(request):
    features = get_active_features_info()

    response = HttpResponse(json.dumps(features, sort_keys=True),
                            content_type='application/json; charset=UTF-8')
    return patch_cache_headers(response)


def resolve_url(to, *args, **kwargs):  # pragma: no cover
    """
    Return a URL appropriate for the arguments passed.
    The arguments could be:
        * A model: the model's `get_absolute_url()` function will be called.
        * A view name, possibly with arguments: `urlresolvers.reverse()` will
Exemplo n.º 17
0
# (at your option) any later version.

# Wirecloud is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.

# You should have received a copy of the GNU Affero General Public License
# along with Wirecloud.  If not, see <http://www.gnu.org/licenses/>.

from django.conf.urls import patterns, include, url
from django.views.decorators.cache import cache_page

from wirecloud.oauth2provider.views import oauth_discovery
from wirecloud.platform.core.plugins import get_version_hash

urlpatterns = patterns(
    'wirecloud.oauth2provider.views',
    url('^.well-known/oauth$',
        cache_page(7 * 24 * 60 * 60,
                   key_prefix='well-known-oauth-%s' %
                   get_version_hash())(oauth_discovery),
        name='oauth.discovery'),
    url('^oauth2/auth$',
        'provide_authorization_code',
        name='oauth2provider.auth'),
    url('^oauth2/token$',
        'provide_authorization_token',
        name='oauth2provider.token'),
)
Exemplo n.º 18
0
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
from django.views.decorators.cache import cache_page
from django.views.decorators.csrf import csrf_protect
from django.views.decorators.http import require_GET, require_http_methods, require_POST
from django.shortcuts import render

from wirecloud.commons.utils.http import get_absolute_reverse_url, build_error_response
from wirecloud.oauth2provider.provider import WirecloudAuthorizationProvider
from wirecloud.platform.core.plugins import get_version_hash


provider = WirecloudAuthorizationProvider()


@cache_page(60 * 60 * 24, key_prefix='oauth2provider-info-%s' % get_version_hash())
@require_GET
def oauth_discovery(request):

    endpoints = {
        'flows': ["Authorization Code Grant"],
        'auth_endpoint': get_absolute_reverse_url('oauth2provider.auth', request),
        'token_endpoint': get_absolute_reverse_url('oauth2provider.token', request),
        'default_redirect_uri': get_absolute_reverse_url('oauth.default_redirect_uri', request),
        'version': '2.0',
    }

    return HttpResponse(json.dumps(endpoints, sort_keys=True), content_type='application/json; charset=UTF-8')


@require_http_methods(["GET", "POST"])
Exemplo n.º 19
0
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# Wirecloud is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.

# You should have received a copy of the GNU Affero General Public License
# along with Wirecloud.  If not, see <http://www.gnu.org/licenses/>.

from django.conf.urls import url
from django.views.decorators.cache import cache_page

from wirecloud.oauth2provider import views
from wirecloud.platform.core.plugins import get_version_hash

urlpatterns = (

    url('^.well-known/oauth$',
        cache_page(7 * 24 * 60 * 60, key_prefix='well-known-oauth-%s' % get_version_hash())(views.oauth_discovery),
        name='oauth.discovery'),
    url('^oauth2/auth$',
        views.provide_authorization_code,
        name='oauth2provider.auth'),
    url('^oauth2/token$',
        views.provide_authorization_token,
        name='oauth2provider.token'),

)
Exemplo n.º 20
0
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
from django.views.decorators.cache import cache_page
from django.views.decorators.csrf import csrf_protect
from django.views.decorators.http import require_GET, require_http_methods, require_POST
from django.shortcuts import render

from wirecloud.commons.utils.http import get_absolute_reverse_url, build_error_response
from wirecloud.oauth2provider.provider import WirecloudAuthorizationProvider
from wirecloud.platform.core.plugins import get_version_hash

provider = WirecloudAuthorizationProvider()


@cache_page(60 * 60 * 24,
            key_prefix='oauth2provider-info-%s' % get_version_hash())
@require_GET
def oauth_discovery(request):

    endpoints = {
        'flows': ["Authorization Code Grant"],
        'auth_endpoint':
        get_absolute_reverse_url('oauth2provider.auth', request),
        'token_endpoint':
        get_absolute_reverse_url('oauth2provider.token', request),
        'default_redirect_uri':
        get_absolute_reverse_url('oauth.default_redirect_uri', request),
        'version':
        '2.0',
    }
Exemplo n.º 21
0
# Copyright (c) 2013-2015 CoNWeT Lab., Universidad Politécnica de Madrid

# This file is part of Wirecloud.

# Wirecloud is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# Wirecloud is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.

# You should have received a copy of the GNU Affero General Public License
# along with Wirecloud.  If not, see <http://www.gnu.org/licenses/>.

from django.conf.urls import patterns, include, url
from django.views.decorators.cache import cache_page

from wirecloud.oauth2provider.views import oauth_discovery
from wirecloud.platform.core.plugins import get_version_hash

urlpatterns = patterns('wirecloud.oauth2provider.views',

    url('^.well-known/oauth$', cache_page(7 * 24 * 60 * 60, key_prefix='well-known-oauth-%s' % get_version_hash())(oauth_discovery), name='oauth.discovery'),
    url('^oauth2/auth$', 'provide_authorization_code', name='oauth2provider.auth'),
    url('^oauth2/token$', 'provide_authorization_token', name='oauth2provider.token'),

)
Exemplo n.º 22
0
def render_wirecloud(request, view_type=None):

    if view_type is None:
        if 'mode' in request.GET:
            view_type = request.GET['mode']
        else:
            view_type = get_default_view(request)

    try:
        return render(request, 'wirecloud/views/%s.html' % view_type, {'VIEW_MODE': view_type, 'WIRECLOUD_VERSION_HASH': get_version_hash()}, content_type="application/xhtml+xml; charset=UTF-8")
    except TemplateDoesNotExist:
        if 'mode' in request.GET:
            url = urlparse(request.build_absolute_uri())
            query_params = parse_qs(url.query, True)
            del query_params['mode']
            return HttpResponseRedirect(urlunparse((
                url.scheme,
                url.netloc,
                url.path,
                url.params,
                urlencode(query_params, True),
                url.fragment
            )))
        else:
            view_type = get_default_view(request)
            return render_wirecloud(request, view_type)
Exemplo n.º 23
0
from django.views.i18n import render_javascript_catalog
from user_agents import parse as ua_parse
import six

from wirecloud.commons.utils.cache import patch_cache_headers
from wirecloud.commons.utils.http import build_error_response
from wirecloud.platform.core.plugins import get_version_hash
from wirecloud.platform.plugins import get_active_features_info, get_plugins
from wirecloud.platform.models import Workspace
from wirecloud.platform.themes import get_active_theme_name, get_available_themes
from wirecloud.platform.workspace.utils import get_workspace_list

LANGUAGE_QUERY_PARAMETER = 'language'


@cache_page(60 * 60 * 24, key_prefix='wirecloud-features-%s' % get_version_hash())
@require_safe
def feature_collection(request):
    features = get_active_features_info()

    response = HttpResponse(json.dumps(features, sort_keys=True), content_type='application/json; charset=UTF-8')
    return patch_cache_headers(response)


def resolve_url(to, *args, **kwargs):  # pragma: no cover
    """
    Return a URL appropriate for the arguments passed.
    The arguments could be:
        * A model: the model's `get_absolute_url()` function will be called.
        * A view name, possibly with arguments: `urlresolvers.reverse()` will
          be used to reverse-resolve the name.
Exemplo n.º 24
0
    def get_urls(self):

        if IDM_SUPPORT_ENABLED:
            from wirecloud.fiware.views import oauth_discovery
            return (
                url('^.well-known/oauth$', cache_page(7 * 24 * 60 * 60, key_prefix='well-known-oauth-%s' % get_version_hash())(oauth_discovery), name='oauth.discovery'),
            )
        else:
            return ()
Exemplo n.º 25
0
    def test_get_absolute_static_url_versioned(self, get_current_domain, get_current_scheme):
        request = self._prepare_request_mock()
        get_current_scheme.return_value = "http"
        get_current_domain.return_value = "dashboards.example.org"
        self.assertEqual(get_absolute_static_url("/path", request=request, versioned=True), 'http://dashboards.example.org/path?v=' + get_version_hash())

        get_current_scheme.assert_called_once_with(request)
        get_current_domain.assert_called_once_with(request)
Exemplo n.º 26
0
        if callable(to):
            raise
        # If this doesn't "feel" like a URL, re-raise.
        if '/' not in to and '.' not in to:
            raise

    # Finally, fall back and assume it's a URL
    return to


def redirect_to_login(*args, **kwargs):
    kwargs['login_url'] = resolve_url(kwargs.get('login_url') or settings.LOGIN_URL)
    return django_redirect_to_login(*args, **kwargs)


@cache_page(60 * 60 * 24, key_prefix='js18n-%s' % get_version_hash())
def cached_javascript_catalog(request):
    packages = ['wirecloud.commons', 'wirecloud.catalogue', 'wirecloud.platform']

    for plugin in get_plugins():
        packages.append(plugin.__module__)

    return javascript_catalog(request, "djangojs", packages)


def render_root_page(request):
    return auto_select_workspace(request, request.GET.get('mode', None))


def auto_select_workspace(request, mode=None):
Exemplo n.º 27
0
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# Wirecloud is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.

# You should have received a copy of the GNU Affero General Public License
# along with Wirecloud.  If not, see <http://www.gnu.org/licenses/>.

from django.conf.urls import include, url
from django.views.decorators.cache import cache_page

from wirecloud.oauth2provider import views
from wirecloud.platform.core.plugins import get_version_hash

urlpatterns = (
    url('^.well-known/oauth$',
        cache_page(7 * 24 * 60 * 60,
                   key_prefix='well-known-oauth-%s' % get_version_hash())(
                       views.oauth_discovery),
        name='oauth.discovery'),
    url('^oauth2/auth$',
        views.provide_authorization_code,
        name='oauth2provider.auth'),
    url('^oauth2/token$',
        views.provide_authorization_token,
        name='oauth2provider.token'),
)
Exemplo n.º 28
0
            raise
        # If this doesn't "feel" like a URL, re-raise.
        if '/' not in to and '.' not in to:
            raise

    # Finally, fall back and assume it's a URL
    return to


def redirect_to_login(*args, **kwargs):
    kwargs['login_url'] = resolve_url(
        kwargs.get('login_url') or settings.LOGIN_URL)
    return django_redirect_to_login(*args, **kwargs)


@cache_page(60 * 60 * 24, key_prefix='js18n-%s' % get_version_hash())
def cached_javascript_catalog(request):
    packages = [
        'wirecloud.commons', 'wirecloud.catalogue', 'wirecloud.platform'
    ]

    for plugin in get_plugins():
        packages.append(plugin.__module__)

    return javascript_catalog(request, "djangojs", packages)


def render_root_page(request):
    return auto_select_workspace(request, request.GET.get('mode', None))

Exemplo n.º 29
0
    def get_urls(self):
        urls = patterns('',
            url(r'^api/marketAdaptor/', include('wirecloud.fiware.marketAdaptor.urls')),
        )

        if IDM_SUPPORT_ENABLED:
            from wirecloud.fiware.views import oauth_discovery
            urls += patterns('',
                url('^.well-known/oauth$', cache_page(7 * 24 * 60 * 60, key_prefix='well-known-oauth-%s' % get_version_hash())(oauth_discovery), name='oauth.discovery'),
            )

        return urls
Exemplo n.º 30
0
from wirecloud.commons.utils.cache import patch_cache_headers
from wirecloud.commons.utils.git import get_git_info
from wirecloud.commons.utils.http import build_error_response
import wirecloud.platform
from wirecloud.platform.core.plugins import get_version_hash
from wirecloud.platform.plugins import get_active_features_info
from wirecloud.platform.models import Workspace
from wirecloud.platform.themes import get_active_theme_name, get_available_themes
from wirecloud.platform.workspace.utils import get_workspace_list

START_TIME = datetime.now()


@cache_page(60 * 60 * 24,
            key_prefix='wirecloud-features-%s' % get_version_hash())
@require_safe
def feature_collection(request):
    features = get_active_features_info()

    response = HttpResponse(json.dumps(features, sort_keys=True),
                            content_type='application/json; charset=UTF-8')
    return patch_cache_headers(response)


@require_safe
def version_entry(request):
    # git hash and release_date is only available on released versions
    # but we can retrieve it using get_git_info
    if not hasattr(wirecloud.platform, "__git_hash__"):
        wirecloud.platform.__git_hash__, wirecloud.platform.__release_date__, wirecloud.platform.__git_dirty__ = get_git_info(