22 lines
887 B
Python
22 lines
887 B
Python
from django.core.exceptions import ImproperlyConfigured
|
|
from django.http import HttpResponseRedirect
|
|
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.contrib.auth import REDIRECT_FIELD_NAME
|
|
|
|
from . import app_settings, utils
|
|
|
|
@login_required
|
|
def ltpa(request):
|
|
'''Ask for authentication then generate a cookie'''
|
|
next_url = request.REQUEST[REDIRECT_FIELD_NAME]
|
|
response = HttpResponseRedirect(next_url)
|
|
if app_settings.TOKEN_SECRET is None:
|
|
raise ImproperlyConfigured('missing TOKEN_SECRET')
|
|
secret = utils.decode_secret(app_settings.TOKEN_SECRET)
|
|
token = utils.generate_domino_ltpa_token(request.user.username, secret)
|
|
domain = app_settings.COOKIE_DOMAIN or request.META['HTTP_HOST']
|
|
response.set_cookie(app_settings.COOKIE_NAME, token, domain=domain,
|
|
httponly=app_settings.COOKIE_HTTP_ONLY)
|
|
return response
|