toolbar: test if the user is locally connected

Closes #5444
This commit is contained in:
Jérôme Schneider 2014-11-10 15:27:14 +01:00
parent 380ee528a5
commit c22607b630
4 changed files with 27 additions and 2 deletions

View File

@ -1,6 +1,9 @@
import json
from urlparse import parse_qs
from mandaye.http import HTTPRequest, HTTPHeader
from mandaye.server import get_response
from mandaye.template import serve_template
from mandaye.response import _302
@ -33,3 +36,16 @@ class ArcopoleFilter:
cookie['path'] = '/studio'
return _302(values['next_url'], req_cookies)
@staticmethod
def is_user_locally_logged_in(env, request, response):
if "/studio/clients" in env['HTTP_REFERER']:
return True
request = HTTPRequest(request.cookies, HTTPHeader())
response = get_response(env, request,
"/studio/orion/userinfo?token=__session_token")
if response.code == 500:
return False
auth = json.loads(response.msg)
if auth['uid'] == "anonymous":
return False
return True

View File

@ -42,6 +42,8 @@ urls = {
'login_url': '/mandaye/login'
}
is_user_locally_logged_in = ArcopoleFilter.is_user_locally_logged_in
mapping = [
{
'path': r'/',
@ -138,5 +140,8 @@ mapping = [
}
}
},
{
'path': r'/studio/mandaye/toolbar',
'response': {'filter': MandayeFilter.toolbar}
},
]

View File

@ -9,7 +9,7 @@ function mandaye_disassociate_logout(url, account, id)
(function( $ ) {
$(function() {
$.get("/mandaye/toolbar", function(data) {
$.get("/studio/mandaye/toolbar", function(data) {
$("body").prepend(data);
});
$("#logout_link").off('click').on("click", function() {

View File

@ -17,6 +17,10 @@
<a href="javascript:mandaye_disassociate_logout('${urls['disassociate_url']}', '${account['sp_login']}', ${account['id']})" title="Cliquer ici pour supprimer le lien entre ce compte et votre compte citoyen.">Délier mon compte</a>
</li>
% endif
% elif is_user_locally_logged_in:
<li>
<a href="${urls['connection_url']}" title="Cliquer ici pour lier votre compte citoyen avec ${site_name}">Lier mon compte</a>
</li>
% else:
<li>
<a href="/mandaye/sso" title="Cliquer ici pour vous connecter sur ${site_name}">Se connecter avec son compte agent</a>