forked from Wavyzz/dolibarr
Fix: Error when creating a group using posix class
This commit is contained in:
@@ -217,7 +217,11 @@ class InterfaceLdapsynchro
|
||||
|
||||
$info=$object->_load_ldap_info();
|
||||
$dn=$object->_load_ldap_dn($info);
|
||||
|
||||
|
||||
// Get a gid number for objectclass PosixGroup
|
||||
if(in_array('posixGroup',$info['objectclass']))
|
||||
$info['gidNumber'] = $ldap->getNextGroupGid();
|
||||
|
||||
$result=$ldap->add($dn,$info,$user);
|
||||
if ($result < 0)
|
||||
{
|
||||
|
||||
@@ -1316,6 +1316,33 @@ class Ldap
|
||||
if ($pagecodeto == 'UTF-8' && $conf->file->character_set_client == 'ISO-8859-1') $str=utf8_encode($str);
|
||||
return $str;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Return available value of group GID
|
||||
* \param
|
||||
* \return int gid number
|
||||
*/
|
||||
function getNextGroupGid() {
|
||||
global $conf;
|
||||
$search='('.$conf->global->LDAP_KEY_GROUPS.'=*)';
|
||||
$result = $this->search($this->groups,$search);
|
||||
if($result) {
|
||||
$c = $result['count'];
|
||||
$gids = array();
|
||||
for($i=0;$i<$c;$i++)
|
||||
{
|
||||
$gids[] = $result[$i]['gidnumber'][0];
|
||||
}
|
||||
rsort($gids);
|
||||
|
||||
|
||||
return $gids[0]+1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user