@view_config(context='pyramid.exceptions.Forbidden',
renderer='login.tmpl')
@view_config(context='rnews:resources.Auth', name='login', renderer='login.tmpl')
def logi(request):
if 'X-Forwarded-Proto' not in request.headers:
u = urlparse.urlparse(request.url)
url = urlparse.urlunparse(('https', u.hostname or request.host) +
u[2:])
return HTTPFound(location=url)
login_url = resource_url(request.context, request, 'login')
referrer = request.url
if referrer == login_url:
referrer = '/' # never use the login form itself as came_from
came_from = request.params.get('came_from', referrer)
message = ''
login = ''
password = ''
if 'form.submitted' in request.params:
print "# DEBUG"
login = request.params['login']
password = request.params['password']
response = authenticate(login, password, request)
if response['status'] == 'OK':
headers = remember(request, login)
return HTTPFound(location=came_from, headers=headers)
message = response['error']['strerror']
print "# debug: ", came_from
return dict(
message=message,
url=request.url,
came_from=came_from,
login=login,
password=password,
)