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])
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])
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])
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])
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)
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])
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 ])
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])
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])
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])
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])
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]),
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',
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')),
# 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')), ]
def url_prefixed(regex, view, name=None): """ Returns a urlpattern for public pages. """ return url(regex, view, name=name)
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}), ]
# 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')), )
# 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')), ]
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(),
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')),
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/',
def url_prefixed(regex, view, name=None, redirects=None): """ Returns a urlpattern for public pages. """ return url(r'^' + regex, view, name=name, redirects=redirects)
def url_prefixed(regex, view, name=None): """ Returns a urlpattern for public pages. """ return url(regex, view, name=name, decorators=[inject_edition_tools])
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'),
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),