Author: baggins Date: Sun Feb 14 12:17:57 2010 GMT
Module: packages Tag: HEAD
---- Log message:
- add sizelimit config option for LDAP searches
---- Files affected:
packages/ldap-account-manager:
ldap-account-manager-sizelimit.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: packages/ldap-account-manager/ldap-account-manager-sizelimit.patch
diff -u /dev/null
packages/ldap-account-manager/ldap-account-manager-sizelimit.patch:1.1
--- /dev/null Sun Feb 14 13:17:57 2010
+++ packages/ldap-account-manager/ldap-account-manager-sizelimit.patch Sun Feb
14 13:17:52 2010
@@ -0,0 +1,706 @@
+diff -ur ldap-account-manager-2.9.0/lib/account.inc
ldap-account-manager-2.9.0-limit/lib/account.inc
+--- ldap-account-manager-2.9.0/lib/account.inc 2010-02-14 12:59:38.518724527
+0100
++++ ldap-account-manager-2.9.0-limit/lib/account.inc 2010-02-14
12:35:31.948722137 +0100
+@@ -310,7 +310,7 @@
+ if ($server == null) {
+ $server = $_SESSION['ldap']->server();
+ }
+- $sr = @ldap_search($server, escapeDN($suffix),
"objectClass=sambaDomain", $attr, 0, 0, 0, LDAP_DEREF_NEVER);
++ $sr = @ldap_search($server, escapeDN($suffix),
"objectClass=sambaDomain", $attr, 0, $_SESSION['config']->get_sizeLimit(), 0,
LDAP_DEREF_NEVER);
+ if ($sr) {
+ $units = ldap_get_entries($server, $sr);
+ // delete count entry
+@@ -566,7 +566,7 @@
+ }
+ for ($s = 0; $s < sizeof($scopes); $s++) {
+ // search LDAP
+- $sr = @ldap_search($_SESSION['ldap']->server(),
$_SESSION['config']->get_Suffix($scopes[$s]), $filter, $attributes, 0, 0, 0,
LDAP_DEREF_NEVER);
++ $sr = @ldap_search($_SESSION['ldap']->server(),
$_SESSION['config']->get_Suffix($scopes[$s]), $filter, $attributes, 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if ($sr) {
+ $entries =
ldap_get_entries($_SESSION['ldap']->server(), $sr);
+ if ($entries) {
+diff -ur ldap-account-manager-2.9.0/lib/cache.inc
ldap-account-manager-2.9.0-limit/lib/cache.inc
+--- ldap-account-manager-2.9.0/lib/cache.inc 2009-11-26 14:32:48.000000000
+0100
++++ ldap-account-manager-2.9.0-limit/lib/cache.inc 2010-02-14
12:35:48.732721999 +0100
+@@ -146,7 +146,7 @@
+ // Get Data from ldap
+ $search = $this->attributes[$scope];
+ $search[] = 'objectClass';
+- $result =
@ldap_search($_SESSION['ldap']->server(), escapeDN($suffix), 'objectClass=*',
$search, 0, 0, 0, LDAP_DEREF_NEVER);
++ $result =
@ldap_search($_SESSION['ldap']->server(), escapeDN($suffix), 'objectClass=*',
$search, 0, $_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if ($result) {
+ // Write search result in array
+ $entry =
@ldap_first_entry($_SESSION['ldap']->server(), $result);
+diff -ur ldap-account-manager-2.9.0/lib/config.inc
ldap-account-manager-2.9.0-limit/lib/config.inc
+--- ldap-account-manager-2.9.0/lib/config.inc 2010-02-14 12:59:38.518724527
+0100
++++ ldap-account-manager-2.9.0-limit/lib/config.inc 2010-02-14
12:18:16.795969880 +0100
+@@ -224,6 +224,9 @@
+ /** LDAP cache timeout */
+ private $cachetimeout;
+
++ /** LDAP search size limit */
++ private $sizelimit;
++
+ /** Active account types */
+ private $activeTypes = "user,group,host,smbDomain";
+
+@@ -244,7 +247,7 @@
+
+ /** List of all settings in config file */
+ private $settings = array("ServerURL", "useTLS", "Passwd", "Admins",
"treesuffix",
+- "defaultLanguage", "scriptPath", "scriptServer",
"scriptRights", "cachetimeout",
++ "defaultLanguage", "scriptPath", "scriptServer",
"scriptRights", "cachetimeout", "sizelimit",
+ "modules", "activeTypes", "types", "accessLevel",
'loginMethod', 'loginSearchSuffix',
+ 'loginSearchFilter');
+
+@@ -389,6 +392,7 @@
+ if (!in_array("scriptServer", $saved))
array_push($file_array, "\n\n# Servers of external script\n" . "scriptServer: "
. $this->scriptServer . "\n");
+ if (!in_array("scriptRights", $saved))
array_push($file_array, "\n\n# Access rights for home directories\n" .
"scriptRights: " . $this->scriptRights . "\n");
+ if (!in_array("cachetimeout", $saved))
array_push($file_array, "\n\n# Number of minutes LAM caches LDAP searches.\n" .
"cacheTimeout: " . $this->cachetimeout . "\n");
++ if (!in_array("sizelimit", $saved))
array_push($file_array, "\n\n# Number of entries fetched in LDAP searches.\n" .
"sizeLimit: " . $this->sizelimit . "\n");
+ if (!in_array("activeTypes", $saved))
array_push($file_array, "\n\n# List of active account types.\n" . "activeTypes:
" . $this->activeTypes . "\n");
+ if (!in_array("accessLevel", $saved))
array_push($file_array, "\n\n# Access level for this profile.\n" .
"accessLevel: " . $this->accessLevel . "\n");
+ if (!in_array("loginMethod", $saved))
array_push($file_array, "\n\n# Login method.\n" . "loginMethod: " .
$this->loginMethod . "\n");
+@@ -793,6 +797,16 @@
+ }
+
+ /**
++ * Returns the LDAP search size limit in entries
++ *
++ * @return integer size limit
++ */
++ public function get_sizeLimit() {
++ if (isset($this->sizelimit)) return $this->sizelimit;
++ else return 0;
++ }
++
++ /**
+ * Sets the LDAP cache timeout in minutes (0,1,2,5,10,15)
+ *
+ * @param integer $value new cache timeout
+@@ -807,6 +821,20 @@
+ }
+
+ /**
++ * Sets the LDAP search size limit in entries
++ *
++ * @param integer $value new size limit
++ * @return boolean true if $value has correct format
++ */
++ public function set_sizeLimit($value) {
++ if (is_numeric($value) && ($value > -1)) {
++ $this->sizelimit = $value;
++ }
++ else return false;
++ return true;
++ }
++
++ /**
+ * Returns an array of all selected account modules
+ *
+ * @param string $scope account type
+diff -ur ldap-account-manager-2.9.0/lib/export.inc
ldap-account-manager-2.9.0-limit/lib/export.inc
+--- ldap-account-manager-2.9.0/lib/export.inc 2009-10-28 17:35:23.000000000
+0100
++++ ldap-account-manager-2.9.0-limit/lib/export.inc 2010-02-14
12:37:25.690972919 +0100
+@@ -281,11 +281,11 @@
+
+ // get the data to be exported
+ if( $this->scope == 'base' )
+- $this->results = @ldap_read($this->ds, $this->base_dn,
$this->queryFilter,$this->attributes);
++ $this->results = @ldap_read($this->ds, $this->base_dn,
$this->queryFilter,$this->attributes, 0, $_SESSION['config']->get_sizeLimit(),
0, LDAP_DEREF_NEVER);
+ elseif( $this->scope == 'one' )
+- $this->results = @ldap_list($this->ds, $this->base_dn,
$this->queryFilter, $this->attributes);
++ $this->results = @ldap_list($this->ds, $this->base_dn,
$this->queryFilter, $this->attributes, 0, $_SESSION['config']->get_sizeLimit(),
0, LDAP_DEREF_NEVER);
+ else // scope == 'sub'
+- $this->results = @ldap_search($this->ds, $this->base_dn,
$this->queryFilter, $this->attributes, 0, 0, 0, LDAP_DEREF_NEVER);
++ $this->results = @ldap_search($this->ds, $this->base_dn,
$this->queryFilter, $this->attributes, 0, $_SESSION['config']->get_sizeLimit(),
0, LDAP_DEREF_NEVER);
+
+ // if no result, there is a something wrong
+ if( ! $this->results )
+diff -ur ldap-account-manager-2.9.0/lib/lamdaemon.inc
ldap-account-manager-2.9.0-limit/lib/lamdaemon.inc
+--- ldap-account-manager-2.9.0/lib/lamdaemon.inc 2009-10-27
19:45:22.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/lib/lamdaemon.inc 2010-02-14
12:38:12.824973201 +0100
+@@ -51,7 +51,7 @@
+ $handle = @ssh2_connect($server);
+ }
+ if ($handle) {
+- $sr = @ldap_read($_SESSION['ldap']->server(), $credentials[0],
"objectClass=posixAccount", array('uid'));
++ $sr = @ldap_read($_SESSION['ldap']->server(), $credentials[0],
"objectClass=posixAccount", array('uid'), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if (!$sr) {
+ $return = array("ERROR," . _("Your LAM admin user must
be a valid Unix account to work with lamdaemon!") . ",");
+ return $return;
+diff -ur ldap-account-manager-2.9.0/lib/ldap.inc
ldap-account-manager-2.9.0-limit/lib/ldap.inc
+--- ldap-account-manager-2.9.0/lib/ldap.inc 2010-02-14 12:59:38.548720793
+0100
++++ ldap-account-manager-2.9.0-limit/lib/ldap.inc 2010-02-14
12:38:30.433719189 +0100
+@@ -135,7 +135,7 @@
+ */
+ function search_units($suffix) {
+ $ret = array();
+- $sr = @ldap_search($this->server(), escapeDN($suffix),
"objectClass=organizationalunit", array("DN"), 0, 0, 0, LDAP_DEREF_NEVER);
++ $sr = @ldap_search($this->server(), escapeDN($suffix),
"objectClass=organizationalunit", array("DN"), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if ($sr) {
+ $units = ldap_get_entries($this->server, $sr);
+ unset($units['count']);
+diff -ur ldap-account-manager-2.9.0/lib/lists.inc
ldap-account-manager-2.9.0-limit/lib/lists.inc
+--- ldap-account-manager-2.9.0/lib/lists.inc 2009-12-06 19:34:24.000000000
+0100
++++ ldap-account-manager-2.9.0-limit/lib/lists.inc 2010-02-14
12:38:45.041722448 +0100
+@@ -826,7 +826,7 @@
+ $module_filter = get_ldap_filter($this->type); // basic filter
is provided by modules
+ $filter = "(&" . $module_filter . ")";
+ $attrs = $this->attrArray;
+- $sr = @ldap_search($_SESSION["ldap"]->server(),
escapeDN($this->suffix), $filter, $attrs, 0, 0, 0, LDAP_DEREF_NEVER);
++ $sr = @ldap_search($_SESSION["ldap"]->server(),
escapeDN($this->suffix), $filter, $attrs, 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if (ldap_errno($_SESSION["ldap"]->server()) == 4) {
+ StatusMessage("WARN", _("LDAP sizelimit exceeded, not
all entries are shown."), _("See the manual for instructions to solve this
problem."));
+ }
+diff -ur ldap-account-manager-2.9.0/lib/modules/asteriskAccount.inc
ldap-account-manager-2.9.0-limit/lib/modules/asteriskAccount.inc
+--- ldap-account-manager-2.9.0/lib/modules/asteriskAccount.inc 2009-12-16
19:56:51.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/lib/modules/asteriskAccount.inc
2010-02-14 12:39:02.517970188 +0100
+@@ -222,7 +222,7 @@
+ $filter = '(& (objectClass=AsteriskSIPUser)
(AstAccountCallerID=' . $this->attributes['AstAccountCallerID'][0] .'))';
+ $ldapc = $_SESSION['ldap']->server();
+ $attributes = array("DN", "AstAccountCallerID");
+- $res =
ldap_search($ldapc,$searchroot,$filter,$attributes,0,0,0,LDAP_DEREF_NEVER);
++ $res =
ldap_search($ldapc,$searchroot,$filter,$attributes,0,$_SESSION['config']->get_sizeLimit(),0,LDAP_DEREF_NEVER);
+ if (!$res) {
+ return array(array("ERROR", _("Unable
to load LDAP entry:") . " " .$searchroot,
ldap_error($_SESSION['ldap']->server())));
+ }
+diff -ur ldap-account-manager-2.9.0/lib/modules/asteriskExtension.inc
ldap-account-manager-2.9.0-limit/lib/modules/asteriskExtension.inc
+--- ldap-account-manager-2.9.0/lib/modules/asteriskExtension.inc
2009-12-16 19:56:51.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/lib/modules/asteriskExtension.inc
2010-02-14 12:39:19.805970325 +0100
+@@ -256,7 +256,7 @@
+ $filter = 'objectClass=AsteriskSIPUser';
+ $ldapc = $_SESSION['ldap']->server();
+ $attributes = array("DN", "cn");
+- $res =
ldap_search($ldapc,$searchroot,$filter,$attributes,0,0,0,LDAP_DEREF_NEVER);
++ $res =
ldap_search($ldapc,$searchroot,$filter,$attributes,0,$_SESSION['config']->get_sizeLimit(),0,LDAP_DEREF_NEVER);
+ if (!$res) {
+ return array(array("ERROR", _("Unable to load LDAP
entry:") . " " .$searchroot, ldap_error($_SESSION['ldap']->server())));
+ }
+@@ -355,7 +355,7 @@
+ $filter = '(& (objectClass=AsteriskExtension)
(AstExtension=' . $this->attributes['AstExtension'][0] .') (AstPriority=' .
$this->attributes['AstPriority'][0] .') )';
+ $ldapc = $_SESSION['ldap']->server();
+ $attributes = array("DN");
+- $res =
ldap_search($ldapc,$searchroot,$filter,$attributes,0,0,0,LDAP_DEREF_NEVER);
++ $res =
ldap_search($ldapc,$searchroot,$filter,$attributes,0,$_SESSION['config']->get_sizeLimit(),0,LDAP_DEREF_NEVER);
+ if (!$res) {
+ return array(array("ERROR", _("Unable to load
LDAP entry:") . " " .$searchroot, ldap_error($_SESSION['ldap']->server())));
+ }
+diff -ur ldap-account-manager-2.9.0/lib/modules/ddns.inc
ldap-account-manager-2.9.0-limit/lib/modules/ddns.inc
+--- ldap-account-manager-2.9.0/lib/modules/ddns.inc 2009-11-24
19:54:43.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/lib/modules/ddns.inc 2010-02-14
12:39:29.047722523 +0100
+@@ -187,7 +187,7 @@
+ $ldap = $_SESSION['ldap']->server();
+ $dn = $_SESSION['config']->get_suffix('dhcp');
+
+- $search =
@ldap_search($ldap,$dn,"dhcpStatements=ddns-update-style interim", array(), 0,
0, 0, LDAP_DEREF_NEVER);
++ $search =
@ldap_search($ldap,$dn,"dhcpStatements=ddns-update-style interim", array(), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if ($search) {
+ $info = @ldap_get_entries($ldap,$search);
+ if ($info && ($info['count'] > 0)) {
+diff -ur ldap-account-manager-2.9.0/lib/modules/fixed_ip.inc
ldap-account-manager-2.9.0-limit/lib/modules/fixed_ip.inc
+--- ldap-account-manager-2.9.0/lib/modules/fixed_ip.inc 2009-11-25
13:08:08.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/lib/modules/fixed_ip.inc 2010-02-14
12:39:49.680721831 +0100
+@@ -195,7 +195,7 @@
+ if
($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp'))
{
+
+ $sr =
@ldap_search($_SESSION['ldap']->server(),'cn='.$this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0].','.$_SESSION['config']->get_suffix('dhcp'),
+- '(objectClass=dhcpHost)', array(), 0, 0, 0,
LDAP_DEREF_NEVER);
++ '(objectClass=dhcpHost)', array(), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if ($sr) {
+ $entries =
ldap_get_entries($_SESSION['ldap']->server(), $sr);
+ if ($entries) {
+@@ -353,7 +353,7 @@
+ foreach($this->fixed_ip AS $id=>$arr) {
+ // pc name
+ $result =
@ldap_search($_SESSION['ldap']->server(),"cn=".$this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0].",".$_SESSION['config']->get_Suffix('dhcp'),
+-
'(cn='.$_POST['pc_'.$id].')', array(), 0, 0, 0, LDAP_DEREF_NEVER);
++
'(cn='.$_POST['pc_'.$id].')', array(), 0, $_SESSION['config']->get_sizeLimit(),
0, LDAP_DEREF_NEVER);
+ $num = (@ldap_get_entries($_SESSION['ldap']->server(),
$result)=="")?0:ldap_get_entries($_SESSION['ldap']->server(), $result);
+ $pcError = "";
+ if (!$this->processed) {
+diff -ur ldap-account-manager-2.9.0/lib/modules/kolabUser.inc
ldap-account-manager-2.9.0-limit/lib/modules/kolabUser.inc
+--- ldap-account-manager-2.9.0/lib/modules/kolabUser.inc 2009-10-28
17:35:22.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/lib/modules/kolabUser.inc 2010-02-14
12:40:06.587970654 +0100
+@@ -824,7 +824,7 @@
+ // delegates
+ if (in_array('kolabDelegate', $fields)) {
+ $delegates = array();
+- $sr = @ldap_search($_SESSION['ldapHandle'],
escapeDN($this->selfServiceSettings->LDAPSuffix),
'(&(objectClass=inetOrgPerson)(mail=*))', array('mail'), 0, 0, 0,
LDAP_DEREF_NEVER);
++ $sr = @ldap_search($_SESSION['ldapHandle'],
escapeDN($this->selfServiceSettings->LDAPSuffix),
'(&(objectClass=inetOrgPerson)(mail=*))', array('mail'), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if ($sr) {
+ $result =
ldap_get_entries($_SESSION['ldapHandle'], $sr);
+ for ($i = 0; $i < $result['count']; $i++) {
+diff -ur ldap-account-manager-2.9.0/lib/modules/phpGroupwareUser.inc
ldap-account-manager-2.9.0-limit/lib/modules/phpGroupwareUser.inc
+--- ldap-account-manager-2.9.0/lib/modules/phpGroupwareUser.inc
2009-11-24 12:39:41.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/lib/modules/phpGroupwareUser.inc
2010-02-14 12:40:29.111722141 +0100
+@@ -321,7 +321,7 @@
+ (in_array('phpgwAccount', $this->orig['objectClass'])
&& !in_array('phpgwAccount', $this->attributes['objectClass']))) {
+ $dn = $this->getAccountContainer()->finalDN;
+ $myattributes = array_merge(array('objectClass'),
$this->meta['attributes']);
+- $sr = @ldap_read($_SESSION['ldap']->server(), $dn,
'objectClass=*', $myattributes);
++ $sr = @ldap_read($_SESSION['ldap']->server(), $dn,
'objectClass=*', $myattributes, 0, $_SESSION['config']->get_sizeLimit(), 0,
LDAP_DEREF_NEVER);
+ if (!$sr) {
+ StatusMessage('ERROR', sprintf(_('Was unable to
remove attribtues from DN: %s.'), $dn),
ldap_error($_SESSION['ldap']->server()));
+ return;
+diff -ur ldap-account-manager-2.9.0/lib/modules.inc
ldap-account-manager-2.9.0-limit/lib/modules.inc
+--- ldap-account-manager-2.9.0/lib/modules.inc 2009-11-26 00:07:28.000000000
+0100
++++ ldap-account-manager-2.9.0-limit/lib/modules.inc 2010-02-14
12:40:50.992721873 +0100
+@@ -1624,7 +1624,7 @@
+ $this->module = array();
+ $modules = $_SESSION['config']->get_AccountModules($this->type);
+ $search = substr($dn, 0, strpos($dn, ','));
+- $result = @ldap_read($_SESSION['ldap']->server(),
escapeDN($dn), escapeDN($search), array(), 0, 0, 0, LDAP_DEREF_NEVER); // TODO
use ldap_read()
++ $result = @ldap_read($_SESSION['ldap']->server(),
escapeDN($dn), escapeDN($search), array(), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER); // TODO use
ldap_read()
+ if (!$result) {
+ return array(array("ERROR", _("Unable to load LDAP
entry:") . " " . $dn, ldap_error($_SESSION['ldap']->server())));
+ }
+diff -ur ldap-account-manager-2.9.0/lib/schema.inc
ldap-account-manager-2.9.0-limit/lib/schema.inc
+--- ldap-account-manager-2.9.0/lib/schema.inc 2009-11-21 14:52:32.000000000
+0100
++++ ldap-account-manager-2.9.0-limit/lib/schema.inc 2010-02-14
12:42:12.138972923 +0100
+@@ -1269,7 +1269,7 @@
+ if( $debug ) echo "<pre>";
+ $ds = $_SESSION['ldap']->server();
+
+- $search = @ldap_read( $ds, $dn, 'objectClass=*', array(
'subschemaSubentry' ) );
++ $search = @ldap_read( $ds, $dn, 'objectClass=*', array(
'subschemaSubentry' ), 0, $_SESSION['config']->get_sizeLimit(), 0,
LDAP_DEREF_NEVER );
+ if( $debug ) { echo "Search result (ldap_read): "; var_dump( $search );
echo "\n"; }
+ if( ! $search ) {
+ if( $debug ) echo "_get_schema_dn() returning false. (search
val is false)\n";
+@@ -1362,7 +1362,7 @@
+ if( $schema_dn ) {
+ if( $debug ) { echo "Found the schema DN: "; var_dump(
$schema_dn ); echo "\n"; }
+ $schema_search = @ldap_read( $ds, $schema_dn, '(objectClass=*)',
+- array( $schema_to_fetch
), 0, 0, 0,
++ array( $schema_to_fetch
), 0, $_SESSION['config']->get_sizeLimit(), 0,
+ LDAP_DEREF_ALWAYS );
+
+ // Were we not able to fetch the schema from the $schema_dn?
+@@ -1374,7 +1374,7 @@
+
+ // Try again with a different filter (some servers require
(objectClass=subschema) like M-Vault)
+ $schema_search = @ldap_read( $ds, $schema_dn,
'(objectClass=subschema)',
+- array( $schema_to_fetch ), 0, 0, 0,
++ array( $schema_to_fetch ), 0,
$_SESSION['config']->get_sizeLimit(), 0,
+ LDAP_DEREF_ALWAYS );
+ $schema_entries = @ldap_get_entries( $ds, $schema_search );
+
+@@ -1405,7 +1405,7 @@
+ if( $debug ) echo "Attempting with cn=subschema
(OpenLDAP)...\n";
+ // try with the standard DN
+ $schema_search = @ldap_read($ds, 'cn=subschema',
'(objectClass=*)',
+- array( $schema_to_fetch ), 0, 0, 0,
LDAP_DEREF_ALWAYS );
++ array( $schema_to_fetch ), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_ALWAYS );
+ }
+
+ // cn=schema for Novell eDirectory
+@@ -1413,7 +1413,7 @@
+ if( $debug ) echo "Attempting with cn=schema (Novell)...\n";
+ // try again, with a different schema DN
+ $schema_search = @ldap_read($ds, 'cn=schema', '(objectClass=*)',
+- array( $schema_to_fetch ), 0, 0, 0,
LDAP_DEREF_ALWAYS );
++ array( $schema_to_fetch ), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_ALWAYS );
+ }
+
+ // cn=schema,cn=configuration,dc=example,dc=com for ActiveDirectory
+@@ -1426,7 +1426,7 @@
+ if( $debug ) echo "Attempting with
cn=schema,cn=configuration,$base_dn (ActiveDirectory)...\n";
+ if( $base_dn != null )
+ $schema_search = @ldap_read($ds,
'cn=schema,cn=configuration,' . $base_dn, '(objectClass=*)',
+- array( $schema_to_fetch ), 0, 0, 0,
LDAP_DEREF_ALWAYS );
++ array( $schema_to_fetch ), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_ALWAYS );
+ }
+
+ // cn=Schema,ou=Admin,dc=example,dc=com for SiteServer
+@@ -1439,7 +1439,7 @@
+ if( $debug ) echo "Attempting with cn=Schema,ou=Admin,$base_dn
(ActiveDirectory)...\n";
+ if( $base_dn != null )
+ $schema_search = @ldap_read($ds, 'cn=Schema,ou=Admin,'
. $base_dn, '(objectClass=*)',
+- array( $schema_to_fetch ), 0, 0, 0,
LDAP_DEREF_ALWAYS );
++ array( $schema_to_fetch ), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_ALWAYS );
+ }
+
+ // Attempt to pull schema from Root DSE with scope "base"
+@@ -1448,7 +1448,7 @@
+ if( $debug ) echo "Attempting to pull schema from Root DSE with
scope \"base\"...\n";
+ if( $base_dn != null )
+ $schema_search = @ldap_read($ds, '', '(objectClass=*)',
+- array( $schema_to_fetch ), 0, 0, 0,
LDAP_DEREF_ALWAYS );
++ array( $schema_to_fetch ), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_ALWAYS );
+ $schema_entries = @ldap_get_entries( $ds, $schema_search );
+ if( ! isset( $schema_entries[0][$schema_to_fetch] ) )
+ $schema_search = null;
+@@ -1460,7 +1460,7 @@
+ if( $debug ) echo "Attempting to pull schema from Root DSE with
scope \"one\"...\n";
+ if( $base_dn != null )
+ $schema_search = @ldap_list($ds, '', '(objectClass=*)',
+- array( $schema_to_fetch ), 0, 0, 0,
LDAP_DEREF_ALWAYS );
++ array( $schema_to_fetch ), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_ALWAYS );
+ $schema_entries = @ldap_get_entries( $ds, $schema_search );
+ if( ! isset( $schema_entries[0][$schema_to_fetch] ) )
+ $schema_search = null;
+diff -ur ldap-account-manager-2.9.0/lib/tree.inc
ldap-account-manager-2.9.0-limit/lib/tree.inc
+--- ldap-account-manager-2.9.0/lib/tree.inc 2009-10-27 19:45:22.000000000
+0100
++++ ldap-account-manager-2.9.0-limit/lib/tree.inc 2010-02-14
12:55:50.859972953 +0100
+@@ -115,7 +115,7 @@
+ $expand_img = "../../graphics/plus.png";
+ $expand_alt = "+";
+ $child_count = count( get_container_contents(
+- $base_dn, 0,
++ $base_dn,
$_SESSION['config']->get_sizeLimit(),
+ '(objectClass=*)') );
+ if( $child_count > $limit )
+ $child_count = $limit . '+';
+@@ -225,7 +225,7 @@
+ */
+ function dn_exists( $dn )
+ {
+- $search_result = @ldap_read( $_SESSION['ldap']->server(), $dn,
'objectClass=*', array('dn') );
++ $search_result = @ldap_read( $_SESSION['ldap']->server(), $dn,
'objectClass=*', array('dn'), 0, $_SESSION['config']->get_sizeLimit(), 0,
LDAP_DEREF_NEVER );
+
+ if( ! $search_result )
+ return false;
+@@ -269,8 +269,11 @@
+ * @param string $filter (optional) An LDAP filter to apply when fetching
children, example: "(objectClass=inetOrgPerson)"
+ * @return array An array of DN strings listing the immediate children of the
specified entry.
+ */
+-function get_container_contents( $dn, $size_limit=0,
$filter='(objectClass=*)' )
++function get_container_contents( $dn, $size_limit, $filter='(objectClass=*)' )
+ {
++ if (!isset($size_limit)) {
++ $size_limit = $_SESSION['config']->get_sizeLimit();
++ }
+ $search = @ldap_list( $_SESSION['ldap']->server(), $dn, $filter, array(
'dn' ), 1, $size_limit, 0);
+ if( ! $search )
+ return array();
+@@ -452,7 +455,7 @@
+ */
+ function get_object_attr( $dn, $attr )
+ {
+- $search = @ldap_read( $_SESSION['ldap']->server(), $dn,
'(objectClass=*)', array( $attr ), 0, 0, 0 );
++ $search = @ldap_read( $_SESSION['ldap']->server(), $dn,
'(objectClass=*)', array( $attr ), 0, $_SESSION['config']->get_sizeLimit(), 0 );
+
+ if( ! $search )
+ return false;
+@@ -749,7 +752,7 @@
+ {
+
+ $conn = $_SESSION['ldap']->server();
+- $search = @ldap_read( $conn, $dn, '(objectClass=*)', array( ), 0, 0, 0,
$deref );
++ $search = @ldap_read( $conn, $dn, '(objectClass=*)', array( ), 0,
$_SESSION['config']->get_sizeLimit(), 0, $deref );
+
+ if( ! $search )
+ return false;
+@@ -913,7 +916,7 @@
+ $attrs = array( 'creatorsname', 'createtimestamp', 'modifiersname',
+ 'structuralObjectClass', 'entryUUID',
'modifytimestamp',
+ 'subschemaSubentry', 'hasSubordinates', '+' );
+- $search = @ldap_read( $conn, $dn, '(objectClass=*)', $attrs, 0, 0, 0,
$deref );
++ $search = @ldap_read( $conn, $dn, '(objectClass=*)', $attrs, 0,
$_SESSION['config']->get_sizeLimit(), 0, $deref );
+ if( ! $search )
+ return false;
+ $entry = ldap_first_entry( $conn, $search );
+@@ -1152,7 +1155,7 @@
+ $jpeg_temp_dir = $_SESSION['lampath'] . 'tmp';
+
+ $conn = $_SESSION['ldap']->server();
+- $search_result = ldap_read( $conn, $dn, 'objectClass=*', array(
$attr_name ) );
++ $search_result = ldap_read( $conn, $dn, 'objectClass=*', array(
$attr_name ), 0, $_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER );
+ $entry = ldap_first_entry( $conn, $search_result );
+
+ echo "<table $table_html_attrs><td><center>\n\n";
+@@ -1253,16 +1256,17 @@
+ function pla_ldap_search( $filter, $base_dn=null, $attrs=array(),
$scope='sub', $sort_results=true, $deref=LDAP_DEREF_ALWAYS )
+ {
+ $ds = $_SESSION['ldap']->server();
++ $slimit = $_SESSION['config']->get_sizeLimit();
+ switch( $scope ) {
+ case 'base':
+- $search = @ldap_read( $ds, $base_dn, $filter, $attrs,
0, 0, 0, $deref );
++ $search = @ldap_read( $ds, $base_dn, $filter, $attrs,
0, $slimit, 0, $deref );
+ break;
+ case 'one':
+- $search = @ldap_list( $ds, $base_dn, $filter, $attrs,
0, 0, 0, $deref );
++ $search = @ldap_list( $ds, $base_dn, $filter, $attrs,
0, $slimit, 0, $deref );
+ break;
+ case 'sub':
+ default:
+- $search = @ldap_search( $ds, $base_dn, $filter, $attrs,
0, 0, 0, $deref );
++ $search = @ldap_search( $ds, $base_dn, $filter, $attrs,
0, $slimit, 0, $deref );
+ break;
+ }
+
+diff -ur ldap-account-manager-2.9.0/lib/types/dhcp.inc
ldap-account-manager-2.9.0-limit/lib/types/dhcp.inc
+--- ldap-account-manager-2.9.0/lib/types/dhcp.inc 2009-10-28
17:36:24.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/lib/types/dhcp.inc 2010-02-14
12:45:57.006972105 +0100
+@@ -140,7 +140,7 @@
+ $ldap = $_SESSION['ldap'];
+ $suffix = $_SESSION['config']->get_Suffix('dhcp');
+
+- $sr =
@ldap_search($ldap->server(),"cn=".$entry['cn'][0].",".$suffix,"objectClass=dhcpHost",
array(), 0, 0, 0, LDAP_DEREF_NEVER);
++ $sr =
@ldap_search($ldap->server(),"cn=".$entry['cn'][0].",".$suffix,"objectClass=dhcpHost",
array(), 0, $_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if ($sr) {
+ $get = ldap_get_entries($ldap->server(),$sr);
+
+diff -ur ldap-account-manager-2.9.0/lib/types/group.inc
ldap-account-manager-2.9.0-limit/lib/types/group.inc
+--- ldap-account-manager-2.9.0/lib/types/group.inc 2009-11-24
16:28:08.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/lib/types/group.inc 2010-02-14
12:46:03.783721717 +0100
+@@ -242,7 +242,7 @@
+ for ($i = 0; $i < sizeof($this->entries); $i++) {
+ $gid = $this->entries[$i]['gidnumber'][0];
+ $filter = "(&(&" . $module_filter . ")(gidNumber=" .
$gid . "))";
+- $sr = @ldap_search($_SESSION["ldap"]->server(),
escapeDN($module_suffix), $filter, $attrs, 0, 0, 0, LDAP_DEREF_NEVER);
++ $sr = @ldap_search($_SESSION["ldap"]->server(),
escapeDN($module_suffix), $filter, $attrs, 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if (ldap_errno($_SESSION["ldap"]->server()) == 4) {
+ StatusMessage("WARN", _("LDAP sizelimit
exceeded, not all entries are shown."), _("See the manual for instructions to
solve this problem."));
+ $this->refresh_primary = true;
+diff -ur ldap-account-manager-2.9.0/lib/types/user.inc
ldap-account-manager-2.9.0-limit/lib/types/user.inc
+--- ldap-account-manager-2.9.0/lib/types/user.inc 2009-10-28
17:36:24.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/lib/types/user.inc 2010-02-14
12:46:17.906721870 +0100
+@@ -167,7 +167,7 @@
+ $grp_suffix = $_SESSION['config']->get_Suffix('group');
+ $filter = "objectClass=posixGroup";
+ $attrs = array("cn", "gidNumber");
+- $sr = @ldap_search($_SESSION["ldap"]->server(),
escapeDN($grp_suffix), $filter, $attrs, 0, 0, 0, LDAP_DEREF_NEVER);
++ $sr = @ldap_search($_SESSION["ldap"]->server(),
escapeDN($grp_suffix), $filter, $attrs, 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if ($sr) {
+ $info = @ldap_get_entries($_SESSION["ldap"]->server(),
$sr);
+ unset($info['count']); // delete count entry
+@@ -200,7 +200,7 @@
+ elseif ($attribute == "jpegphoto") {
+ if (sizeof($entry[$attribute][0]) < 100) {
+ // looks like we have read broken binary data,
reread photo
+- $result =
@ldap_search($_SESSION['ldap']->server(), escapeDN($entry['dn']), $attribute .
"=*", array($attribute), 0, 0, 0, LDAP_DEREF_NEVER);
++ $result =
@ldap_search($_SESSION['ldap']->server(), escapeDN($entry['dn']), $attribute .
"=*", array($attribute), 0, $_SESSION['config']->get_sizeLimit(), 0,
LDAP_DEREF_NEVER);
+ if ($result) {
+ $tempEntry =
@ldap_first_entry($_SESSION['ldap']->server(), $result);
+ if ($tempEntry) {
+diff -ur ldap-account-manager-2.9.0/templates/config/confmain.php
ldap-account-manager-2.9.0-limit/templates/config/confmain.php
+--- ldap-account-manager-2.9.0/templates/config/confmain.php 2010-02-14
12:59:38.543718828 +0100
++++ ldap-account-manager-2.9.0-limit/templates/config/confmain.php
2010-02-14 12:25:51.312720326 +0100
+@@ -276,6 +276,18 @@
+ if ($conf->get_cacheTimeout() != 15) echo("<option>15</option>\n");
+ echo ("</select></td>\n");
+ $tabindex++;
++
++// new line
++echo ("<tr><td colspan=3> </td></tr>");
++
++// tree suffix
++echo ("<tr><td align=\"right\"><b>".
++ _("Search size limit") . ": </b></td>".
++ "<td><input tabindex=\"$tabindex\" size=10 type=\"text\"
name=\"sizelimit\" value=\"" . $conf->get_sizeLimit('tree') . "\"></td>\n");
++echo "<td>";
++printHelpLink(getHelp('', '213'), '213');
++echo "</td></tr>\n";
++$tabindex++;
+ echo "<td>";
+ printHelpLink(getHelp('', '214'), '214');
+ echo "</td></tr>\n";
+@@ -535,6 +547,9 @@
+ if (!$conf->set_cacheTimeout($_POST['cachetimeout'])) {
+ $errors[] = array("ERROR", _("Cache timeout is invalid!"));
+ }
++ if (!$conf->set_sizeLimit($_POST['sizelimit'])) {
++ $errors[] = array("ERROR", _("Size limit is invalid!"));
++ }
+ if (isLAMProVersion()) {
+ $conf->setAccessLevel($_POST['accessLevel']);
+ }
+diff -ur ldap-account-manager-2.9.0/templates/delete.php
ldap-account-manager-2.9.0-limit/templates/delete.php
+--- ldap-account-manager-2.9.0/templates/delete.php 2009-10-28
17:35:41.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/templates/delete.php 2010-02-14
12:46:53.971969845 +0100
+@@ -254,7 +254,7 @@
+ */
+ function getChildCount($dn) {
+ $return = 0;
+- $sr = @ldap_search($_SESSION['ldap']->server(), escapeDN($dn),
'objectClass=*', array('dn'), 0, 0, 0, LDAP_DEREF_NEVER);
++ $sr = @ldap_search($_SESSION['ldap']->server(), escapeDN($dn),
'objectClass=*', array('dn'), 0, $_SESSION['config']->get_sizeLimit(), 0,
LDAP_DEREF_NEVER);
+ if ($sr) {
+ $entries = ldap_get_entries($_SESSION['ldap']->server(), $sr);
+ $return = $entries['count'] - 1;
+@@ -270,7 +270,7 @@
+ */
+ function deleteDN($dn) {
+ $errors = array();
+- $sr = @ldap_list($_SESSION['ldap']->server(), $dn, 'objectClass=*',
array('dn'), 0);
++ $sr = @ldap_list($_SESSION['ldap']->server(), $dn, 'objectClass=*',
array('dn'), 0, $_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if ($sr) {
+ $entries = ldap_get_entries($_SESSION['ldap']->server(), $sr);
+ for ($i = 0; $i < $entries['count']; $i++) {
+diff -ur ldap-account-manager-2.9.0/templates/initsuff.php
ldap-account-manager-2.9.0-limit/templates/initsuff.php
+--- ldap-account-manager-2.9.0/templates/initsuff.php 2009-11-24
16:19:38.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/templates/initsuff.php 2010-02-14
12:47:25.048972037 +0100
+@@ -58,7 +58,7 @@
+ // add entries
+ for ($i = 0; $i < sizeof($new_suff); $i++) {
+ // check if entry is already present
+- $info = @ldap_read($_SESSION['ldap']->server(),
escapeDN($new_suff[$i]), "objectclass=*", array('dn'), 0, 0, 0,
LDAP_DEREF_NEVER);
++ $info = @ldap_read($_SESSION['ldap']->server(),
escapeDN($new_suff[$i]), "objectclass=*", array('dn'), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ $res = @ldap_get_entries($_SESSION['ldap']->server(),
$info);
+ if ($res) continue;
+ $suff = $new_suff[$i];
+@@ -100,7 +100,7 @@
+ // create missing entries
+ for ($k = sizeof($subsuffs) -
1; $k >= 0; $k--) {
+ // check if subsuffix
is present
+- $info =
@ldap_read($_SESSION['ldap']->server(), escapeDN($subsuffs[$k]),
"objectclass=*", array('dn'), 0, 0, 0, LDAP_DEREF_NEVER);
++ $info =
@ldap_read($_SESSION['ldap']->server(), escapeDN($subsuffs[$k]),
"objectclass=*", array('dn'), 0, $_SESSION['config']->get_sizeLimit(), 0,
LDAP_DEREF_NEVER);
+ $res =
@ldap_get_entries($_SESSION['ldap']->server(), $info);
+ if (!$res) {
+ $suffarray =
explode(",", $subsuffs[$k]);
+diff -ur ldap-account-manager-2.9.0/templates/lists/userlink.php
ldap-account-manager-2.9.0-limit/templates/lists/userlink.php
+--- ldap-account-manager-2.9.0/templates/lists/userlink.php 2009-10-28
17:36:08.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/templates/lists/userlink.php
2010-02-14 12:47:36.448722065 +0100
+@@ -77,7 +77,7 @@
+ function search_username($name) {
+ $filter = "(uid=$name)";
+ $attrs = array();
+- $sr = @ldap_search($_SESSION['ldap']->server(),
escapeDN($_SESSION['config']->get_Suffix('user')), $filter, $attrs, 0, 0, 0,
LDAP_DEREF_NEVER);
++ $sr = @ldap_search($_SESSION['ldap']->server(),
escapeDN($_SESSION['config']->get_Suffix('user')), $filter, $attrs, 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if ($sr) {
+ $info = ldap_get_entries($_SESSION['ldap']->server(), $sr);
+ // return only first DN entry
+diff -ur ldap-account-manager-2.9.0/templates/login.php
ldap-account-manager-2.9.0-limit/templates/login.php
+--- ldap-account-manager-2.9.0/templates/login.php 2010-02-14
12:59:38.537718583 +0100
++++ ldap-account-manager-2.9.0-limit/templates/login.php 2010-02-14
12:47:52.654722303 +0100
+@@ -442,7 +442,7 @@
+ $searchError = _('Cannot connect to specified
LDAP server. Please try again.') . ' ' . @ldap_error($searchLDAP->server());
+ }
+ else {
+- $searchResult =
@ldap_search($searchLDAP->server(),
$_SESSION['config']->getLoginSearchSuffix(), $searchFilter, array('dn'), 0, 0,
0, LDAP_DEREF_NEVER);
++ $searchResult =
@ldap_search($searchLDAP->server(),
$_SESSION['config']->getLoginSearchSuffix(), $searchFilter, array('dn'), 0,
$_SESSION['config']->get_sizeLimit(), 0, LDAP_DEREF_NEVER);
+ if ($searchResult) {
+ $searchInfo =
@ldap_get_entries($searchLDAP->server(), $searchResult);
+ if ($searchInfo) {
+diff -ur ldap-account-manager-2.9.0/templates/main.php
ldap-account-manager-2.9.0-limit/templates/main.php
+--- ldap-account-manager-2.9.0/templates/main.php 2009-11-24
16:12:41.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/templates/main.php 2010-02-14
12:48:03.851722995 +0100
+@@ -49,7 +49,7 @@
+ // get list of active types
+ $types = $_SESSION['config']->get_ActiveTypes();
+ for ($i = 0; $i < sizeof($types); $i++) {
+- $info = @ldap_read($_SESSION['ldap']->server(),
escapeDN($conf->get_Suffix($types[$i])), "(objectClass=*)",
array('objectClass'), 0, 0, 0, LDAP_DEREF_NEVER);
++ $info = @ldap_read($_SESSION['ldap']->server(),
escapeDN($conf->get_Suffix($types[$i])), "(objectClass=*)",
array('objectClass'), 0, $_SESSION['config']->get_sizeLimit(), 0,
LDAP_DEREF_NEVER);
+ $res = @ldap_get_entries($_SESSION['ldap']->server(), $info);
+ if (!$res && !in_array($conf->get_Suffix($types[$i]), $new_suffs))
$new_suffs[] = $conf->get_Suffix($types[$i]);
+ }
+diff -ur ldap-account-manager-2.9.0/templates/ou_edit.php
ldap-account-manager-2.9.0-limit/templates/ou_edit.php
+--- ldap-account-manager-2.9.0/templates/ou_edit.php 2009-10-27
19:46:33.000000000 +0100
++++ ldap-account-manager-2.9.0-limit/templates/ou_edit.php 2010-02-14
12:48:26.214972014 +0100
+@@ -94,7 +94,7 @@
<<Diff was trimmed, longer than 597 lines>>
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit