From 59ecc0d7faedcf1ed436d112aa3e01db19252ef2 Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Thu, 26 Aug 2021 20:16:22 +0200 Subject: [PATCH] Add authz proxy authorization support Add useAuthzProxyControl parameter to combine with useUserCredentials to also using authz proxy authorization. --- doc/conf/srv-ldap.docbook | 14 +++ src/includes/class/class.LSldap.php | 35 +++++++ src/includes/class/class.LSsession.php | 64 ++++++++---- src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo | Bin 75101 -> 75343 bytes src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po | 92 ++++++++++-------- src/lang/ldapsaisie.pot | 88 +++++++++-------- 6 files changed, 190 insertions(+), 103 deletions(-) diff --git a/doc/conf/srv-ldap.docbook b/doc/conf/srv-ldap.docbook index 21bc2740..ec4a83be 100644 --- a/doc/conf/srv-ldap.docbook +++ b/doc/conf/srv-ldap.docbook @@ -17,6 +17,7 @@ serveur LDAP. // Définition des paramètres de connexion à l'annuaire ), 'useUserCredentials' => [boolean], + 'useAuthzProxyControl' => [boolean], 'LSauth' => array ( 'method' => [LSauth method], 'api_method' => [LSauth method], @@ -95,6 +96,19 @@ serveur LDAP. + + useAuthzProxyControl + + Booléen définissant si, lorsqu'on utilise les identifiants de l'utilisateur pour + se connecter à l'annuaire, il faut utiliser une authentification via proxy + authorization. Dans ce cas, les identifiants de l'utilisateur ne seront pas, à + proprement parlé, utilisés pour se connecter à l'annuaire, mais une demande de + proxy authorization en tant que l'utilisateur connecté sera faites à l'aide des + identifiants de l'application. Ce mode nécessite une configuration particulière au niveau + de l'annuaire pour autoriser le compte de l'application à faire des demandes de + proxy authorization en tant que les autres utilisateurs de l'annuaire. + + LSprofiles diff --git a/src/includes/class/class.LSldap.php b/src/includes/class/class.LSldap.php index 0e751cb1..44af0772 100644 --- a/src/includes/class/class.LSldap.php +++ b/src/includes/class/class.LSldap.php @@ -104,6 +104,38 @@ class LSldap extends LSlog_staticLoggerClass { return true; } + /** + * Set authz proxy control + * + * @author Benjamin Renard + * + * @param[in] $dn string Bind DN + * + * @retval boolean true if authz proxy controle is set, false otherwise + */ + public static function setAuthzProxyControl($dn) { + if (!self :: $cnx) { + self :: connect(); + } + $result = self :: $cnx -> setOption( + 'LDAP_OPT_SERVER_CONTROLS', + array ( + array( + 'oid' => '2.16.840.1.113730.3.4.18', + 'value' => "dn:$dn", + 'iscritical' => true + ) + ) + ); + // Also check user exists to validate the connection with + // authz proxy control. + if ($result !== True || !self :: exists($dn)) { + LSerror :: addErrorCode('LSldap_09'); + return False; + } + return True; + } + /** * Déconnection * @@ -602,3 +634,6 @@ LSerror :: defineError('LSldap_07', LSerror :: defineError('LSldap_08', ___("LSldap: LDAP server base DN not configured.") ); +LSerror :: defineError('LSldap_09', + ___("LSldap: Fail to set authz proxy option on LDAP server connection.") +); diff --git a/src/includes/class/class.LSsession.php b/src/includes/class/class.LSsession.php index 61d9c9bc..e6ffda90 100644 --- a/src/includes/class/class.LSsession.php +++ b/src/includes/class/class.LSsession.php @@ -817,20 +817,33 @@ class LSsession { self :: $LSuserObjectType = $LSuserObject -> getType(); self :: $dn = $LSuserObject->getValue('dn'); self :: $rdn = $LSuserObject->getValue('rdn'); - if (isset(self :: $ldapServer['useUserCredentials']) && self :: $ldapServer['useUserCredentials']) { - self :: $userLDAPcreds = LSauth :: getLDAPcredentials($LSuserObject); - if (!is_array(self :: $userLDAPcreds)) { - LSerror :: addErrorCode('LSsession_14'); - self :: $userLDAPcreds = false; - return; + if ( + isset(self :: $ldapServer['useUserCredentials']) && + self :: $ldapServer['useUserCredentials'] + ) { + if ( + isset(self :: $ldapServer['useAuthzProxyControl']) && + self :: $ldapServer['useAuthzProxyControl'] + ) { + if (!LSldap :: setAuthzProxyControl(self :: $dn)) { + return; + } } - if (!LSldap :: reconnectAs( - self :: $userLDAPcreds['dn'], - self :: $userLDAPcreds['pwd'], - self :: $ldapServer['ldap_config'] - )) { - LSerror :: addErrorCode('LSsession_15'); - return; + else { + self :: $userLDAPcreds = LSauth :: getLDAPcredentials($LSuserObject); + if (!is_array(self :: $userLDAPcreds)) { + LSerror :: addErrorCode('LSsession_14'); + self :: $userLDAPcreds = false; + return; + } + if (!LSldap :: reconnectAs( + self :: $userLDAPcreds['dn'], + self :: $userLDAPcreds['pwd'], + self :: $ldapServer['ldap_config'] + )) { + LSerror :: addErrorCode('LSsession_15'); + return; + } } } self :: loadLSprofiles(); @@ -1295,11 +1308,26 @@ class LSsession { self :: $dn && isset(self :: $ldapServer['useUserCredentials']) && self :: $ldapServer['useUserCredentials'] ) { - LSldap :: reconnectAs( - self :: $userLDAPcreds['dn'], - self :: $userLDAPcreds['pwd'], - self :: $ldapServer['ldap_config'] - ); + if ( + isset(self :: $ldapServer['useAuthzProxyControl']) && + self :: $ldapServer['useAuthzProxyControl'] + ) { + // Firstly connect using main config and after, set authz proxy control + if ( + !LSldap :: connect(self :: $ldapServer['ldap_config']) || + !LSldap :: setAuthzProxyControl(self :: $dn) + ) { + LSerror :: addErrorCode('LSsession_15'); + return; + } + } + else { + LSldap :: reconnectAs( + self :: $userLDAPcreds['dn'], + self :: $userLDAPcreds['pwd'], + self :: $ldapServer['ldap_config'] + ); + } } else { LSldap :: connect(self :: $ldapServer['ldap_config']); diff --git a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo index 9e734450c0c102f5ecde8a0b8ca2f43e36404c8b..1323a993596c27bf1edbf9ad2cde645f6f62cc02 100644 GIT binary patch delta 12706 zcmZA72YgT0|Htw3MTi+e>=B7rAz~+DBoTYZUNw@~GenE>Rcg-~Rn*U@*`jvsRuwPuq*RVW3z}gsG(U`K>4U6J5EQjk+`!8T2460;I z5v+(o*aGty<25NZFrzS*9ka1Cp258M55{B8%EmOn*2sZo397@Jk^h;K{K$!(D#k=$ zE=jI$7N25QjHzl&N3L%c5$MDZQ74G0W=wW$imR~`=0{WAm`qRrGh%V{$I=*r z6|p$B!Q40k)qWZ_!nw#L%oPmBTv6Nz*Eh8ZVzD&_;(Tm{Yp@eO!8q-YHipnFzyv&n znK5?_J7PsJh`c^#z%Hnc_P|`&$K|6@9UG5c4e>MrKU{%%a4l+R_hD1KjOtj)7(0hi zsJU*3*)R=#Cv^EV%tHM_SHBX~p^s7L`4lz62V)q2H9YMqzQY{kx3B>Ijk=@2n#KfR zDbyWRN8M3v%#W>59q8vwMRjZx>VlI|?H8dI=LXbqmuoWqYVd#xT_{5>Ye6hb9*L!} z8EQ4BVRPJ$^)Nk^8nH%5m3afT=sv{y=&3^;HbkwhwWyKag<3lYyac+VqgV(}VOG42 zVfdG`aI7)K$m6jH_Cy^w4mFgMQIFvQWYEkPsQu4T9ZAmuYKx6gYiBvuMehxQh6H8e z?T%E`9e;*;tgaz_Fu7^1J8q3Sa1lTBSY5?dSdp`a-~`n1Ymg_+oWc^Ao`XwbX>5Wm zu#BGnB?LO)FzOEPq7KMTw>3nSFeAob28>4yWdqclc5r!r)M9=cGvYkd;$4iIqF+(% zpQA=Bpn=wmm*FJPV-$u(u>xulHb-5sE9S$VsKq)8GvY*4M`oZpx)ilY*I;qniJH<& z&PNzbo|EC06|oT4H;DvVY=cm%embV$YHW{Ld3$KclaO_4)}rp<7t|0xKwYR*V|(Gc zsPm+tI^=crvr#v)1w-)|dbQZ@5@?nFgCns66EqOdVt0&X9OVjBhtoAPW+;xwG<<|= z-;YP59bUpdSfPb6gYg6GhyE>D@i+{1e5F>LPCHhyg0wmV5^V=kuoL+;RL5$t(m01% zgj#IBVKm0Hv5P4U^;jNsc}`BIMb-rqa2;x-?xG&k5PDe$ySL+ZcmT|DDq`^`48u^y zy*4&N4b>DZgB$Q7UO*kUse>{7@gC{|T{_weyoXxEr%@MrlKf0-fjq z_QWck?Hg(#7W5eN6)vOxS{HsVptq}C)p-~e)|2UhG%@S38~X8sCME^dp+i^)pP+6a zsypuh?CJDwBw#en6V#$>+JoN*xD_>|wdj?GegXkbh3*tJ|$R5IqT2AS>Y6KNkFdCCkCtB+AGj4yDUiL)M7{~rz7>?^uPtSQ| z7R-IrB5d5-n6bD5wFrahJ*P5rQ16Ame0q7b`tp9)4(AW39+qQerec58qWb}v1ry1H zs{=Dp?M|acCdU9CWqcD^9_BczeF%?+^rA-U3UY|aGKibz`ep<{D1L&v;Aw1x@pM~v zGy^rKH&An3cZfaVGJJ#lIX1)2L+u(`kFn(0I9Uuf!$_Qp^>GglLk~Z+o=h5nhUy%u zLE>=xu3vhiER?HXx>m8lyWQPP025)k&0y)b*Ed9 z!8A9J={6m?&ICM)I&YJ4TKatKdI>ra1iVAp@uvSE8!}vszJC&kU&ND$@ckAbk0C^=m=_VPhm%V zf?=3A#r}GJ3j@fT?1FHjvhi#hNjsslGsCw_rCF6Rt8bp@~hc`Zh?YVP`@9;d|^jDMikM8GV2Tqvr;n8*5^7)W}T7+PDri62H!3 z{Id}}ph83S5_Q6$*}R>w3~GqOQFmAYwLc1V!ltMj=!?3eQK*iON3~mm>d>cH0uN#y zyy<*4oALLfBIg`?qP(aBN}(Be4-`Dn?-y^rBY%cC3$oVppv8p4~qmr;s1R za+o;RzUaIdNq$yAU4r!U?B8|`uon3^jKKrg2%lmoCd{`lm_FE+{6o~^_W;$AG7ET3 zV=`949jG;M3uCd)`}T&$VQF&jWP(xzo3SKb!o2tr^I+bEc5Q@X9r7Be4vs?2;V#q& z9zu=GG3P1FM}7{q+V7yI=&{RRSiL6G2X<}(QFmAk6R{KO&Nrf-_rEb5i!8E#0X1^= z#zNFj#Im>obwgicJA8z#u*qWkb-WZc;-6!zp8xbq?3^cH2s_$gMI4Dy_z7z6enBm| zzz=P^2#g?acQ*nlj;MS*s;8T< z0v^ObypQ=X{W9C3LZ~-iX;eqTQFEP$I=&0)f`joY&+{;>O5SRPeLN?xVEkjKSVBc7 zyofch(n>p515tB78(ZKG3`W0??4N2So%K+QH5r3&B*x=x)D4`)Vwi3fqlqEd8sA;z zwTtHx6-B9dgbgtFYI_HrQP1fhOvYu{88fW0-|^j1^&7Ao2ClUqmqSqIZUIITVcA|!EABN!(ERDZoFb1u+`>SDp@>r~e8?ZLsMomqbkNF2Ej6-$c zeH?%run!ja#NOa|tV!-YPN1R9w81W__E?s@JLbmem=Tv@CR~FW>P;>`gqg`tU=jQl z{qZ3d$LAP|MK|&{0LG)9jssYd>zi*0d<`+18g8e zHhafYQ6sSgv*JqB6m3F{%udXK=P&_(LY=qNcKa$%MXw%{tpqyoG3tO9SQWGFuzv@{ zqef&3w!!ysAl}6G*k-4#-+)cXJ)c>dVI=t?td7S~9Z0v!uDNEr82_eJETy6=-o_5t zaJPN6uD~+nXHcvBDQXC#_t+OzG7cc0gSx{P*bw9Q+T*9A>i3}5)=SjWmTjNC;avL| zf4!*+Qjr_WJL519d0W&F_rnG_6bs^RxBon9@%@Hs_Y5_X>Gsa?~O^goW`Z)O+G3YITPlu=Nd4k6SVZ;}jf;>#-+> zer|uOPC`wE_Y6S*L7^|~Y7WODt;9@vuG737ke=;fVbUXAkN`m5&<3 zxy(`=f!+UY7v)8Ki@e@3{^G?0sKwgwxP6Lt;v3|}PUv?I^FNj#mWs=mhy}m4pHKs_ zHTeN-g}F}JHIR&2WE-$PKE@VU^ORl0Gcb<)Hfr^kJ8h5aip9xSqw0_1J+5z_5Y)rp z&hU>1Sm7J{jkgxNl7Ek7F#4>03X-rc`ATerH?a~%p0gK9!v5r+U|Gy}p6T%LR3Mi! ztG?ymm2mh4=D!m`^hJgb=i?B3jKi?kB@V>zur}7bZ0~F|>Vo^RJ>J7aZ1|mZ3918s z;QQF=d%O7VV@L8fSNOexo31ea-3e-3wV%sNFoygLw!myZ*b8()4e54_#=o!#Mqaa1 z(;QX594q5@SPOGpxAjd?Q#A=|;7QbV{D1Ts)0-gSN84}%7A3!l!_n_2>nNN_{wI#d zF+bZyXMV9G_a=6u{t|YVF4zP-^WE*?WP@>GdP&MruSF7$TpzXfVpKaP#-l^ z$52BV`kP(VvvCx;|84u-KLMwZ@4=c__m2IB9ETIgS7To+^Sk{}nTH+7pP=f!t?n|< z1bZ&&+Oos*#IDlzSe<+iHpU02xvKS#eJVC$ck<#-?NE-# zDDv-7cbey!9hoH51=qR!9I7MvpW6`}iw)J&tppm%XPAbuFYGIGC#oYc|FQ4zVc47e zE>6X^FYT}0Yq*-cit+g7^gGn*Pw;qrU%}&1bA1?foeJr!!_nJ>iroa7Yrpg!Uk7@l zp4+Qf4u@y(_}=*|urv8N%!n2IJie!;8dfE5i(xn&v*H$1yZx9Azrt|*2J_$xKabZp zceyg!3)R3@?C6bJbh}-iJ(I2PhB4G{L0#}JHpEbWkMI330Q-<{a(TYYb|gBYICNcR{#_V>2Qf3= zL*4mPOoyKA9^ap4888cZX4DAf@e<@C2*ykph3PRCgE0Zs^Awk-qK0mst6zr!+70iyMb9j8eQ>tNU@=d47GDFy2CqtY03xCW<;sV@>KSp&!>bg9+j>4IAMu zY>MfE?2xxW4f$4FhQFhRa7JE_@5|;e#*$ag=kfh_fZ?d~eTfawFTZ`>n_+$Oxu~hT zj9$%2_5vQ?KRDLI8swX?4&K3D7|wr*io?06=l?vaqmhN|(2v53A5CLJfV16869{ zs0-9Y4Q+kYi>g0rwGT$E>KUjxKZf=2E(T-eFq^kQ<%^LK@S42@y3@<36W&Cv?%S?D zw4}%PCs!nDe-rfJ6@CoE)0794D(U#ac7*yJHZ*?3T8JN04iKxOp|l%^%gA+o-=@|3 zZz^iCa}x1BN(OT6R_6}-8uO*&q{{bX{Dj>o?@}&Ov}t|Jq1{s4Lb*&~eVgwo6N%rW zXlk?#^HSN7!g~APHiKxp%UQT4mQLwi-hr~=f33JM`)W~ExV9Rd0NTd5ya)LQ#Ft(E z>d?Bh(RP^PJ;~0}RNTY_$~xCLgKLx%H&B<`wX3A2u zrCEGG&+>B?yz z>6h#)iQ2YO&XfOwdQ!9%r-ajZ z5|_Zjlt1mcd>^NY#CqJ8QMyp{oAdQ8hNSgt6;+6NuuMVDvkSfX2(;zLu2fW{WG1eS z+L9=TiQmB9l&xtq|B&k)f1gsB(vH%E(wlm1de3V+L0+A*nfN;8 zUliZ^`v`(v;}|;fz{ORmAMRqlxP5<$S7m=0%B$@X`*)Mnrf4ebBER;1+Z)bs97#=i zcibQ311Letwf;wt@b%@}zID#DsVPRI1+MO;s}rYGsQ=mR%R;*Y)V)pVNO`p_a=|~??c{`uQQIoYRN~nbUgy5guldwP(&nKW{J$-QHkB#b zp5ecdPX^z{N0vEhL;ckK|KGOFHR|cA0&#(hC$ldnF`tX(b1a1KQ0Rj>hT2wPEcS7E zfBf3TZE+T*FXgEkvpwPa!~8_WyOc+isZ>_h8QCV17o&Vn97bJt;@7vol~DISRA>K4 z;=Jxy?W#`6ND;R-=AhK6)h>RwqIQ^+<6pNy0|`mL*dUp z-=F0FxO(v?bw5(>Q*KZOxqW+_VVIG6ZQoH+eG&Ix<5eYIp>j30rc~rkZu%P8AGOHK zyZkGRq|E?)jH_`cWh1e+Y0fq__5IvI-3cPTddz;xZSn%X@hAC_vX6=xlvmq+7muML zgR9I=-Dt{3l%~{`!U}H4n-UkKt_JxiOi$h%BPmyjJL3pSHOdt7Mig%jlDq_)P}`@J zjGQ2kFS9@5$mbBgNxP$z29zAs-JtF^Wj19Kbp~VE3oTss^ zJGiEv|M70eZ|F~H<#w*c{FEs!55jm#nrpA>b(Bk#-<7!S3HGE-pleqJdr-=8bLB7> z``>!iSo8k@*a_#SHW;{w_ak^hFDU=iv% zVFLL<%5!3E>8T%!-m|V^3CYitrR0yX5oI88NlHWFBa}hJl{he&cnz_(Hz{3+zr{6_ zDB_~D32^(VGFgd#crCBPez)26|GwKf;Z?OW8x6lEu1Sd|ZiWGF-z$FQ*#0Dq-8uRZ zA15wL`lLikOl#--9+Y0w88l9gxFh9d+$}VsPa{e#=*!gGZ)L_3apMlV+@8=Fs3-xz;f6HwSO9h;`bPa z*Dwfu6O1WjjN63Sf=R%1cGST#I2nWSYpj6>unziF^c-liP#x}#{Lf6_KLNN2bKymd#A{dr z^ClS+h;gX)HLxDmM^0^KV=NxRLR{b6r;v_*Rg5Ws4Y3(^#J0EwGqgY17>cG5X5vK5 zjfYVq_7eu-Gt7yFs@jeg!Gh!wPF@k!v8w0}rci@|H?~2ZiRpwI+F{rbXQDcG9`y`w zqn@>YHSQM6qvwQ9UIX(`-^8hJi|SBU)OmWLMtD>;#$OF5ITatEKlvgof~!$?bP)67 z1=P^rLfz4QER4BRYzHD8V^AGSKwU5m)xH^Oa&|`@H#3FtSA!K)=tAE)p1@+{SFtpD zr`p+E9vhSQ$6B}rHDWHNIzXwvN5>Vz8UL8!U&x|@RTNQUA>^uxs% zjjJ4g#BlOQ7=}gD?QvC5Lz#wJhK-OxF(XmuU61O>7Ho-LOeD>n)>sqW3n;daiHsF#eisrBJiJCicJ%_$uy34S6VU5$2=mgt~)IP(!=|b)gHW3qMAk zC#=5hP!g)X4(dkwU`c!n-I{F6C}@^`jiWGt2Q&cR#m@M^u?^#?4sXW6ShbNc!*M05 zeI!ex70$rkcm-d>rcI3Li#u=|#x}LbUvJ9kw4*&UNV9W4ssmxo?VE2ds$>5m$C_r$ zI8C-}OvXD%-%R-yc3F->5LkwWvFF(7SphBD{d!)LTkF6j`J}Zf5GbL zV*E8!=~x!K<7u3RI<9AHWBTFes0$QoV=qt-HHjyoF0|6AzlrK#Ok2CUUUyT_iB@1& zyoq{4HEG9$a~bm{E+n7Zo*xcO>R@N}5oG?DA`A~rOc(5gTajHRj6@w8jcK?BbpyAN zr)-LLwz_*z&^lg&nshn4@Z7O4^7za>)X-=w3$L26*n;%L+OQ1)Do3XM(y8)8kv7kCobO8uA2JD=$l@s z$+rW?Vn{DL`94GrF+TL3d29MRZo)>I&OUuq;GK=?*T8EKhxNmIzJEIMk!Li6yzdDKXGquol)M--x;+uh;Ce zY=?Trn@}AI8e~_+5Nt$#9C;che6St*@mP&~H^$?0tc~&9)leLPnj<&Rt)Z$%tr{G_ zT9|(rzfjl`>5JLtSZO#DkbEiXj(^3H_{!^cGG?Ljk1-0jV@3QOOJU&=)-=?k?Ky(+ z*NGNU5sG)PBjz7ze@q5qUGkZzJ2{J*y?&$Y`=S+=C0~hpGoC`-S>PLXQV&M8--~*5 z0i*3)YL3d^8qN5thr6kW#s9D-mVDD*xEGcoUxVp*2Gg+U82d=tqDE>1>O7?xP6pAm zLmsa=if>~o*U@=*BL6eq$1%vD zn3Jd*Xvo#n;gOh%*_aD2U@%_A0DO*mMDBoh^fSnpDSBfn`e04e1?yuV_Qhx%i!rzq z)$yaKj{8ioW}xcd#3WpYad-n0u;@hl72F6jH5hMGNM^?YN3Th?Ln)|dn~803AV#Yl z=ET1-Ki^J( z{qPoQ2p^-`6?~T^iosY6i(qc7j6s-=1+f+8!9J+{!!R$7#mbrtQz_^f?ZUoz7nfxQXbE)3FH7!B)5$E1}PO_RX1szT|ySb6_yKb>i_9bfTG9 z80VuV-#XN@yM$R7@V@5iHc6Hv#^Lv?sD>XEF+6x@Rv8P_!X#w?C`$U9(O>^+U~ z*H8_oLMNPxE?kHj;%w9fmO1-Zp-#99bq5zvcXS)o@dv2$6qs&16pc~jNmvNmI}S#T z*u?3KzfSZX6}p23s0*$}O_q%qkK0jm;x;DYJ=Cm^nPK0YJ+K4$O4R;5Gx_1dG%SY) zP%pZBsPonRz`hSgxhYhkVk>IB-p6W~ILrPP48oG+o3SFE$Cg-dwq0huQ5{)`P4O%y zVC)<_2RdRp`8TK=x{qb>DQXqCOMPhH$&FEyYd99d_s}1+F%8$CI(QrP4CCh7AxuV% zOqydRhLG1o&Gs&+N7T>BhdPcy9*x^fqM$omiOumC*29t?+4VjEW65V>7;bkwhoR(; zF$P2C**mI%t;qXgGu(+KFmS#d@=BOaJ_-wH{colaNyQPYfVZ#;miX8{ySAuFHwo2l zDaPS`C%=yx+9IFW5sbims{33e1xSi#{zrDF{nq-9R2WB)R1?>BG?bLnkG2;6x4_=LANHuQK#Yos;5z(@|%uH zSO9xr2#!K^XeN5$r>Kr(qweSc>i83=3;u!USkKq668Zi`c6mOb6nf<+g0~?T^Le)nux1ZgUup#*sR7Vm&v+tGqxSG5j z>e2drZXZn)dXtxPQ_#>QU^J#+8SIJ?I2E;jCHBJ&n2M2K*jH+2)T3F5E$~}Z2lB4q zOIPi%H%`Yo_yAKd{YyKt?lBZ{QSm*-;3*75*GfC9gV2|}7;31aoIDwGlV@NUHb9-H z50=0oSQ2OBXxxawnD~{QGYyb-ZZm{JUNv;gM%}?G)CKmSPW%J<;At#|=TVdMF>1Bs zTV;nl3^gKgsE*V|-B@pD|18vbmtu(4|0)Wa4Es%B1Q5k;XoP!9dE9%f=|td9#Y4X>hBNtyMGzYgq2K?e-QN;n>C;YQSm zJi`{~`;GmoZI7>#A41hfZm_FjgyU|Er#}C;_8TxA)q#=N1b1UY4BW{0cc9RDqy6gL zhH>N}o9wq=ZLCf{2sMPOF&58afAraG?{FyACEtiT-nGTn$D`)faMW@ekGkQ>sAWE5 z3*#S1VF?xTTP%c!QA2zY>);jCGkxVdyT3l_QFKDJ8;m;fNGyiqFa#Gk_1~b@|5o(F zQ|Os%ZVCZZ+(4b+3F^c-w=%34jG9ErSPWaE-V?)7v-@MGek*FZoy7=zhNCcioBi8x z9@Zm&f_fCSx7$_Yo=G8vifjzS^Qa3yL0vF>hh4WRSb;nX)ouco!X>C7K7`%yG)}{6 zJNe5P4`Cl{vdjKCz6ocOm)-68Gu>^rQJ6_Z>K^-#LPt?2%GhiFAz~ShB#+-`PxJ+H z4imVae?G-iH~Q3~b7d-!Mxj zIAT8_CSx7)vsf1+zqj9f{ZO-cEp|Y!AM78Mol&!YG3vOJs7Dog)YhlsZSsLwi|d?25g9v46rH!l~p@zp~_U&997qB839y><2+@Y(hRBU&Rxs3&)(dehhZ?RCbY_HVxEw#(}-6~m|qykwn>?~^~p@i_Ie zooxQU*`80pPSpR2?XmXn_WNK7W|BY0d6@Z!9g*|+8hQOc?cCaowaES5SL_8^U>hn< zqn=@ft9CXoz&FT)ui5YYnK+sJ0H$EG>kKDO!?$rA_Q9kZ_5&pwTa)|TwDp~^C;34f zg6{ag>>m_MunQFrF$>%MZHH<#RwTcHy0h?GwnN>qJNX5ihM7$1rg#z?W7I$P-;RbN zgKRE4cKz43yNn#~HWlyKclJlvl7{=SG=|-^ldTq3BOi&ya6M}Oajc0CQ5Q(PXXnON z>_Pqu#$d*Md&m7z=Q)YGPX7NiIXSWig(NBtV0|OHmZ?zgZP`D2`d z-JaQ>+rMxbd5!1xnO;TB`sT*v`CXrZngb_M7fN+m$72KX{isJB=;bo*;S`2b(0aXr z<#2osm*-u-8rzXyLLW@c>GJ#-Wnv}rZWxX8&=0qx+8xHccmiYb0v19)ZbtOKwb`F7L=AESn_g0IW-UU&n0lYi&r(Yaink?4i$z%s0e zYf;PjPgIA7<#u_#2NvaayF5R)%c&^Hj*X}e99HgPLglds#{0QEKhN7R7yI{N93I8o z_zZRDx$?S<7v{&DSP=7I2x^2PF$Ck#7i+sI__p>S%2Yz$_>4j^X5kQImNlYPB514(Ju&^89Vt8H2QPXHZZNm!m(fMLmk0 zn2tZ9CQDEOm*)jj12v?xPhl)U_%_z# z`eq-6h8R%D4tWREkng~S_y{$G^MhQTFP)Q^PM#6$^8EY%c+?4xVI2$%vFp7Z)+S$s zdURJ%k0i9P%ku|F7P_lav5i6+KE$4wT*NM~MX2?E8S7zn{vRm~{ba0wv+xz%iwSrS zOJbQ&J5mi%v%NR!O*szL!K0{=3n|9>*N~JdW|vPn)HADy8tN*j3${SD>x5cJ&g6QLcZem%@&Vp*aYBBh12SsG+}%VHjM(wo63Sw{ug_5Kc!er|qZ{9zo6S z-?0eZMXh)LNZT$N_2NlDP1Y3DdT)*;a5QRFEO1T*z^kMk`UKR0 zNvI3dM-6QY)Qf5qYPOF-&FcB6XMP%M;bV-zj3}FTMdhEPM&KaoMz0{}bDO&qG`k-- zJ1RuGJb!9cM_sTDYCXq#u@ou%LV21h*q-87wrCFHPN#kpNNTWyOF=x#=A)ZIe@2N))9S(Y+?@4mC&Y_&{(Iu*-`cB#71Hibrp!?l&28d zw!GBtTgp>ywdXIXhvXjL^63*r>+M3vxrjU zUD(%*aw=+bQ8$A8cS6hZ|dFr**$M4mS@?4_2ms{1mBB^ZSG|C_kb1oW<3!Hkr zkhC4KnCH~@>ZSXu~Qf6rr|j%<`Z8MmDmwa?53>k zwU-X|qph|{)D@vzg;?Y4uTQ;RDB1>4_cbw}80hS`d*~$jDPjl}GYI!}k_6&olJUgX zgkGWAKBN9e)F2%t4wJt_#1g*}52(}jm{?ApM2Dg&*P*OUZ$Q4-Jl~ee2NKl?zCk>n zbHCYB^B&e-wj<7gX`E;=`77jGiO-33s3{=XTjEKh}gF100COabbqQJ%~J(}@h{1kP^Lk9?t%be~lsCeZWm zX{pp+rMB-&ty4JD1o9O`OZF|n4a7y_Z|4ku;`>hd1&`RT?F*s;=eSIsj@rEO2D#qf z+W47v8$K4yX(G4N$nLWL9p@w)uqON8!;fgIEtULF%6hrSICb@~8~J{0OiZTSoajjC z^sSwC(p1C{(-dbULDNPJ7yjCe>KCBKioaW;k%#R+W}sCz>AbF!uwfO&}! z%GwSQ=RGC9pQ!6Z*`G)z{K)^~`ksF?nMyL6a%m3E#EZmt#1lf>9E<0_rDz*WXv^vN z4f2)pf3~4cUV?M(p#16o+h2#)y1of>cKBiq@>t?2@d^k2tvdXSTw4>O2+@f6gUCfh zvA+Z+)AkW&69b4BTSE%-*w-3AC*qtPKj`{nNCr6-fsTCF8UFO~eA@VO@?MnRCthrC zy;Oct_X&j-)c3*LDibS-iqs8v+Akq5%=tFqLFyXo{=F!)ry>_Sx~NPXB(F+nOCrir zr)?RLm-vT>qwWE*l2}UqI&p*em&n1n7GY24xay8nnF;z2Te|8r{%45`L?#u>i1(bv z`>A`Eaw`nPGsJhqQ1W6JgT0CJlry;CHoQh&2DSAiMpNEI^l<7*<4Ni((>^ERZbU@_ z1zs#>7vy2TDSKl(UF1~?C$J<|eW?+tnMMAyQx`=31?BC;UhQNXK^!CB zh5q;!p2U)LMq4e)+FIgTY=WWe`x5^k+!eH!g0>H^jV+q|ltU=j#BgFT@nTy~;SHiK zb)OK=UhKeV@}G!dLv5~fG32kFA3d?Zp9ZVr22opWJf0wR3`j3g|GHlqoz42dETDPWW ap=94m5f!RbjZav2c;Wbrb>Cc?pZPy2WR{8m diff --git a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po index 83f012d2..e477cd1b 100644 --- a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po +++ b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: LdapSaisie\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-08-25 18:02+0200\n" +"PO-Revision-Date: 2021-08-26 19:59+0200\n" "Last-Translator: Benjamin Renard \n" "Language-Team: LdapSaisie \n" @@ -1099,48 +1099,48 @@ msgstr "Copier dans le presse-papier" msgid "Copied!" msgstr "Copié !" -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1504 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1532 msgid "Connection" msgstr "Connexion" -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1524 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1552 msgid "Recovery of your credentials" msgstr "Récupération de votre mot de passe" -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1533 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1561 msgid "Please fill the identifier field to proceed recovery procedure" msgstr "" "Merci d'entrer votre identifiant pour poursuivre la procédure de récupération" -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1538 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1566 msgid "" "An email has been sent to %{mail}. Please follow the instructions on it." msgstr "" "Un e-mail vient de vous être envoyé à l'adresse %{mail}. Merci de suivre les " "indications qu'il contient." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1547 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1575 msgid "Your new password has been sent to %{mail}." msgstr "Votre nouveau mot de passe vous a été envoyé à l'adresse %{mail}." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1717 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1745 #: /home/brenard/dev/ldapsaisie_clean3/src/includes/routes.php:156 #: /home/brenard/dev/ldapsaisie_clean3/src/includes/routes.php:467 #: templates/default/select.tpl:29 msgid "Refresh" msgstr "Rafraîchir" -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2811 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2839 #: templates/default/select.tpl:20 templates/default/recoverpassword.tpl:17 #: templates/default/login.tpl:16 msgid "Level" msgstr "Niveau" -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2979 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3007 msgid "LSsession : The constant '%{const}' is not defined." msgstr "LSsession : La constante '%{const}' n'est pas définie." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2982 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3010 msgid "" "LSsession : The addon '%{addon}' support is uncertain. Verify system " "compatibility and the add-on configuration." @@ -1148,53 +1148,53 @@ msgstr "" "LSsession : Le support de l'addon '%{addon}' est incertain. Vérifiez la " "compatibilité du système et la configuration de l'add-on." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2985 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3013 msgid "" "LSsession : LDAP server's configuration data are invalid. Can't connect." msgstr "" "LSsession : Les données de configuration du serveur LDAP sont invalide. " "Impossible de s'y connecter." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2988 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3016 msgid "LSsession : Failed to load LSobject type '%{type}' : unknon type." msgstr "" "LSsession : Impossible de charger le type d'LSobject '%{type}' : type " "inconnu." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2991 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3019 msgid "LSsession : Failed to load LSclass '%{class}'." msgstr "LSsession : Impossible de charger la LSclass '%{class}'." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2994 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3022 msgid "LSsession : Login or password incorrect." msgstr "LSsession : Identifiant ou mot de passe incorrects." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2997 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3025 msgid "LSsession : Impossible to identify you : Duplication of identities." msgstr "LSsession : Impossible de vous identifier : Duplication d'identité." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3000 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3028 msgid "LSsession : Can't load class of authentification (%{class})." msgstr "" "LSsession : Impossible de charger la classe d'authentification (%{class})." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3003 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3031 msgid "LSsession : Can't connect to LDAP server." msgstr "LSsession : Impossible de se connecter au serveur LDAP." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3006 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3034 msgid "LSsession : Impossible to authenticate you." msgstr "LSsession : Impossible de vous identifier." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3009 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3037 msgid "LSsession : Your are not authorized to do this action." msgstr "LSsession : Vous n'êtes pas autorisé à faire cette action." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3012 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3040 msgid "LSsession : Some informations are missing to display this page." msgstr "LSsession : Des informations sont manquant pour afficher cette page." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3015 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3043 msgid "" "LSsession : The function '%{function}' of the custom action " "'%{customAction}' does not exists or is not configured." @@ -1202,24 +1202,24 @@ msgstr "" "LSsession : La fonction '%{function}' de l'action personnalisée " "'%{customAction}' n'existe pas ou n'est pas configurée." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3018 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3046 msgid "LSsession : Fail to retrieve user's LDAP credentials from LSauth." msgstr "" "LSsession : Erreur en récupérant les identifiants LDAP de l'utilisateur " "depuis LSauth." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3021 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3049 msgid "" "LSsession : Fail to reconnect to LDAP server with user's LDAP credentials." msgstr "" "LSsession : Impossible de se reconnecter au serveur LDAP avec les " "identifiants de l'utilisateur." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3024 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3052 msgid "LSsession : No import/export format define for this object type." msgstr "LSsession : Aucun format d'entrée/sortie définie pour ce type d'objet." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3027 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3055 msgid "" "LSsession : Error during creation of list of levels. Contact administrators. " "(Code : %{code})" @@ -1227,13 +1227,13 @@ msgstr "" "LSsession : Erreur durant la création de la liste des niveaux. Contacter les " "administrateurs. (Code : %{type})" -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3030 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3058 msgid "LSsession : The password recovery is disabled for this LDAP server." msgstr "" "LSsession : La récupération de mot de passe est désactivée pour ce serveur " "LDAP." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3033 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3061 msgid "" "LSsession : Some informations are missing to recover your password. Contact " "administrators." @@ -1241,7 +1241,7 @@ msgstr "" "LSsession : Des informations sont manques pour pouvoir récupérer votre mot " "de passe. Contacter les administrateurs." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3036 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3064 msgid "" "LSsession : Error during password recovery. Contact administrators.(Step : " "%{step})" @@ -1249,7 +1249,7 @@ msgstr "" "LSsession : Erreur durant la récupération de votre mot de passe. Contacter " "les administrateurs. (Etape : %{step})" -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3039 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3067 msgid "" "LSsession : The function '%{func}' configured for the view '%{view}' of the " "LSaddon '%{addon}' is not declared in the LSaddon file." @@ -1257,11 +1257,11 @@ msgstr "" "LSsession : la fonction '%{func}' configurée pour la vue '%{view}' du " "LSaddon '%{addon}' n'est pas déclaré dans le fichier du LSaddon." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3042 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3070 msgid "LSsession : Failed to load resource file '%{file}'." msgstr "LSsession : Impossible de charger le fichier de ressource '%{file}'." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3045 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3073 msgid "" "LSsession : The function '%{func}' configured for the view '%{view}' of the " "LSaddon '%{addon}' doesn't exist." @@ -1269,11 +1269,11 @@ msgstr "" "LSsession : la fonction '%{func}' configurée pour la vue '%{view}' du " "LSaddon '%{addon}' n'existe pas." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3048 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3076 msgid "LSsession : invalid related object's DN pass in parameter." msgstr "LSsession : DN d'objet en relation incorrect dans les paramètres." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3051 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3079 msgid "" "LSsession : the LSaddon %{addon} keep using old-style addon view URL. Please " "upgrade it." @@ -1281,7 +1281,7 @@ msgstr "" "LSsession : le LSaddon %{addon} utilise toujours l'ancien type d'URL de " "vues. Merci de le mettre à jour." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3054 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3082 msgid "" "LSsession : You have been redirect from an old-style URL %{url}. Please " "upgrade this link." @@ -1289,7 +1289,7 @@ msgstr "" "LSsession : Vous avez été redirigé depuis une ancienne URL %{url}. Merci de " "le mettre à jour ce lien." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3057 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3085 msgid "" "LSsession : You always seem to use %{old} in your custom code: Please " "upgrade it and use %{new}.
\n"
@@ -1592,38 +1592,44 @@ msgstr ""
 "LSformRule_password : Regex invalide configurée : %{regex}. Vous devez "
 "utiliser des regex de type PCRE (commencant par le caractère '/')."
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:582
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:612
 msgid "LSldap: Error during the LDAP server connection (%{msg})."
 msgstr "LSldap : Erreur durant la connexion au serveur LDAP (%{msg})."
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:585
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:615
 msgid "LSldap: Error during the LDAP search (%{msg})."
 msgstr "LSldap : Erreur pendant la recherche LDAP (%{msg})."
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:588
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:618
 msgid "LSldap: Object type unknown."
 msgstr "LSldap : Type d'objet inconnu."
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:591
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:621
 msgid "LSldap: Error while fetching the LDAP entry."
 msgstr "LSldap : Erreur durant la récupération de l'entrée LDAP."
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:594
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:624
 msgid "LSldap: Error while changing the LDAP entry (DN : %{dn})."
 msgstr "LSldap : Erreur durant la modification de l'entrée LDAP (DN : %{dn})."
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:597
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:627
 msgid "LSldap: Error while deleting empty attributes."
 msgstr "LSldap : Erreur durant la suppression des attributs vides."
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:600
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:630
 msgid "LSldap: Error while changing the DN of the object."
 msgstr "LSldap : Erreur pendant la modification du DN de l'objet."
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:603
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:633
 msgid "LSldap: LDAP server base DN not configured."
 msgstr "LSldap : Le base DN du serveur LDAP n'est pas configuré."
 
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:636
+msgid "LSldap: Fail to set authz proxy option on LDAP server connection."
+msgstr ""
+"LSldap : Une erreur est survenue en appliquant l'option d'authz proxy sur la "
+"connexion au serveur LDAP."
+
 #: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformRule_ldapSearchURI.php:59
 msgid "Invalid LDAP server URI (%{uri})"
 msgstr "URI de serveur LDAP invalide (%{uri})"
