Révision fee32a4e
Ajouté par Josué Kouka il y a plus de 6 ans
mandayejs/mandaye/utils.py | ||
---|---|---|
19 | 19 |
import subprocess |
20 | 20 |
import logging |
21 | 21 |
import multiprocessing |
22 |
import urlparse |
|
22 | 23 |
|
23 | 24 |
from django.conf import settings |
25 |
from django.shortcuts import resolve_url |
|
24 | 26 |
|
25 | 27 |
from Cookie import SimpleCookie |
26 | 28 |
|
... | ... | |
95 | 97 |
|
96 | 98 |
data = {} |
97 | 99 |
data['logout_locator'] = getattr(app_settings, 'SITE_LOGOUT_LOCATOR') |
98 |
data['address'] = request.META.get('HTTP_REFERER') |
|
100 |
data['address'] = request.build_absolute_uri(resolve_url('home')) |
|
101 |
forced_logout_scheme = getattr(settings, 'PHANTOM_JS_LOGOUT_SCHEME') |
|
102 |
if forced_logout_scheme: |
|
103 |
url = urlparse.urlparse(data['address']) |
|
104 |
url = url._replace(scheme=forced_logout_scheme) |
|
105 |
data['address'] = url.geturl() |
|
99 | 106 |
cookies = SimpleCookie(request.META.get('HTTP_COOKIE')) |
100 | 107 |
domain = request.META.get('SERVER_NAME') |
101 | 108 |
|
mandayejs/mandaye/views.py | ||
---|---|---|
21 | 21 |
|
22 | 22 |
from django.contrib.auth.models import User |
23 | 23 |
from django.contrib.auth.decorators import login_required |
24 |
from django.contrib.auth.signals import user_logged_out |
|
24 | 25 |
from django.contrib import messages |
26 |
from django.dispatch import receiver |
|
25 | 27 |
from django.http import HttpResponseRedirect, HttpResponse |
26 | 28 |
from django.shortcuts import render, resolve_url |
27 | 29 |
from django.template import RequestContext |
... | ... | |
50 | 52 |
|
51 | 53 |
def logout(request, *args, **kwargs): |
52 | 54 |
logger.debug("running slo") |
53 |
data = get_logout_info(request) |
|
54 |
logger.debug(data) |
|
55 |
logger.debug("running phantomjs logout") |
|
56 |
result = exec_phantom(data, script='do_logout.js') |
|
57 |
logger.debug(result) |
|
58 | 55 |
response = mellon_logout(request, *args, **kwargs) |
59 | 56 |
logger.debug("deleting cookies") |
60 | 57 |
for cookie in app_settings.SITE_AUTH_COOKIE_KEYS: |
... | ... | |
64 | 61 |
return response |
65 | 62 |
|
66 | 63 |
|
64 |
@receiver(user_logged_out) |
|
65 |
def local_logout(sender, request, user, **kwargs): |
|
66 |
data = get_logout_info(request) |
|
67 |
logger.debug(data) |
|
68 |
result = exec_phantom(data, script='do_logout.js') |
|
69 |
logger.debug(result) |
|
70 |
|
|
71 |
|
|
67 | 72 |
class Panel(TemplateView): |
68 | 73 |
template_name = 'mandaye/panel.html' |
69 | 74 |
|
mandayejs/settings.py | ||
---|---|---|
167 | 167 |
# Default timeout before killing Phantomjs process |
168 | 168 |
PHANTOM_JS_TIMEOUT = 10 |
169 | 169 |
|
170 |
# Scheme to use for phantomjs logout |
|
171 |
PHANTOM_JS_LOGOUT_SCHEME = None # Default is request scheme |
|
172 |
|
|
170 | 173 |
JSONFIELD_ENCODER_CLASS = 'django.core.serializers.json.DjangoJSONEncoder' |
171 | 174 |
|
172 | 175 |
local_settings_file = os.environ.get('MANDAYEJS_SETTINGS_FILE', |
Formats disponibles : Unified diff
log out from local app when slo idp initiated (#19574)