0001-merge-local-and-idp-logout-9865.patch
mandayejs/applications.py | ||
---|---|---|
180 | 180 |
name='archimed-account-details'), |
181 | 181 |
) |
182 | 182 | |
183 |
SITE_LOGOUT_LOCATOR = '.account_logoff' |
|
184 | ||
185 |
SITE_LOGOUT_SETTINGS = { |
|
186 |
'method': 'POST', |
|
187 |
'url': '/DEFAULT/Ermes/Recherche/logon.svc/logoff', |
|
188 |
'data': {}, |
|
189 |
} |
|
183 | 190 | |
184 | 191 |
# Arpege App Settings |
185 | 192 |
class Arpege(AppSettings): |
... | ... | |
258 | 265 |
class ImuseFamilyMontpellier(Imuse): |
259 | 266 |
SITE_LOGIN_PATH = '/montpellier/extranet/login/usa_index_famille.php' |
260 | 267 | |
268 |
SITE_LOGOUT_LOCATOR = '#MENU_FAMILLE_QUITTER' |
|
269 | ||
270 |
# DOC /montpellier/extranet/includes_extranet/javascript.php?files=../includes/functions.js,../includes_extranet/functions_web.js, |
|
271 |
SITE_LOGOUT_SETTINGS = { |
|
272 |
'method': 'POST', |
|
273 |
'url': '/montpellier/extranet/login/gen_logout.php', |
|
274 |
'data': {'session_end':'false'}, |
|
275 |
} |
mandayejs/mandaye/static/single.logout.js | ||
---|---|---|
1 |
$(function(){ |
|
2 |
if (typeof(mandaye_logout_locator) === 'undefined') |
|
3 |
return false; |
|
4 |
$(mandaye_logout_locator).click(function(){ |
|
5 |
console.log("launching slo"); |
|
6 |
$.get('/_mandaye/logout/', function(){}); |
|
7 |
}); |
|
8 |
}); |
mandayejs/mandaye/templates/mandaye/panel.html | ||
---|---|---|
3 | 3 |
<script type="text/javascript"> |
4 | 4 |
var mandaye_redirect_url = '{{force_redirect_url}}'; |
5 | 5 |
var mandaye_redirect_locator = '{{force_redirect_locator}}'; |
6 |
var mandaye_logout_locator = '{{logout_locator}}'; |
|
6 | 7 |
</script> |
7 | 8 | |
8 | 9 |
<script type="text/javascript" src="{% static 'force.redirect.js' %}"></script> |
10 |
<script type="text/javascript" src="{% static 'single.logout.js' %}"></script> |
|
9 | 11 | |
10 | 12 |
{% if site_scripts %} |
11 | 13 |
{%for script in site_scripts%} |
... | ... | |
23 | 25 |
{% if user.is_authenticated %} |
24 | 26 |
<div id="mandaye-username"><a href="{{idp_url}}/accounts">{{ user.get_full_name }}</a></div> |
25 | 27 |
<div id="mandaye-advances"><a href="{{wcs_url}}">{% trans 'advances' %}</a></div> |
26 |
<div id="mandaye-logon-url"><a href="{% url 'mellon_logout' %}">{% trans 'logout' %}</a></div>
|
|
28 |
<div id="mandaye-logon-url"><a href="{% url 'logout' %}">{% trans 'logout' %}</a></div> |
|
27 | 29 |
{% if is_linked %} |
28 | 30 |
<div id="mandaye-association-url"><a href="{% url 'dissociate' %}">{% trans 'dissociate' %}</a></div> |
29 | 31 |
{% else %} |
mandayejs/mandaye/views.py | ||
---|---|---|
16 | 16 | |
17 | 17 |
from __future__ import absolute_import |
18 | 18 | |
19 |
import os |
|
20 |
import json |
|
21 | 19 |
import logging |
22 |
import urlparse |
|
23 |
import urllib |
|
24 | 20 | |
25 | 21 |
from django.conf import settings |
26 | 22 |
from django.contrib.auth import views as auth_views |
... | ... | |
44 | 40 |
from mandayejs.mandaye.utils import exec_phantom, cookie_builder, get_login_info |
45 | 41 |
from mandayejs.applications import get_app_settings |
46 | 42 | |
43 |
from mellon.views import logout as mellon_logout |
|
44 | ||
45 |
import requests |
|
46 | ||
47 | 47 |
app_settings = get_app_settings() |
48 | 48 | |
49 | 49 |
logger = logging.getLogger(__name__) |
50 | 50 | |
51 |
def login(request, *args, **kwargs): |
|
52 |
return auth_views.login(request, *args, **kwargs) |
|
53 | ||
54 | 51 |
def logout(request, *args, **kwargs): |
55 |
auth_logout(request) |
|
56 |
return HttpResponseRedirect('/') |
|
52 |
logger.debug("running slo") |
|
53 |
response = mellon_logout(request, *args, **kwargs) |
|
54 |
for cookie in app_settings.SITE_AUTH_COOKIE_KEYS: |
|
55 |
response.delete_cookie(cookie) |
|
56 |
logout_settings = getattr(app_settings, 'SITE_LOGOUT_SETTINGS') |
|
57 |
if logout_settings: |
|
58 |
logout_settings['verify'] = False |
|
59 |
logout_settings['url'] = request.build_absolute_uri(logout_settings['url']) |
|
60 |
logger.debug(logout_settings) |
|
61 |
req_response = requests.request(**logout_settings) |
|
62 |
logger.debug('application logout response {}'.format(req_response.status_code)) |
|
63 |
return response |
|
57 | 64 | |
58 | 65 | |
59 | 66 |
class Panel(TemplateView): |
... | ... | |
67 | 74 |
'SITE_FORCE_REDIRECT_URL', '') |
68 | 75 |
context['force_redirect_locator'] = getattr(app_settings, |
69 | 76 |
'SITE_FORCE_REDIRECT_LOCATOR', '') |
77 |
context['logout_locator'] = getattr(app_settings, |
|
78 |
'SITE_LOGOUT_LOCATOR','') |
|
70 | 79 |
context['is_linked'] = self.is_account_linked() |
71 | 80 |
return context |
72 | 81 |
mandayejs/urls.py | ||
---|---|---|
33 | 33 |
) |
34 | 34 | |
35 | 35 |
if 'mellon' in settings.INSTALLED_APPS: |
36 |
urlpatterns += patterns('', url(r'^_mandaye/accounts/mellon/', include('mellon.urls'))) |
|
36 |
urlpatterns += patterns('', |
|
37 |
url(r'^_mandaye/logout/$', 'mandayejs.mandaye.views.logout', name='logout'), |
|
38 |
url(r'^_mandaye/accounts/mellon/', include('mellon.urls')), |
|
39 |
) |
|
37 | 40 | |
38 |
- |