2015-06-10 11:56:10 +00:00
|
|
|
import pkg_resources
|
2015-06-12 12:53:37 +00:00
|
|
|
from pyramid.response import FileResponse, Response
|
2015-06-10 11:56:10 +00:00
|
|
|
from pyramid.view import view_config
|
2015-06-12 12:53:37 +00:00
|
|
|
from webob.exc import HTTPForbidden, HTTPFound
|
2015-06-10 11:56:10 +00:00
|
|
|
|
|
|
|
|
|
|
|
@view_config(route_name='home')
|
2015-06-12 12:53:37 +00:00
|
|
|
@view_config(request_method='GET', route_name='login')
|
2015-06-10 11:56:10 +00:00
|
|
|
def my_view(request):
|
|
|
|
package, resource = 'soter:static/index.html'.split(':', 1)
|
|
|
|
file = pkg_resources.resource_filename(package, resource)
|
2015-06-12 12:53:37 +00:00
|
|
|
return FileResponse(file, request=request)
|
|
|
|
|
|
|
|
|
|
|
|
@view_config(context=HTTPForbidden)
|
|
|
|
def forbidden(request):
|
|
|
|
if 'X-Requested-With' in request.headers and request.headers['X-Requested-With'] == 'XMLHttpRequest':
|
|
|
|
response = Response("Forbidden")
|
|
|
|
response.status_int = 401
|
|
|
|
return response
|
|
|
|
else:
|
|
|
|
return HTTPFound(location=request.route_url('login', _query={'came_from': request.path_qs}))
|
|
|
|
|
|
|
|
|
|
|
|
@view_config(route_name='favicon')
|
|
|
|
def favicon(request):
|
|
|
|
package, resource = 'soter:static/favicon.ico'.split(':', 1)
|
|
|
|
icon = pkg_resources.resource_filename(package, resource)
|
|
|
|
return FileResponse(icon, request=request)
|
|
|
|
|
|
|
|
|