Ejemplo n.º 1
0
def url_active(regex, view, name=None):
    """
    Returns a urlpattern accessible to an active user.
    """
    return url(regex % {"organization": r'(?P<organization>%s)' % ACCT_REGEX},
               view,
               name=name,
               redirects=[fail_authenticated, fail_active, fail_agreement])
Ejemplo n.º 2
0
def url_authenticated(regex, view, name=None):
    """
    Returns a urlpattern accessible to an authenticated user.
    """
    return url(regex % {"organization": r'(?P<organization>%s)' % ACCT_REGEX},
               view,
               name=name,
               redirects=[fail_authenticated],
               decorators=[inject_edition_tools])
Ejemplo n.º 3
0
def url_frictionless_direct(regex, view, name=None):
    """
    Builds URLs for a direct decorator that does not require
    an activated account.
    """
    return url(regex % {"organization": r'(?P<organization>%s)' % ACCT_REGEX},
               view,
               name=name,
               redirects=[fail_authenticated, fail_direct],
               decorators=[inject_edition_tools])
Ejemplo n.º 4
0
def url_frictionless_self_provider(regex, view, name=None):
    """
    This set of decorators is a little more relaxed than ``url_self_provider``.
    It will also let user (self) which have not activated their account through.
    """
    return url(regex % {"user": r'(?P<user>%s)' % ACCT_REGEX},
               view,
               name=name,
               redirects=[fail_authenticated, fail_self_provider],
               decorators=[inject_edition_tools])
Ejemplo n.º 5
0
def url_prefixed(regex, view, name=None, decorators=None):
    """
    Returns a urlpattern prefixed with the APP_NAME in debug mode.
    """
    return url(r'^%(app_prefix)s%(regex)s' % {
        'app_prefix': APP_PREFIX,
        'regex': regex
    },
               view,
               name=name,
               decorators=decorators)
Ejemplo n.º 6
0
def url_direct(regex, view, name=None):
    """
    Builds URLs for a direct decorator.
    """
    return url(regex % {"organization": r'(?P<organization>%s)' % ACCT_REGEX},
               view,
               name=name,
               redirects=[
                   fail_authenticated, fail_active, fail_agreement,
                   fail_active_roles, fail_direct
               ],
               decorators=[inject_edition_tools])
Ejemplo n.º 7
0
def url_dashboard_iframe(regex, view, name=None):
    """
    Same as ``url_dashboard``, but without inject_edition_tools.
    Used in notifications template iframe
    """
    return url(regex % {"app": r'(?P<app>%s)' % ACCT_REGEX},
               view,
               name=name,
               redirects=[
                   fail_authenticated, fail_active, fail_agreement,
                   fail_active_roles, fail_direct
               ])
Ejemplo n.º 8
0
def url_frictionless_provider(regex, view, name=None):
    """
    Direct managers for the organization and managers for a provider
    of a plan the organization is subscribed to have permission
    to access the urlpattern built from *regex*.

    The request user is not require to have activated their account yet.
    """
    return url(regex % {"organization": r'(?P<organization>%s)' % ACCT_REGEX},
               view,
               name=name,
               redirects=[fail_authenticated, fail_provider],
               decorators=[inject_edition_tools])
Ejemplo n.º 9
0
def url_dashboard(regex, view, name=None):
    """
    Same as ``url_direct``, yet override template loader behavior
    to force use of default templates. This is used for managers
    dashboard functionality, hence the name ``url_dashboard``.
    """
    return url(regex % {"app": r'(?P<app>%s)' % ACCT_REGEX},
               view,
               name=name,
               redirects=[
                   fail_authenticated, fail_active, fail_agreement,
                   fail_active_roles, fail_direct
               ],
               decorators=[inject_edition_tools])
