91 lines
3.1 KiB
Python
91 lines
3.1 KiB
Python
|
|
import mandaye
|
|
import re
|
|
|
|
from urlparse import parse_qs
|
|
from BeautifulSoup import BeautifulSoup
|
|
|
|
from mandaye.models import Site, ExtUser, LocalUser
|
|
from mandaye.server import get_response
|
|
from mandaye.response import serve_template
|
|
from mandaye.http import HTTPRequest
|
|
from mandaye.response import _500, _302, _401
|
|
|
|
def biblio_html_login_page(env, values, request, response):
|
|
""" msg: response message body
|
|
env: Mandaye environment
|
|
"""
|
|
response.msg = re.sub("</center></div>",
|
|
"<a href=\"/mandaye/connection\">Connection via mon compte citoyen</a></center></div>",
|
|
response.msg)
|
|
return response
|
|
|
|
def biblio_html(env, values, request, response):
|
|
""" Global html filter the Vincenne library
|
|
This fix the fucking absolute url of the biblio site
|
|
"""
|
|
response.msg = response.msg.replace(env["target"].hostname, env["HTTP_HOST"])
|
|
return response
|
|
|
|
def biblio_associate_login(env, values, request, response):
|
|
""" Use default login page to associate an account on the SSO
|
|
"""
|
|
pattern = re.compile('<div class="inner">.*</center></div>\s+</div></div>',
|
|
re.MULTILINE | re.DOTALL)
|
|
form = serve_template(values.get('template'), **values)
|
|
form = form.encode('utf-8')
|
|
response.msg = re.sub(pattern, form, response.msg)
|
|
return response
|
|
|
|
|
|
class EspaceFamille:
|
|
|
|
def resp_login_page(self, env, values, request, response):
|
|
""" Modify the login_page form
|
|
"""
|
|
if response.msg:
|
|
soup = BeautifulSoup(response.msg)
|
|
div = soup.find('div', {'class': 'bloc-gris'})
|
|
div.append('<a href=\"/mandaye/connection\">Connection via mon compte citoyen</a>')
|
|
response.msg = str(soup)
|
|
return response
|
|
|
|
def resp_associate(self, env, values, request, response):
|
|
"""docstring for resp_associate_login"""
|
|
if response.msg:
|
|
soup = BeautifulSoup(response.msg)
|
|
div = soup.find('div', {'class': 'bloc-model-1'})
|
|
if div:
|
|
form = serve_template(values.get('template'), **values)
|
|
form.encode('utf-8')
|
|
div.replaceWith(form)
|
|
response.msg = str(soup)
|
|
return response
|
|
|
|
|
|
class Duonet:
|
|
|
|
def resp_login_page(self, env, values, request, response):
|
|
"""docstring for resp_login_page"""
|
|
if response.msg:
|
|
soup = BeautifulSoup(response.msg)
|
|
table = soup.find('table', {'id': 'tbConnect'})
|
|
input = table.find('input', type='submit')
|
|
input.append('<a href=\"%s\">Connection via mon compte citoyen</a>' % \
|
|
values['connection_url'])
|
|
response.msg = str(soup)
|
|
return response
|
|
|
|
def resp_associate(self, env, values, request, response):
|
|
"""docstring for resp_associate_login"""
|
|
if response.msg:
|
|
soup = BeautifulSoup(response.msg)
|
|
form = soup.find('form', {'name': 'form1'})
|
|
if form:
|
|
new_form = serve_template(values.get('template'), **values)
|
|
new_form.encode('utf-8')
|
|
form.replaceWith(new_form)
|
|
response.msg = str(soup)
|
|
return response
|
|
|