12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
-
- import json
- import time
-
- from pyramid.config import Configurator
- from pyramid.authentication import BasicAuthAuthenticationPolicy
- from hapic.ext.pyramid import PyramidContext
-
- from tracim.extensions import hapic
- from tracim.config import CFG
- from tracim.lib.utils.request import TracimRequest
- from tracim.lib.utils.authentification import basic_auth_check_credentials
- from tracim.lib.utils.authentification import BASIC_AUTH_WEBUI_REALM
- from tracim.lib.utils.authorization import AcceptAllAuthorizationPolicy
- from tracim.lib.utils.authorization import TRACIM_DEFAULT_PERM
- from tracim.lib.webdav import WebdavAppFactory
- from tracim.views import BASE_API_V2
- from tracim.views.core_api.session_controller import SessionController
- from tracim.views.errors import ErrorSchema
- from tracim.lib.utils.cors import add_cors_support
-
-
- def web(global_config, **local_settings):
- """ This function returns a Pyramid WSGI application.
- """
- settings = global_config
- settings.update(local_settings)
-
- app_config = CFG(settings)
- app_config.configure_filedepot()
- settings['CFG'] = app_config
- configurator = Configurator(settings=settings, autocommit=True)
-
- authn_policy = BasicAuthAuthenticationPolicy(
- basic_auth_check_credentials,
- realm=BASIC_AUTH_WEBUI_REALM,
- )
- configurator.include(add_cors_support)
-
- configurator.add_cors_preflight_handler()
-
- configurator.set_authorization_policy(AcceptAllAuthorizationPolicy())
- configurator.set_authentication_policy(authn_policy)
-
-
-
- configurator.set_default_permission(TRACIM_DEFAULT_PERM)
-
- configurator.set_request_factory(TracimRequest)
-
- configurator.include('pyramid_jinja2')
-
- configurator.include('.models')
-
- hapic.set_context(
- PyramidContext(
- configurator=configurator,
- default_error_builder=ErrorSchema()
- )
- )
-
- session_api = SessionController()
- configurator.include(session_api.bind, route_prefix=BASE_API_V2)
- hapic.add_documentation_view(
- '/api/v2/doc',
- 'Tracim v2 API',
- 'API of Tracim v2',
- )
- return configurator.make_wsgi_app()
-
-
- def webdav(global_config, **local_settings):
- settings = global_config
- settings.update(local_settings)
- app_factory = WebdavAppFactory(
- tracim_config_file_path=settings['__file__'],
- )
- return app_factory.get_wsgi_app()
|