Maintenance électrique le 12 août, nos services, et y compris Gitlab, seront fortement impactés autour de cette date. Retour à un état normal prévu dans le milieu de la semaine prochaine.

Commit 23de01dd authored by Antoine Bernard's avatar Antoine Bernard

[reset_pw] escape les chaînes à passer à LDAP

parent 922f7985
......@@ -28,6 +28,22 @@ from django.utils.translation import ugettext_lazy as _
from ldap import FILTER_ERROR
from lc_ldap import shortcuts
#http://docs.oracle.com/javase/jndi/tutorial/beyond/names/syntax.html
_ldap_escape = {
'(' : r'\(',
')' : r'\)',
'"' : r'\\\"',
"'" : r"\'",
',' : r'\\\,',
'+' : r'\\\+',
'<' : r'\\\<',
'>' : r'\\\>',
'\\' : r'\\\\',
}
def escape_ldap(s):
return "".join(_ldap_escape.get(c, c) for c in str(s))
class EmailForm(forms.Form):
"""
Formulaire de demande d'une adresse e-mail.
......@@ -43,7 +59,7 @@ class EmailForm(forms.Form):
Renvoie l'objet LDAP à partir de l'e-mail
"""
try:
email = self.cleaned_data['email']
email = escape_ldap(self.cleaned_data['email'])
conn = shortcuts.lc_ldap_readonly()
# On cherches les objets LDAP tels que :
# * le mail est dans le champ `mail` ou `mailExt`
......@@ -77,7 +93,7 @@ class UsernameForm(forms.Form):
Renvoie l'objet LDAP à partir du login
"""
try:
login = self.cleaned_data['username']
login = escape_ldap(self.cleaned_data['username'])
conn = shortcuts.lc_ldap_readonly()
# On cherches les objets LDAP tels que :
# * le login est dans le champ `uid`
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment