Fix: better performance for openldap
This commit is contained in:
parent
0edba4b4a7
commit
6e616e1198
@ -1049,13 +1049,15 @@ class Adherent extends CommonObject
|
||||
/**
|
||||
* Load member from database
|
||||
*
|
||||
* @param int $rowid Id of object to load
|
||||
* @param string $ref To load member from its ref
|
||||
* @param int $fk_soc To load member from its link to third party
|
||||
* @param string $ref_ext External reference
|
||||
* @return int >0 if OK, 0 if not found, <0 if KO
|
||||
* @param int $rowid Id of object to load
|
||||
* @param string $ref To load member from its ref
|
||||
* @param int $fk_soc To load member from its link to third party
|
||||
* @param string $ref_ext External reference
|
||||
* @param bool $fetch_optionals To load optionals (extrafields)
|
||||
* @param bool $fetch_subscriptions To load member subscriptions
|
||||
* @return int >0 if OK, 0 if not found, <0 if KO
|
||||
*/
|
||||
function fetch($rowid,$ref='',$fk_soc='',$ref_ext='')
|
||||
function fetch($rowid,$ref='',$fk_soc='',$ref_ext='',$fetch_optionals=true,$fetch_subscriptions=true)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
@ -1160,10 +1162,14 @@ class Adherent extends CommonObject
|
||||
|
||||
// Retreive all extrafield
|
||||
// fetch optionals attributes and labels
|
||||
$this->fetch_optionals();
|
||||
if ($fetch_optionals) {
|
||||
$this->fetch_optionals();
|
||||
}
|
||||
|
||||
// Load other properties
|
||||
$result=$this->fetch_subscriptions();
|
||||
if ($fetch_subscriptions) {
|
||||
$result=$this->fetch_subscriptions();
|
||||
}
|
||||
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
@ -332,7 +332,9 @@ class AdherentType extends CommonObject
|
||||
* Return array of Member objects for member type this->id (or all if this->id not defined)
|
||||
*
|
||||
* @param string $excludefilter Filter to exclude
|
||||
* @param int $mode 0=Return array of member instance, 1=Return array of members id only
|
||||
* @param int $mode 0=Return array of member instance
|
||||
* 1=Return array of member instance without extra data
|
||||
* 2=Return array of members id only
|
||||
* @return mixed Array of members or -1 on error
|
||||
*/
|
||||
function listMembersForMemberType($excludefilter='', $mode=0)
|
||||
@ -355,10 +357,14 @@ class AdherentType extends CommonObject
|
||||
{
|
||||
if (! array_key_exists($obj->rowid, $ret))
|
||||
{
|
||||
if ($mode != 1)
|
||||
if ($mode < 2)
|
||||
{
|
||||
$memberstatic=new Adherent($this->db);
|
||||
$memberstatic->fetch($obj->rowid);
|
||||
if ($mode == 1) {
|
||||
$memberstatic->fetch($obj->rowid,'','','',false, false);
|
||||
} else {
|
||||
$memberstatic->fetch($obj->rowid);
|
||||
}
|
||||
$ret[$obj->rowid]=$memberstatic;
|
||||
}
|
||||
else $ret[$obj->rowid]=$obj->rowid;
|
||||
@ -457,7 +463,7 @@ class AdherentType extends CommonObject
|
||||
foreach($this->members as $key=>$val) // This is array of users for group into dolibarr database.
|
||||
{
|
||||
$member=new Adherent($this->db);
|
||||
$member->fetch($val->id);
|
||||
$member->fetch($val->id,'','','',false,false);
|
||||
$info2 = $member->_load_ldap_info();
|
||||
$valueofldapfield[] = $member->_load_ldap_dn($info2);
|
||||
}
|
||||
|
||||
@ -63,7 +63,7 @@ if (empty($reshook))
|
||||
|
||||
if ($result > 0)
|
||||
{
|
||||
$object->listMembersForMemberType();
|
||||
$object->listMembersForMemberType('', 1);
|
||||
|
||||
$info = $object->_load_ldap_info();
|
||||
$dn = $object->_load_ldap_dn($info);
|
||||
|
||||
@ -440,7 +440,7 @@ class InterfaceLdapsynchro extends DolibarrTriggers
|
||||
if ($object->typeid > 0)
|
||||
{
|
||||
$membertype->fetch($object->typeid);
|
||||
$membertype->listMembersForMemberType();
|
||||
$membertype->listMembersForMemberType('', 1);
|
||||
|
||||
$oldinfo=$membertype->_load_ldap_info();
|
||||
$olddn=$membertype->_load_ldap_dn($oldinfo);
|
||||
@ -560,7 +560,7 @@ class InterfaceLdapsynchro extends DolibarrTriggers
|
||||
*/
|
||||
$newmembertype=new AdherentType($this->db);
|
||||
$newmembertype->fetch($object->typeid);
|
||||
$newmembertype->listMembersForMemberType();
|
||||
$newmembertype->listMembersForMemberType('', 1);
|
||||
|
||||
$oldinfo=$newmembertype->_load_ldap_info();
|
||||
$olddn=$newmembertype->_load_ldap_dn($oldinfo);
|
||||
@ -586,7 +586,7 @@ class InterfaceLdapsynchro extends DolibarrTriggers
|
||||
*/
|
||||
$oldmembertype=new AdherentType($this->db);
|
||||
$oldmembertype->fetch($object->oldcopy->typeid);
|
||||
$oldmembertype->listMembersForMemberType();
|
||||
$oldmembertype->listMembersForMemberType('', 1);
|
||||
|
||||
$oldinfo=$oldmembertype->_load_ldap_info();
|
||||
$olddn=$oldmembertype->_load_ldap_dn($oldinfo);
|
||||
@ -684,7 +684,7 @@ class InterfaceLdapsynchro extends DolibarrTriggers
|
||||
*/
|
||||
$membertype=new AdherentType($this->db);
|
||||
$membertype->fetch($object->typeid);
|
||||
$membertype->listMembersForMemberType('a.rowid != ' . $object->id); // remove deleted member from the list
|
||||
$membertype->listMembersForMemberType('a.rowid != ' . $object->id, 1); // remove deleted member from the list
|
||||
|
||||
$oldinfo=$membertype->_load_ldap_info();
|
||||
$olddn=$membertype->_load_ldap_dn($oldinfo);
|
||||
@ -751,7 +751,7 @@ class InterfaceLdapsynchro extends DolibarrTriggers
|
||||
$object->oldcopy = clone $object;
|
||||
}
|
||||
|
||||
$object->oldcopy->listMembersForMemberType();
|
||||
$object->oldcopy->listMembersForMemberType('', 1);
|
||||
|
||||
$oldinfo=$object->oldcopy->_load_ldap_info();
|
||||
$olddn=$object->oldcopy->_load_ldap_dn($oldinfo);
|
||||
@ -765,7 +765,7 @@ class InterfaceLdapsynchro extends DolibarrTriggers
|
||||
$olddn = '';
|
||||
}
|
||||
|
||||
$object->listMembersForMemberType();
|
||||
$object->listMembersForMemberType('', 1);
|
||||
|
||||
$info=$object->_load_ldap_info();
|
||||
$dn=$object->_load_ldap_dn($info);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user