From ecb08a614118035a6b9e6851260c335784dc434b Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sat, 29 Nov 2014 17:40:39 +0000 Subject: [PATCH] support paged results --- lam/HISTORY | 1 + lam/docs/manual-sources/howto.xml | 6 ++ .../manual-sources/images/configProfiles4.png | Bin 30185 -> 32572 bytes .../images/lamdaemonServers.png | Bin 0 -> 38266 bytes lam/help/help.inc | 2 + lam/lib/account.inc | 76 +++++++++++------- lam/lib/config.inc | 24 +++++- lam/lib/types/group.inc | 3 + lam/templates/config/confmain.php | 11 ++- 9 files changed, 94 insertions(+), 29 deletions(-) create mode 100644 lam/docs/manual-sources/images/lamdaemonServers.png diff --git a/lam/HISTORY b/lam/HISTORY index e72db953..aa8daf2b 100644 --- a/lam/HISTORY +++ b/lam/HISTORY @@ -1,4 +1,5 @@ December 2014 4.8 + - Active Directory: support paged result as workaround for size limit exceeded - FreeRadius: support dialupAccess and radiusProfileDn - Usability improvements - LAM Pro: diff --git a/lam/docs/manual-sources/howto.xml b/lam/docs/manual-sources/howto.xml index b4310dce..15aabfd6 100644 --- a/lam/docs/manual-sources/howto.xml +++ b/lam/docs/manual-sources/howto.xml @@ -1291,10 +1291,16 @@ Have fun! linkend="a_accessLevelPasswordReset">this page for details on the different access levels. + Advanced options + By default LAM will not follow LDAP referrals. This is ok for most installations. If you use LDAP referrals please activate the referral option in advanced settings. + Paged results should be activated only if you encounter any + problems regarding size limits on Active Directory. LAM will then + query LDAP to return results in chunks of 999 entries. + diff --git a/lam/docs/manual-sources/images/configProfiles4.png b/lam/docs/manual-sources/images/configProfiles4.png index a1adea61a3805886a18cd8eae58b9cca98000499..9b0c8cebd7f9d21b4b3d36d9c1ab32840fa7a3ca 100644 GIT binary patch literal 32572 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

