12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- # coding=utf-8
- from tracim.views.controllers import Controller
- from pyramid.config import Configurator
- from pyramid.response import Response
- from pyramid.exceptions import NotFound
- from pyramid.httpexceptions import HTTPUnauthorized
- from pyramid.httpexceptions import HTTPForbidden
- from pyramid.security import forget
-
-
- class DefaultController(Controller):
-
- @classmethod
- def notfound_view(cls, request):
- request.response.status = 404
- return {}
-
- @classmethod
- def forbidden_view(cls, request):
- if request.authenticated_userid is None:
- response = HTTPUnauthorized()
- response.headers.update(forget(request))
-
- # user is logged in but doesn't have permissions, reject wholesale
- else:
- response = HTTPForbidden()
- return response
-
- @classmethod
- def test_config(cls, request):
- try:
- app_config = request.registry.settings['CFG']
- project = app_config.WEBSITE_TITLE
- except Exception as e:
- return Response(e, content_type='text/plain', status=500)
- return {'project': project}
-
- @classmethod
- def test_admin_page(cls, request):
- try:
- app_config = request.registry.settings['CFG']
- project = 'admin'
- except Exception as e:
- return Response(e, content_type='text/plain', status=500)
- return {'project': project}
-
- @classmethod
- def test_user_page(cls, request):
- try:
- app_config = request.registry.settings['CFG']
- project = 'user'
- except Exception as e:
- return Response(e, content_type='text/plain', status=500)
- return {'project': project}
-
-
- def bind(self, configurator: Configurator):
- configurator.add_static_view('static', 'static', cache_max_age=3600)
- configurator.add_view(
- self.notfound_view,
- renderer='tracim:templates/404.jinja2',
- context=NotFound,
- )
-
- configurator.add_route('test_config', '/')
- configurator.add_view(
- self.test_config,
- route_name='test_config',
- renderer='tracim:templates/mytemplate.jinja2',
- )
-
- configurator.add_route('test_admin', '/test_admin')
- configurator.add_view(
- self.test_admin_page,
- route_name='test_admin',
- renderer='tracim:templates/mytemplate.jinja2',
- permission='admin',
- )
-
- configurator.add_route('test_user', '/test_user')
- configurator.add_view(
- self.test_user_page,
- route_name='test_user',
- renderer='tracim:templates/mytemplate.jinja2',
- permission='user',
- )
- configurator.add_forbidden_view(self.forbidden_view)
|