diff --git a/src/lang/ldapsaisie.pot b/src/lang/ldapsaisie.pot
index 94ba9bda..5332c8fc 100644
--- a/src/lang/ldapsaisie.pot
+++ b/src/lang/ldapsaisie.pot
@@ -934,165 +934,165 @@ msgstr ""
 msgid "Copied!"
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1504
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1532
 msgid "Connection"
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1524
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1552
 msgid "Recovery of your credentials"
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1533
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1561
 msgid "Please fill the identifier field to proceed recovery procedure"
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1538
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1566
 msgid ""
 "An email has been sent to  %{mail}. Please follow the instructions on it."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1547
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1575
 msgid "Your new password has been sent to %{mail}."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1717
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:1745
 #: /home/brenard/dev/ldapsaisie_clean3/src/includes/routes.php:156
 #: /home/brenard/dev/ldapsaisie_clean3/src/includes/routes.php:467
 #: templates/default/select.tpl:29
 msgid "Refresh"
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2811
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2839
 #: templates/default/select.tpl:20 templates/default/recoverpassword.tpl:17
 #: templates/default/login.tpl:16
 msgid "Level"
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2979
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3007
 msgid "LSsession : The constant '%{const}' is not defined."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2982
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3010
 msgid ""
 "LSsession : The addon '%{addon}' support is uncertain. Verify system "
 "compatibility and the add-on configuration."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2985
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3013
 msgid ""
 "LSsession : LDAP server's configuration data are invalid. Can't connect."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2988
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3016
 msgid "LSsession : Failed to load LSobject type '%{type}' : unknon type."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2991
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3019
 msgid "LSsession : Failed to load LSclass '%{class}'."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2994
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3022
 msgid "LSsession : Login or password incorrect."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2997
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3025
 msgid "LSsession : Impossible to identify you : Duplication of identities."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3000
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3028
 msgid "LSsession : Can't load class of authentification (%{class})."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3003
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3031
 msgid "LSsession : Can't connect to LDAP server."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3006
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3034
 msgid "LSsession : Impossible to authenticate you."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3009
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3037
 msgid "LSsession : Your are not authorized to do this action."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3012
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3040
 msgid "LSsession : Some informations are missing to display this page."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3015
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3043
 msgid ""
 "LSsession : The function '%{function}' of the custom action "
 "'%{customAction}' does not exists or is not configured."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3018
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3046
 msgid "LSsession : Fail to retrieve user's LDAP credentials from LSauth."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3021
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3049
 msgid ""
 "LSsession : Fail to reconnect to LDAP server with user's LDAP credentials."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3024
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3052
 msgid "LSsession : No import/export format define for this object type."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3027
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3055
 msgid ""
 "LSsession : Error during creation of list of levels. Contact administrators. "
 "(Code : %{code})"
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3030
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3058
 msgid "LSsession : The password recovery is disabled for this LDAP server."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3033
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3061
 msgid ""
 "LSsession : Some informations are missing to recover your password. Contact "
 "administrators."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3036
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3064
 msgid ""
 "LSsession : Error during password recovery. Contact administrators.(Step : "
 "%{step})"
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3039
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3067
 msgid ""
 "LSsession : The function '%{func}' configured for the view '%{view}' of the "
 "LSaddon '%{addon}' is not declared in the LSaddon file."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3042
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3070
 msgid "LSsession : Failed to load resource file '%{file}'."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3045
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3073
 msgid ""
 "LSsession : The function '%{func}' configured for the view '%{view}' of the "
 "LSaddon '%{addon}' doesn't exist."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3048
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3076
 msgid "LSsession : invalid related object's DN pass in parameter."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3051
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3079
 msgid ""
 "LSsession : the LSaddon %{addon} keep using old-style addon view URL. Please "
 "upgrade it."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3054
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3082
 msgid ""
 "LSsession : You have been redirect from an old-style URL %{url}. Please "
 "upgrade this link."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3057
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:3085
 msgid ""
 "LSsession : You always seem to use %{old} in your custom code: Please "
 "upgrade it and use %{new}.
\n"
@@ -1327,38 +1327,42 @@ msgid ""
 "(begining by '/' caracter)."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:582
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:612
 msgid "LSldap: Error during the LDAP server connection (%{msg})."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:585
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:615
 msgid "LSldap: Error during the LDAP search (%{msg})."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:588
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:618
 msgid "LSldap: Object type unknown."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:591
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:621
 msgid "LSldap: Error while fetching the LDAP entry."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:594
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:624
 msgid "LSldap: Error while changing the LDAP entry (DN : %{dn})."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:597
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:627
 msgid "LSldap: Error while deleting empty attributes."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:600
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:630
 msgid "LSldap: Error while changing the DN of the object."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:603
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:633
 msgid "LSldap: LDAP server base DN not configured."
 msgstr ""
 
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSldap.php:636
+msgid "LSldap: Fail to set authz proxy option on LDAP server connection."
+msgstr ""
+
 #: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformRule_ldapSearchURI.php:59
 msgid "Invalid LDAP server URI (%{uri})"
 msgstr ""