W(DA$z=W#q@2jXk#q3& z*zwpLwD8hIVv4)xlkeTx^fKx44ZwKruXuS8nsuFyo=amkA1Rh({!4fO zad24(3UAiPgrEYen_TD;0TcwNz9S`(-`9edC*BqFm*H9Rbx$e0kIn*l59@XJW?T#L zwH-znKU)eY9xTIxHbSHv-pHTN`<}k^w7*_OB)XqmT#nJ&9;4MK@@JV9>ctjb!G!mJ zfhxXJI7C*8TM5$5Sj#JukmRXKm>uKRk#KkTk*3MUSC^yk_(X z*ocGu*o0@uph)_DQm(@KIeXTormt`yd;9yWOfUb#$UDlDq%PI5wH?6Wcu_0t)YPgw zQ(d0OXM!bFKhV||H*nWqT+Z|A?0h3qdp13>)745R_{8czFt=j1&AW z2ww15pRL3$d4K2R9{KU+t@3%fjW!M`pS7JG4kX!o-=xo0_o>It=GM@-`k3vEY?p2| z^xADRYAgs*X<5jHlUDhRi&#!v{DIsMD1!%jzEyQQ!br9Z0M!k_j^wA?tQ-96A-SC`115?5~eOL!xx=t=V(@x2k9;U5vr{A5DoemBU zkLN5!hx0W{KuC=bCptFvWrVa<`CMNQax|l4;dzsaaNs9N>i3$X_H%o^+8WxvwfB_8 zY|k3{#tJmAXZacUoY#xCdn)`t`)RT#=rHqKsKqI+x#AG(@biSq_C$3A62@rwn@F{N zP0o6klX;9zSQdkOb<8iO*8w#@H}jI#-`E6vRUtO42nzGWF7|K-^D=`7dL zn1XFKbV!)X<7_W#**IGIc>b5~F({}eh!-&Ftgmwq!oXCeR~;?0V(Iy&-8ZQbgB(e_ zbe*&1n(L9x5nTq_^Un5!R`7JSiOf!&yU54Jp_0(Zl9HU3yl754l#KB9tgfP7fm$Am znQ?c#VDP0Y&Zd#$&B3ChF2~;+c3~%4Y=u8VgC{km{adFgd%i!%A1%NGEt20sWjUA~ zgfY?hCHqav04PwsF~7z*M5-e6%C>`9mO#X{K)79OuF~PHb@y+LhA_iJy$|lKA^QX| z#q1|Tery~t0di1-<8i^+-ui>xLl{QdV0V^!uWSL0}BHUr38AU1YK8D_u{UOOlQ0v5{CA%vB~eV zN42t~W%NNe6QaZyIyBv;@t@0~5 zEA@RGZjHyokt)r$N&2Oi-#JmAH4sYDH18?P^F>;h4zmJii^}f)NFv_CQqCqxk<3=g zm6nkq*;ui3-Igwb{yj2bAZ73%ZwME+Y1m8F+V}?}`@55(DA$_T;-X|)maG|gKi)ip zaWd7DO`3uVhoT=p;?vSljtdYu^t>TeHF`L_ZAhyUUK2Sw(=pf!G5DK0Jd;MC76gkv z0(L-tHf;rz2{QVNHD6N00!a@crb)SuOe}1t1#fHV>B;b8P|i`ZD)WeGiO>0AVMrL$ zHWc(Z8VVh^Lo?u#B$vZBY70WLiD5$^`FGtf?m!?u{F0!60MbZCjRPL$vA=?xVu(F@ z$6fGH>1(8&KpHRWxngO%pElUpX|@pc0MG-NbQ14Yf8cxdSH3PL1Tu`>k!BImG2Av( zaDH~?yh#dD74mh%c(p<&Q*E^n`64l1i=AKknIHd+61)o;=i9ci&??aBIR*#X-!I-D zH{>M`k4;WiSJH8&Ijk?U`e^pffp>RsH#N8+IH(ggT5x}!=;It*PDXKmNj~vzzHZBt z_B!{hQK7&rRlIQp3{&5$ap?^CEUJ&M zBb6JyT=F$HP4=rdT9j~6b$5m%dXP32yCjymb(=j6%Hv@2$~%^l5uTdm;bgkbAGptd z_Ry=ot(_;PfS!)dQ@Ta__b?{sWZT!?kq_eXA6jI2gpvz~1iz{0_ggx=Q8XtkuF++n z_uCc!TJcRhL+$)S(A89sPP(j>88>&rm~6WCL1JE+)jjiOYi3y7zBaUaq1@r^_SZ4t zYyu(Z&NKy=#ZiGSdI+=I4K`cS}#n6@;dJRcthIx z1(jeXoRU0~=4f-N21RNIV|1|9?q&W}w6aH@H!vIC&lnbSUsc>1Z zH--yq;g+zD_J2**cVpTb8;>qD(d}cVrDd;<^7S>I9yi<&PRu(W1}$;T?|1HkMIvar z)@$s{GEQqHg)qwYxA6nsyygoDG5sC7Ep-X0WN*Q4Hs*jDA_ZUU$NH2q|UWZ$brC6DfHK!zm-HQT(rti@>3R7!ft&NCb@&Ixoo zQ!pFo1KXuKyS!y*>PoeT$Pl`8uZ>1DBGGXllJLDtJ9oe9F7p0h9G)VQVqo3e|GC*W zGiK1TOev?*)V=%ncqqwxJ7Y4~ar8#loK~9Mbjd0FoA#md%g4%JD?Yea$jR~@nXQez zN5|fF+HNn`@7)b2S~ zx2<9J%J2knV>A6on@b?xb#s{IhM(YO^xKVIxyLbb%2hu7<*<%U!^+!+(6;qw9$rR? z6HW)+RlPIS>UD_%hvD}EVdU?;TUKiM{m>);_ACUW^Q__N;D+{5Q3!cV_B5%B=uwx= z%ub23pn_YW#$FMgL=9wEj7pwd6@ZV@X98Zxk&1~%Jo)`35}RmdizTvS$#ol(0$1yh zPC_Ce2!l7g4Lmz&FxtOpMee)baPf7|>MbuWazH@%p`qIM`lFT+{z72=`A`E*QlS!vuW%a(?n&Sc zA?Fg!QK_ppF7WkT4kX}tm&e4X;Ey08#3OwA)XWY1;bEmMvP8d~wQIyY0^gl#{1RYH zn|^HCM%P*SRxF&M3C$TP*wV1NadIuf7xSFb{mu;Y>jOx3aO(wTWx`Q%Z<)>1WLMrp zTo|m(VyfKbLSgN<|Gll`k=+kPB_&p~({$F7H?C^6T27zKtY*LS+#m`YqzJj44Z1%O z36O`w9UW2YvrbVd;gZyx(+$paTUk%mz-#Tb(7a98q%1R;rfc_8a!KkFuCbAFn=QWD z)=|U^T#^>=kz!X2(vKTQ_)&e&XjfS%L*MSw9r zi`Uq`KgC!3024!at`w0fa?%@gUo?GWvp}C;iOYVS<^_#6QH2qzcKuh%_4Kq3x}P{v zQf@WBZ`%@4qIya=mqPAlyGv4mA_r{TaX4FwLddce+vmYRuN;*!hlwMlKTV9G=3w#i z8l6h6#q}L=gvmYc>js8GWB$_SVM?EB^X87F_JK$bp>X)Y0Y<@Gr6<)^wwF5umo7T@ zm!UGbfLr$5mf>@6ZwhbkWP*a8wvfau1#;vh4DV^In_FrA=wVuT!)(JT!?l0F_BMa! zgQGqB!h98JYVpiy4Mn3lZUcI#fj`}_KBfdBphPQc=@5p+CW^HWXI|c0pNT+lCm zn_(!Zqp~CaN*3z}b7kC`VVl*Nhtu+U2Th@Ok;7X?TpH>ZeM$Hha57Qq$A6p2QY3$g zvp)A}YBGC4Aq{4!)5C+~kN)sX*|717n>d{US~|L!qn48mj+phS45f}fGiLB(^7FS_ z3LES!yS+oPFE^TD8A{O}v`iku+kCa%eD?NVrt3XV2h!Talkxw$*SF~bH#>H@)Ar(& zg@t*HEAk6!)w~e@kbbH%J2Au9yqjsTn@GtJDSd~Sfw>&EcV7WI*qtEpdDAsk#b)gg zM#9sK4W^~MkxX*l{kMaemcg=#k8yc7qT}v!FzReulo_8$L>~dgj+)mTEETETeyv$8Z~vi$Lr2sH%Ru$*Pvy9>G8Y--92 zCiT^o%wP;PjjDG(;=vIeD2IoihKGlXide6s&;mUjeDjyun4J8@3LMSVJd^L+vmmpk zK)}h_(eWqrdD)PD-ssn@a*xYvZpzIW9{a`5UJ5nz<`~A(ru(i1G%K=&CjuW|&o79G z2+hz@mr27`V@4<5)L85o0etx2=nIpehqF$_RY+JhilJ9Bz`-D}_12j*JUF2@2% zF;b#QNlB*MkIl;_`E+LeOeU(y3{nToEqieUoi5U8ir-S=y1N5RkOj)4qTEG;%Lle2 zujQI$X3z252md)R29@Y;{GQ)YFIWY+C|STtF+~?jwp-{B0q`+oVv@Zq;2XYLf(PeK z!6VXSkMr4IFg)5rt9Fy5ew9KEc}?ZBJg^Kvls~-mMhgJ=HzC_>xta;sZ~e5-VBi7b z`b7Zz{Z~sb%*MjenEg09uc{?nI+R=$v%Gb7w%#w#>9x87I=T#w(E~`42{0LhWiy46 zpgo{Dl-D2;>m3El=nrMQ4HG77EXsajXkG*|ycMaDq&}k{fDjA*lX3TE+nmu&K+nrd zPs(8+y8CjpAcKycc}@31*LmMnQIS_(6}_Kz?@6u&9lh6dj+0MWo==0OBin3qGj*Wo z)%V!bAr^ELl=f|c^XR^9MB|WV&!cNSYV)PsFl^@Vb*4N|LkR0bV0X?#CQ_AxY6hqmFF)L-3agdPoSiKlzI`18s;Mo5CS5VAo=|{!P^DnjufGB=Di?Z3cQ@y> z1ja|RjufnoLfFZZiwQycv2r_;vHG&?qL3YYWe&PR8U6^R43ZJ`uQwWJO}sf}4EN3R zt=VA9YftsMF1Vm8R+?iam>5A=Nc!lD(2TrlC<(5RCDe44i6d0>Xu{vl{WNs_sel)< z`c+fLR5+>N#vEODq0#s{n-hyprDf(olx35UmkxozGo=@iBz)~FLBL%XzZ#8t)57WE)3WmRC_V zsK^6mh77Osf;tT@uN3S&Jf|iWYE_-~k5i|nei0r@NRNlnDvl*5d3A|?n#od*j(*x% z>BegMtJ}n`fP1LYY!{cOVl_*iI+NP&_{8>GoU`N{c?m0Y$$y+gQ$o+v-WG|qxE zceSXuw@2i`{hjfuxqh>?g1b!t4;K&5GcAjlg>EP~+;#qdzEEdNIM+=;2?Y=k07H?v z+56>-4)Q8NPO&K7qeox9etnFKJCG)UllwFAt@q1k&l>wvhc?QsCmxfNlarFx0w&AB zfunNE=YW7yB%rm-)dON)PiN;KkExki!^LJE;8P2_pLp!IJO%%6RzEWgmfr>;tI_;= z&r5$lKLlX+$fkw9g01ST+0Nw6$|v!vm)%{3+5f2g?wa*(p4OB+M)3{N&8Y~VXE1rp zK-1&sZ)st0uPVfpXH3D`-@Evj4;CS@P0WvSgPaXtpIWxxug#8p*OGc`5_;dOlgiAqiV1ZQVw&$ZpF zbXaOVo%2qPh){HKxVDW2;It-G?Ah7b;NT!2^N{g6rfZg%0@Ptnj;hcr318SO#soeP_-uDH61A}dWk~{1jZAf z>SaFI`dN~P3dA8~od*m*(Wvj=rvb##-w>o!r{Cxm#t6hPYA!A>t8CGK{rYvaH*sru zd3k>R(UT{UNlCW#4Rv+br4~b8mq?!LCIEc{EKwCk0>C<3OZN5xhUDs$96~vU}AQ4bv@M2 z!|)SfBpBPa%LSLvXo2qKgjsUk4eAmQ-T{}B_!ea<{w)=Ug3AcqJ}vQ^c&2IRvM81e zV-v`0>F86=RvEgu8=}?q7izNm`5zOtn*{VaVmTsK-Tt~23FZ#J-@+`4DJr=S0_0$O z^M=4dAt&F7j+PEwrqCA_Cz<*q&koqRXSdGHwE+TvpVc9o(HfD6|3GVk>_dL*b)Qq= zvj&@~(@x`{{x6MMRz(Gt!ifNkURzrW2Dl2nY5+DFynSvi*)VRYEgVp}YA0(Sr4jlY zYL4zj&*iG-fr+$rW@hF}iKXGnQA1-Kyfi&CL-SY)1gwvdAj`n9YWml&6fJLMWTx5} zppJqWr)%W^*jV@sYTpH5gDPnVHhg~8rl`A2q-Es2mWg3~Yi!Mr*qW)Tzcj_>N#+@S z_HMzB_CK~)tm5Ztyt4_B`(lH%k&={65@Z;B#199#BA^F_p0mZnQCxi6z>|rVRy{~5 z1>W~DSqQg$JZW+6qIw?$f^UAiM}XZ8Ta}KYl2Y|XFmlL@ai9VRCpq4ORxWK|x~~gZ ztER-E>|Bh=eaU<@i%SaifeDFMeE4PLXevmge>YT*kv?fqWm zed84`o2iyps8?5Q@C)q_G|y8C3hx^fDDqzihu_||&MYo&6u_~S-O<<6DX@C+{JLjA zk6~4{+(D6FrlUVjJ3XEw{r6-v8mAg}lt8JL&1S?COqe3pyqMZxQ2sQq-7AbTb zRG~!SfPQO>cj=DJb%{7h+KbTK>@N?o0*Ud6JRUkek#Zo2HoQPm|g) zaPwYMO_;5Gw6{DHoEp&Vsl-EAOTo$^>~Yrrd&%PFde^(Hxf!&|>l^!vqYaT1dq8>y zOiJ*3JvB7q1~P!Se>``Cx?N_RR=eq#nYl|9;@SNS;{cfyfY`ud@)OL8w=)4VKfn8G zcl?_-Zvfg@r^FOYlRmkWAG&I%RWeL4JlpLbS)jW_KDfZts=6ZL$Drt_ou*Iw^dAcK zd*h$pI=;`ixVRV@Wg9|u-|Jhy&v|*c6vNv@sm{w;QU$<`?>w--A=l2iO~VDl{boC|40(0I>bFf=)` zHThAVs&tO1Y;%liyPF5<=+XUhC}jA_SBW7?yaQ=z=>#4-Tcn5&eEpv+cPpxIaf9Px z4>~FDn&8O5Dlm;jhf^{hC<8a^9{A`WB5!TKRF?AK=qUft&OA}R?b`oIj7gPn8mR=ohPIaYl7rH zyNN-;A2K8o5?5Y#-PlQKa6&s%Bh@-qw)aaJyu7?-YEB;ow*Ws2;!~|ii|4vKD<|x5 z?Du?TzXD@E&^~I^g)dlM*n@^+4BY1CD2newtm8EpcgBm;3JZ5v@=k9xU)Ot|9-KkT z5y;Qy=lAvW{x78PEFn{zH-32bt@S7)c@h$v#wJ(_h4{v#QSJ-;IC=Jw>@B=Fc82e8BKi-h>Iqw}F%E-x$ROG4T zj_G^XffW#3_wB&M$2tRR7=Y3-u(H~NulDac9L-OEktlx(fWqKgfualB9L@n2H4h#z zi~7NQ5Av2;TU+U)r7x_g0>ZRGQanLMBv?%>EG+n4cdj<`3gPV&6TH;a#vlRIU#JF( zB<8jzOzsO03?$+-@84f)0|d}l(Cu-Moj%sT*7))69N^_ap(lVVZuI{BQ7B*$VqjzU zwzq3k+Aj=d$Q*|Pma)Y^Y71aN;!p@}Bat?=nWi*cHWNQvIy&eC1+N!df>Tmbl08o} zN3y_y9X5yQUcSr%wBtd25?+wlnQMb&<$w>U<34#(0_;e@J7(4>GMM;j64S5-di+Bu zJB(4UwsMp}8BEph-!G<1MZ(R2`3P=W$mFqsnG!Pv6_qGa%Kd`_t>X87^$uV%1mxF& z-Q0e2&N*O20qSeuI`}C7h#4tK4RSz%o6p3^$eF(=d~+UNQNh#1dV!$2XpM@B0=#vQ z6bBY4V2x_bRRY5h0O7}{rfMoHWdR8uq~w~?=e(e!vzV@Q08nN|0)T5lb;on~XU%$D z+UV=+2a2-84wivq5D(+&#(ICG`ihTFO+{tTt#)tE{;lbzbhfokYr+)FmbiBxrv5Q#E@W`%g~00J@KtuMpOrt&;H zTaHvnqJ=&h0LjC^h}S=!#|D+|MMXuHGxyLwF5ET**t&t=VlW+qsBi0t<^Ui2tmUbG z?a`nNU{*q%oJd~T{}?cN2*iONzA^y)C*c9bg7Ke1!^FW(H~sd>CKI_&y8%bSA9{G+ z*!@g=j34B)f{pM0wTBQ#PKZ4dj62u%UTQUQ-2@G*g}bxYL$-T=CW zih*GZICrAUYip-x`$nF9U{n#ufT13zlyl2R1%+Vd=GpZQ*B8g&5(o+l13c6k9p*xp z5uoQ__@!#4f!cHj2Zx^CO!}O1YZ$Bw<)x`flzig~=VVk;Q32MvaV9;7Z`|VUE(I}h zwc|=B!0eAs542s^06tqN(v5W}8{i-Z(ZR5T?QKqvYW^^~Dil zJpw76U`Sq`ErqA0r6IRb9&PDL8-2nz`6~20w_NX*aAA~&3q$YaZbS07Zw!$gi%UzO zzzbpLY;WJ*+v|0-9^vOpcpEJTKO|J#30O}u@4;;QnoEur2E?qU033xx&_9>MIm*gP zN~Kyz;NpQkla!Pc{c{@;0;!Rvz{X)wwFC2+zSp@4FkC@=TL>V4wZ?=1dKBcHJA>Lz z;H=qG%Y%I}V6byQ!G3^E8W#~^XwIV?_y)WPjFxxr-r3vRo0^*H=zL$u0e+%f9IGM7 zVFr8TfNEQAJXYK3O7J<&S8zq}e74jATndRt=vBiPxnLaR8s;YDe}aR`$)?}GkA%%= zPQ;=2hJSrL^ScgUw%pOXgmFZAz2bLRY<{3=5xKIo)!6oCBVcTD`0>B9>iSqtJf`UQ;5>D%Z#KRIm45xzjs!)wa7^vS|2W+c74jQ zdvSroHj=gaZiIZcD)Mr$i{TTxD0KVk_ugJS$mK3j>-g6o>DDFos6Fl53#+8-&tA~* z&N8I-M425EJ!6`C%dl+c)}Va4%7*xH^s+Dk%3gkQJ`YU8-+qf76d4gu#6&Y`1B^83 zP}uI-%2oZBFO3gL8az{z>fG<^oUPE~>efbeuy$vJFjDe)FG$Y`^^K7ls{j5~y2LM} zb;^y4oN#aML7eA238d@LuB)4R@q#S1fx8=ojSCu#N)>uias@+ROwjp8p|&vV%atn> zob4?@-z{01tn=hexAPrrG7QBwlw}s|ewPAq_sjEQ{OAy+9&Xp=*v^eLZD+aw=Br$4 z%9nI3H*7AagSK+6)_baVAwF^olpw}Ii9M=>4s_PMSuA9Yw2QB%=cZDXAj8OZ&eiK40x>)cV=|@C)jKxnkT8 zd%tQ(gder<&5}M;v2I8t$f#Jwy9r;9ovNNO+xU>Qr&m00NLOe$26893Ga_t4%{4Mt zVbgW)a|8Q*Jt$D0FD6Fw=fo9uZKsw_9}i@NdoPqi>-RNkRhWfocJmhC{C+o+Kk$slxve*cD>(jM#tu;u}JuU zAc{p^_`CtNOR!HPGGpXNMhAyaI0V7l<<*JsWrYy`67Za_;$L{B4e>Eki7{x~_Vx_FkI4jsx-BhUw4R=gWmx0d%{8w1AKi!WA!*D} z4xdU{K%i8Iek(FgnB{}L`7H-LfkPg23ZJvRjMtlmwQuFBD($nH#f`EL6@pBpvWyP$ zmU;YX`Q9OiCihJXY>$PMERcl$a5xR=6dGhN?c}Rl7yUu%8ok_d=StYyIWOk<*;)T*@zAzSnq96hlKM1CXm338NGS!&>5dVU zoi=GAhKixh<7~|(RCmHb$P!178WDzjAn8pN^GBZ9Aci8rs-yfxAOxPknfv1ht=ns3 zkgpB0AUvx&+SSX>lRQ7TD(7(tx;sBl)f24w$!K-d7?Y3&n*V{n=tGRqdXMu9i7oYE zgo2!vkPdkTOrlW8D5jwdMEo{uwBY8)xhDD^L~~VJ_SbKiV?xeF|J#`4!2g|Z+Kq2s zS-DtRS^`DFE6At0zVgjzM8c6;@)uaojHe|s{-|jp@W};NyL5_S*(s4h2d`|;cfsrE zLhW|^;qvG>c&X*crLrFs3o#*qA1x}{u+n)CZN?RooX30wqCkeSd=r^EWLa)U$Zxd& z>jLZdfB;UST2D{V{05u1dadD{>x^|XeD~wC&ecC?BvP9 zf}*(i`Q~5v?m!w_7sd(ZRsKz)7UYK%Sh^YPT?ZGP4IvP@Ct?531=@fvT1l@D_m9io z=y+UL`tpCaQis{l;0PtFYvz4+iwS! zkFue*`|W0;^ArC68>@pLLLE}Wp31Q@ePX(a8Pn0;9`UV9S$wW+^aOYelV z&;FX^^7$K!3Qr25dyf!s&7S_%0@^gBWa;mF9y&f_;`?VJNw3WjWtd{vg6Q2}`O34` zUXkkNsco)vyLDsOjsnRB!i~ux3x31D##jGmBcS&No#wOMi-%n)R^ZSODKUA`0uh5x F{|8!yub2P; diff --git a/lam/docs/manual-sources/images/lamdaemonServers.png b/lam/docs/manual-sources/images/lamdaemonServers.png new file mode 100644 index 0000000000000000000000000000000000000000..c0ace848b6e2e77bc93fb98b05a6c876f0e79b30 GIT binary patch literal 38266 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 AumAu6 literal 0 HcmV?d00001 diff --git a/lam/help/help.inc b/lam/help/help.inc index 83cb7ab0..5f6f7810 100644 --- a/lam/help/help.inc +++ b/lam/help/help.inc @@ -181,6 +181,8 @@ $helpArray = array ( "Text" => _('Here you can overwrite the display name for this account type.')), "265" => array ("Headline" => _('Read-only'), "Text" => _('Sets this account type to read-only.')), + "266" => array ("Headline" => _("Paged results"), + "Text" => _("This is a workaround for Active Directory. Enable it if you get messages about size limit exceeded.")), // 300 - 399 // profile editor, file upload "301" => array ("Headline" => _("RDN identifier"), diff --git a/lam/lib/account.inc b/lam/lib/account.inc index 3d1df2a3..5b2430a6 100644 --- a/lam/lib/account.inc +++ b/lam/lib/account.inc @@ -668,19 +668,12 @@ function searchLDAPByAttribute($name, $value, $objectClass, $attributes, $scopes continue; // skip non-active account types } // search LDAP - $sr = @ldap_search($_SESSION['ldap']->server(), escapeDN($_SESSION['config']->get_Suffix($scopes[$s])), - $filter, $attributes, 0, $_SESSION['config']->get_searchLimit(), 0, LDAP_DEREF_NEVER); + $entries = searchLDAPPaged($_SESSION['ldap']->server(), escapeDN($_SESSION['config']->get_Suffix($scopes[$s])), + $filter, $attributes, 0, $_SESSION['config']->get_searchLimit()); if (ldap_errno($_SESSION['ldap']->server()) == 4) { logNewMessage(LOG_WARNING, 'LDAP size limit exeeded. Please increase the limit on your server.'); } - if ($sr) { - $entries = ldap_get_entries($_SESSION['ldap']->server(), $sr); - if ($entries) { - cleanLDAPResult($entries); - $return = array_merge($return, $entries); - } - @ldap_free_result($sr); - } + $return = array_merge($return, $entries); } return $return; } @@ -702,19 +695,12 @@ function searchLDAPByFilter($filter, $attributes, $scopes, $attrsOnly = false) { } for ($s = 0; $s < sizeof($scopes); $s++) { // search LDAP - $sr = @ldap_search($_SESSION['ldap']->server(), escapeDN($_SESSION['config']->get_Suffix($scopes[$s])), - $filter, $attributes, $readAttributesOnly, $_SESSION['config']->get_searchLimit(), 0, LDAP_DEREF_NEVER); + $entries = searchLDAPPaged($_SESSION['ldap']->server(), escapeDN($_SESSION['config']->get_Suffix($scopes[$s])), + $filter, $attributes, $readAttributesOnly, $_SESSION['config']->get_searchLimit()); if (ldap_errno($_SESSION['ldap']->server()) == 4) { logNewMessage(LOG_WARNING, 'LDAP size limit exeeded. Please increase the limit on your server.'); } - if ($sr) { - $entries = ldap_get_entries($_SESSION['ldap']->server(), $sr); - if ($entries) { - cleanLDAPResult($entries); - $return = array_merge($return, $entries); - } - @ldap_free_result($sr); - } + $return = array_merge($return, $entries); } return $return; } @@ -728,20 +714,56 @@ function searchLDAPByFilter($filter, $attributes, $scopes, $attrsOnly = false) { * @return array list of found entries */ function searchLDAP($suffix, $filter, $attributes) { - $return = array(); - $sr = @ldap_search($_SESSION['ldap']->server(), escapeDN($suffix), $filter, $attributes, - 0, $_SESSION['config']->get_searchLimit(), 0, LDAP_DEREF_NEVER); + $return = searchLDAPPaged($_SESSION['ldap']->server(), escapeDN($suffix), $filter, $attributes, + 0, $_SESSION['config']->get_searchLimit()); if (ldap_errno($_SESSION['ldap']->server()) == 4) { logNewMessage(LOG_WARNING, 'LDAP size limit exeeded. Please increase the limit on your server.'); } - if ($sr) { - $entries = ldap_get_entries($_SESSION['ldap']->server(), $sr); - if ($entries) { + return $return; +} + +/** + * Runs an LDAP search and uses paging if configured. + * + * @param handle $server LDAP connection handle + * @param String $dn DN + * @param String $filter filter + * @param array $attributes attribute list + * @param boolean $attrsOnly return only attribute names + * @param int $limit size limit + */ +function searchLDAPPaged($server, $dn, $filter, $attributes, $attrsOnly, $limit) { + if (empty($_SESSION['config']) || ($_SESSION['config']->getPagedResults() !== 'true')) { + $sr = @ldap_search($server, $dn, $filter, $attributes, $attrsOnly, $limit, 0, LDAP_DEREF_NEVER); + if ($sr) { + $entries = ldap_get_entries($server, $sr); + if (!$entries) { + return array(); + } cleanLDAPResult($entries); - @ldap_free_result($sr); return $entries; } + else { + return array(); + } } + $pageSize = 999; + $cookie = ''; + $return = array(); + do { + @ldap_control_paged_result($server, $pageSize, true, $cookie); + $sr = @ldap_search($server, $dn, $filter, $attributes, $attrsOnly, $limit, 0, LDAP_DEREF_NEVER); + if (!$sr) { + break; + } + $entries = ldap_get_entries($server, $sr); + if (!$entries) { + break; + } + $return = array_merge($return, $entries); + @ldap_control_paged_result_response($server, $sr, $cookie); + } while($cookie !== null && $cookie != ''); + cleanLDAPResult($return); return $return; } diff --git a/lam/lib/config.inc b/lam/lib/config.inc index 3e9570f6..5a798be6 100644 --- a/lam/lib/config.inc +++ b/lam/lib/config.inc @@ -362,6 +362,9 @@ class LAMConfig { /** automatically follow referrals */ private $followReferrals = 'false'; + /** use paged results */ + private $pagedResults = 'false'; + /** Array of string: users with admin rights */ private $Admins; @@ -456,7 +459,7 @@ class LAMConfig { private $lamProMailText = ''; /** List of all settings in config file */ - private $settings = array("ServerURL", "useTLS", "followReferrals", "Passwd", "Admins", "treesuffix", + private $settings = array("ServerURL", "useTLS", "followReferrals", 'pagedResults', "Passwd", "Admins", "treesuffix", "defaultLanguage", "scriptPath", "scriptServer", "scriptRights", "cachetimeout", "modules", "activeTypes", "types", "tools", "accessLevel", 'loginMethod', 'loginSearchSuffix', 'loginSearchFilter', 'searchLimit', 'lamProMailFrom', 'lamProMailReplyTo', 'lamProMailSubject', @@ -625,6 +628,7 @@ class LAMConfig { if (!in_array("ServerURL", $saved)) array_push($file_array, "\n\n# server address (e.g. ldap://localhost:389 or ldaps://localhost:636)\n" . "serverURL: " . $this->ServerURL . "\n"); if (!in_array("useTLS", $saved)) array_push($file_array, "\n\n# enable TLS encryption\n" . "useTLS: " . $this->useTLS . "\n"); if (!in_array("followReferrals", $saved)) array_push($file_array, "\n\n# follow referrals\n" . "followReferrals: " . $this->followReferrals . "\n"); + if (!in_array("pagedResults", $saved)) array_push($file_array, "\n\n# paged results\n" . "pagedResults: " . $this->pagedResults . "\n"); if (!in_array("Passwd", $saved)) array_push($file_array, "\n\n# password to change these preferences via webfrontend\n" . "passwd: " . $this->Passwd . "\n"); if (!in_array("Admins", $saved)) array_push($file_array, "\n\n# list of users who are allowed to use LDAP Account Manager\n" . "# names have to be seperated by semicolons\n" . @@ -777,6 +781,24 @@ class LAMConfig { $this->followReferrals = $followReferrals; } + /** + * Returns if paged results should be used. + * + * @return String true or false + */ + public function getPagedResults() { + return $this->pagedResults; + } + + /** + * Sets if paged results should be used. + * + * @param String $pagedResults true or false + */ + public function setPagedResults($pagedResults) { + $this->pagedResults = $pagedResults; + } + /** * Returns an array of string with all admin names * diff --git a/lam/lib/types/group.inc b/lam/lib/types/group.inc index f56f8689..b1041854 100644 --- a/lam/lib/types/group.inc +++ b/lam/lib/types/group.inc @@ -405,6 +405,9 @@ class lamGroupList extends lamList { $module_filter = get_ldap_filter($scope); // basic filter is provided by modules $attrs = array( "uid" ); for ($i = 0; $i < sizeof($this->entries); $i++) { + if (empty($this->entries[$i]['gidnumber'][0])) { + continue; + } $gid = $this->entries[$i]['gidnumber'][0]; $filter = "(&(&" . $module_filter . ")(gidNumber=" . $gid . "))"; $entries = searchLDAPByFilter($filter, $attrs, array($scope)); diff --git a/lam/templates/config/confmain.php b/lam/templates/config/confmain.php index b15d187c..40b151dd 100644 --- a/lam/templates/config/confmain.php +++ b/lam/templates/config/confmain.php @@ -270,7 +270,10 @@ if (isLAMProVersion()) { $advancedOptionsContent = new htmlTable(); // referrals $followReferrals = ($conf->getFollowReferrals() === 'true'); -$advancedOptionsContent->addElement(new htmlTableExtendedInputCheckbox('followReferrals',$followReferrals , _('Follow referrals'), '205'), true); +$advancedOptionsContent->addElement(new htmlTableExtendedInputCheckbox('followReferrals', $followReferrals , _('Follow referrals'), '205'), true); +// paged results +$pagedResults = ($conf->getPagedResults() === 'true'); +$advancedOptionsContent->addElement(new htmlTableExtendedInputCheckbox('pagedResults', $pagedResults , _('Paged results'), '266'), true); // build advanced options box $advancedOptions = new htmlAccordion('advancedOptions_server', array(_('Advanced options') => $advancedOptionsContent), false); @@ -509,6 +512,12 @@ function checkInput() { else { $conf->setFollowReferrals('false'); } + if (isset($_POST['pagedResults']) && ($_POST['pagedResults'] == 'on')) { + $conf->setPagedResults('true'); + } + else { + $conf->setPagedResults('false'); + } /* if (!$conf->set_cacheTimeout($_POST['cachetimeout'])) { $errors[] = array("ERROR", _("Cache timeout is invalid!")); }*/