Ejemplo n.º 10
0
def url_provider(regex, view, name=None):
    """
    Direct managers for the organization and managers for a provider
    of a plan the organization is subscribed to have permission
    to access the urlpattern built from *regex*.
    """
    return url(regex % {"organization": r'(?P<organization>%s)' % ACCT_REGEX},
               view,
               name=name,
               redirects=[
                   fail_authenticated, fail_active, fail_agreement,
                   fail_active_roles, fail_provider
               ],
               decorators=[inject_edition_tools])
Ejemplo n.º 11
0
def url_self_provider(regex, view, name=None):
    """
    The User authenticated by the request or a direct manager
    for an organization managed in common or a provider
    of a plan an organization managed in common is subscribed to,
    have permission to access the urlpattern built from *regex*.
    """
    return url(regex % {"user": r'(?P<user>%s)' % ACCT_REGEX},
               view,
               name=name,
               redirects=[
                   fail_authenticated, fail_active, fail_agreement,
                   fail_self_provider
               ],
               decorators=[inject_edition_tools])
Ejemplo n.º 12
0
from django.conf import settings
from django.conf.urls.static import static
from django.views.generic.base import RedirectView, TemplateView
from django.views.i18n import JavaScriptCatalog
from rules.urldecorators import include, url
from signup.compat import reverse_lazy
from signup.decorators import fail_authenticated
from signup.forms import NameEmailForm
from signup.views.auth import SignupView

from .forms import SignupWithCaptchaForm

urlpatterns = \
    static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + [
    url(r'^api/',
        include('signup.urls.api.contacts'),
        redirects=[fail_authenticated]),
    url(r'^api/',
        include('signup.urls.api.keys'),
        redirects=[fail_authenticated]),
    url(r'^api/',
        include('signup.urls.api.tokens'),
        redirects=[fail_authenticated]),
    url(r'^api/',
        include('signup.urls.api.users'),
        redirects=[fail_authenticated]),
    url(r'^api/',
        include('signup.urls.api.auth')),
    url(r'^contacts/',
        include('signup.urls.views.contacts'),
        redirects=[fail_authenticated]),
Ejemplo n.º 13
0
from deployutils.apps.django.templatetags.deployutils_prefixtags import (
    site_prefixed)
from rules.urldecorators import include, url

from ...views.redirects import AccountRedirectView, MyTSPRedirectView
from ...views.detail import ContentDetailXLSXView, DetailView, DetailXLSXView

PATH_RE = r'(/[a-zA-Z0-9\-]+)*'

urlpatterns = [

    # authenticated user
    url(r'app/portfolios(?P<path>%s)/' % PATH_RE,
        MyTSPRedirectView.as_view(
            pattern_name='matrix_chart',
            new_account_url=site_prefixed('/users/roles/accept/')),
        name='envconnect_portfolio'),
    url(r'app/reporting(?P<path>%s)/' % PATH_RE,
        MyTSPRedirectView.as_view(
            pattern_name='reporting_organization',
            new_account_url=site_prefixed('/users/roles/accept/')),
        name='reporting_redirect'),
    url(r'app/assess(?P<path>%s)/' % PATH_RE,
        AccountRedirectView.as_view(
            pattern_name='assess_organization_redirect',
            new_account_url=site_prefixed('/users/roles/accept/')),
        name='assess_redirect'),
    url(r'app/improve(?P<path>%s)/' % PATH_RE,
        AccountRedirectView.as_view(
            pattern_name='improve_organization_redirect',
Ejemplo n.º 14
0
                 name='registration_activate_start'),
    url_prefixed(r'^recover/',
                 PasswordResetView.as_view(),
                 name='password_reset'),
    url_prefixed(r'^login/', SigninView.as_view(), name='login'),
    url_prefixed(r'^logout/', SignoutView.as_view(), name='logout'),
    url_prefixed(
        r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/',  #pylint: disable=line-too-long
        PasswordResetConfirmView.as_view(),
        name='password_reset_confirm'),

    # Redirects
    url(
        r'^billing/cart/',
        # XXX override because we want a login_required in front.
        login_required(OrganizationRedirectView.as_view(
            pattern_name='saas_organization_cart'),
                       login_url='registration_register'),
        name='saas_cart'),
    url_authenticated(
        r'^profile/new/',
        # We want to use `get_implicit_create_on_none` override.
        OrganizationCreateView.as_view(),
        name='saas_organization_create'),
    url_authenticated(
        r'^profile/$',
        # We want to use `get_implicit_create_on_none` override.
        OrganizationRedirectView.as_view(
            pattern_name='saas_organization_profile'),
        name='saas_profile'),
    url_authenticated(r'^', include('saas.urls.redirects')),
Ejemplo n.º 15
0
# Copyright (c) 2020, DjaoDjin inc.
# see LICENSE.
"""
API URLs
"""
from rules.urldecorators import include, url
from pages.settings import PATH_RE

from ...api.campaigns import CampaignListAPIView

urlpatterns = [
    # URLs for content editors
    url(r'^content/',
        include('envconnect.urls.api.editors'),
        decorators=['envconnect.decorators.requires_content_manager']),
    # URLs for authenticated readers (upvote, downvote, etc.)
    url(r'^content/', include('answers.urls.api')),
    # URLs for unauthenticated readers (content tree)
    url(r'^content(?P<path>%s)/?' % PATH_RE,
        CampaignListAPIView.as_view(),
        name='api_campgains'),
    url(r'^content/', include('pages.urls.api.readers')),
    # URLs for assessments
    url(r'^', include('envconnect.urls.api.suppliers')),
]
Ejemplo n.º 16
0
def url_prefixed(regex, view, name=None):
    """
    Returns a urlpattern for public pages.
    """
    return url(regex, view, name=name)
Ejemplo n.º 17
0
from django.views.static import serve as static_serve
from pages.settings import PATH_RE, SLUG_RE
from rules.urldecorators import include, url

from ..urlbuilders import url_prefixed, url_authenticated, url_direct
from ..views.redirects import AccountRedirectView, MyTSPRedirectView
from ..views.index import IndexView

if settings.DEBUG:  #pylint: disable=no-member
    from django.views.defaults import page_not_found, server_error
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    import debug_toolbar

    urlpatterns = staticfiles_urlpatterns()
    urlpatterns += [
        url(r'^__debug__/', include(debug_toolbar.urls)),
        url(r'^envconnect%s(?P<path>.*)$' % settings.MEDIA_URL, static_serve,
            {'document_root': settings.MEDIA_ROOT}),
        url(r'^404/$', page_not_found),
        url(r'^500/$', server_error),
    ]
else:
    urlpatterns = [
        url(r'^envconnect/(?P<path>static/.*)$', static_serve,
            {'document_root': settings.HTDOCS}),
        url(r'^(?P<path>static/.*)$', static_serve,
            {'document_root': settings.HTDOCS}),
        url(r'^media/envconnect/(?P<path>.*)$', static_serve,
            {'document_root': settings.MEDIA_ROOT}),
    ]
Ejemplo n.º 18
0
# Copyright (c) 2020, DjaoDjin inc.
# see LICENSE

from django.conf import settings
from django.views.generic import TemplateView
from multitier.urlresolvers import site_patterns
from rules.urldecorators import include, url

if settings.DEBUG:
    from django.views.defaults import server_error
    from ..views.errors import permission_denied, page_not_found
    urlpatterns = site_patterns(
        url(r'^403/$', permission_denied), url(r'^404/$', page_not_found),
        url(r'^500/$', server_error),
        url(r'^register/disabled/$',
            TemplateView.as_view(template_name='accounts/disabled.html')))
else:
    urlpatterns = []

urlpatterns += site_patterns(
    url(r'^', include('djaoapp.urls.api')),
    url(r'^', include('djaoapp.urls.views')),
)
Ejemplo n.º 19
0
# Copyright (c) 2020, DjaoDjin inc.
# see LICENSE.

"""
API URLs
"""
from rules.urldecorators import include, url
from pages.settings import PATH_RE

from ...api.campaigns import (ContentDetailAPIView, ContentSearchAPIView,
  ContentListAPIView)

urlpatterns = [
    # URLs for content editors
    url(r'^content/', include('envconnect.urls.api.editors'),
        decorators=['envconnect.decorators.requires_content_manager']),
    # URLs for authenticated readers (upvote, downvote, etc.)
    url(r'^content/', include('pages.urls.api.readers')),
    # URLs for unauthenticated readers (override 'pages.urls.api.noauth')
    url(r'^content/search',
        ContentSearchAPIView.as_view(), name='api_page_element_search'),
    url(r'content/detail/(?P<path>%s)$' % PATH_RE,
        ContentDetailAPIView.as_view(), name='pages_api_pageelement'),
    url(r'^content/(?P<path>%s)$' % PATH_RE,
        ContentListAPIView.as_view(), name='api_content'),

    # URLs for assessments
    url(r'^', include('envconnect.urls.api.suppliers')),
]
Ejemplo n.º 20
0
                 name='registration_activate_start'),
    url_prefixed(r'^recover/',
                 PasswordResetView.as_view(),
                 name='password_reset'),
    url_prefixed(r'^login/', SigninView.as_view(), name='login'),
    url_prefixed(r'^logout/', SignoutView.as_view(), name='logout'),
    url_prefixed(
        r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/',  #pylint: disable=line-too-long
        PasswordResetConfirmView.as_view(),
        name='password_reset_confirm'),

    # Redirects
    url(
        r'^billing/cart/',
        # XXX override because we want a login_required in front.
        login_required(OrganizationRedirectView.as_view(
            pattern_name='saas_organization_cart'),
                       login_url='registration_register'),
        name='saas_cart'),
    url_authenticated(r'^', include('saas.urls.redirects')),

    # Profiles
    url_authenticated(r'users/roles/accept/$',
                      RoleImplicitGrantAcceptView.as_view(),
                      name='saas_role_implicit_grant_accept'),
    url_authenticated(r'^', include('saas.urls.request')),
    url_active(r'^users/$',
               UserRedirectView.as_view(),
               name='accounts_profile'),
    url_self_provider(r'^users/(?P<user>%s)/roles/$' % USERNAME_PAT,
                      UserAccessiblesView.as_view(),
Ejemplo n.º 21
0
admin.autodiscover()

from . import signals


def url_prefixed(regex, view, name=None, redirects=None):
    """
    Returns a urlpattern for public pages.
    """
    return url(r'^' + regex, view, name=name, redirects=redirects)


# admin doc and panel
try:
    urlpatterns = [
        url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
        url(r'^admin/', admin.site.urls),
    ]
except ImproperlyConfigured:  # Django <= 1.9
    urlpatterns = [
        url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
        url(r'^admin/', include(admin.site.urls)),
    ]

urlpatterns += \
    static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + [
    url(r'^__debug__/', include(debug_toolbar.urls)),
    url(r'^jsi18n/', JavaScriptCatalog.as_view(), name='javascript-catalog'),
    url_prefixed(r'register/$',
        PersonalRegistrationView.as_view(
            success_url=reverse_lazy('home')),
Ejemplo n.º 22
0
handler404 = 'djaoapp.views.errors.page_not_found'

if settings.DEBUG:
    from django.contrib import admin
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    from django.conf.urls.static import static
    import debug_toolbar

    # admin doc and panel
    try:
        # We cannot include admin panels because a `check` for DjangoTemplates
        # will fail when we are using Jinja2 templates.
        admin.autodiscover()
        try:
            urlpatterns = [
                url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
                url(r'^admin/', admin.site.urls),
            ]
        except ImproperlyConfigured:  # Django <= 1.9
            urlpatterns = [
                url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
                url(r'^admin/', include(admin.site.urls)),
            ]
    except LookupError:
        pass

    urlpatterns = staticfiles_urlpatterns() \
        + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    urlpatterns += [
        url(r'^__debug__/', include(debug_toolbar.urls)),
        url(r'^csrf-error/',
Ejemplo n.º 23
0
def url_prefixed(regex, view, name=None, redirects=None):
    """
    Returns a urlpattern for public pages.
    """
    return url(r'^' + regex, view, name=name, redirects=redirects)
Ejemplo n.º 24
0
def url_prefixed(regex, view, name=None):
    """
    Returns a urlpattern for public pages.
    """
    return url(regex, view, name=name, decorators=[inject_edition_tools])
Ejemplo n.º 25
0
    url_prefixed(r'^activate/',
        SigninView.as_view(
            form_class=StartAuthenticationForm,
            template_name='accounts/activate/index.html'),
        name='registration_activate_start'),
    url_prefixed(r'^recover/',
        PasswordResetView.as_view(), name='password_reset'),
    url_prefixed(r'^login/', SigninView.as_view(), name='login'),
    url_prefixed(r'^logout/', SignoutView.as_view(), name='logout'),
    url_prefixed(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/', #pylint: disable=line-too-long
        PasswordResetConfirmView.as_view(), name='password_reset_confirm'),

    # Redirects
    url(r'^billing/cart/',
        # XXX override because we want a login_required in front.
        login_required(OrganizationRedirectView.as_view(
                pattern_name='saas_organization_cart'),
                       login_url='registration_register'),
        name='saas_cart'),
    url_authenticated(r'^', include('saas.urls.redirects')),

    # Profiles
    url_authenticated(r'users/roles/accept/$',
        RoleImplicitGrantAcceptView.as_view(),
        name='saas_role_implicit_grant_accept'),
    url_authenticated(r'^', include('saas.urls.request')),
    url_active(r'^users/$',
        UserRedirectView.as_view(), name='accounts_profile'),
    url_self_provider(r'^users/(?P<user>%s)/roles/$' % USERNAME_PAT,
        UserAccessiblesView.as_view(), name='saas_user_product_list'),
    url_self_provider(r'^users/(?P<user>%s)/password/' % USERNAME_PAT,
        UserPasswordUpdateView.as_view(), name='password_change'),
Ejemplo n.º 26
0
                              SuppliersAssessmentsXLSXView,
                              SuppliersPlanningXLSXView,
                              SuppliersImprovementsXLSXView)
from ...views.detail import DetailView, DetailXLSXView
from ...views.index import AppView
from ...views.improvements import (ImprovementView, ImprovementPDFView,
                                   ImprovementXLSXView)
from ...views.redirects import LastCompletedRedirectView
from ...views.share import ShareView

NON_EMPTY_PATH_RE = r'(/[a-zA-Z0-9\-]+)+'

urlpatterns = [
    # Dashboard
    url(r'app/(?P<organization>%s)/reporting(?P<path>%s)/improvements/download/'
        % (SLUG_RE, PATH_RE),
        SuppliersImprovementsXLSXView.as_view(),
        name='reporting_organization_improvements_download'),
    url(r'app/(?P<organization>%s)/reporting(?P<path>%s)/improve/download/'
        % (SLUG_RE, PATH_RE),
        SuppliersPlanningXLSXView.as_view(),
        name='reporting_organization_improve_download'),
    url(r'app/(?P<organization>%s)/reporting(?P<path>%s)/assess/download/'
        % (SLUG_RE, PATH_RE),
        SuppliersAssessmentsXLSXView.as_view(),
        name='reporting_organization_assess_download'),
    url(r'app/(?P<organization>%s)/reporting(?P<path>%s)/download/'
        % (SLUG_RE, PATH_RE),
        SuppliersSummaryXLSXView.as_view(),
        name='reporting_organization_download'),
    url(r'app/(?P<organization>%s)/reporting(?P<path>%s)/'
        % (SLUG_RE, PATH_RE),