_("POSIX Support : La constante %{const} n'est pas définie."), 'level' => 'c' ); // Autres erreurs $GLOBALS['error_code']['POSIX_01']= array ( 'msg' => _("POSIX : L'attribut %{dependency} est introuvable. Impossible de générer l'attribut %{attr}."), 'level' => 'c' ); /* * Fin des données de configuration */ /* * Verification du support POSIX par ldapSaisie * * @author Benjamin Renard * * @retval boolean true si Samba est pleinement supporté, false sinon */ function LSaddon_posix_support() { $retval=true; $MUST_DEFINE_CONST= array( 'LS_POSIX_UID_ATTR', 'LS_POSIX_UIDNUMBER_ATTR', 'LS_POSIX_GIDNUMBER_ATTR', 'LS_POSIX_UIDNUMBER_MIN_VAL', 'LS_POSIX_GIDNUMBER_MIN_VAL', 'LS_POSIX_HOMEDIRECTORY' ); foreach($MUST_DEFINE_CONST as $const) { if ( constant($const) == '' ) { $GLOBALS['LSerror'] -> addErrorCode('POSIX_SUPPORT_O1',$const); $retval=false; } } return $retval; } /* * Generation de uidNumber * * @author Benjamin Renard * * @param[in] $ldapObject L'objet ldap * * @retval integer uidNumber ou false si il y a un problème durant la génération */ function generate_uidNumber($ldapObject) { $objects = $GLOBALS['LSldap'] -> search (LS_POSIX_UIDNUMBER_ATTR.'=*'); $uidNumber = LS_POSIX_UIDNUMBER_MIN_VAL; if (!is_array($objects)) return; foreach($objects as $object) { if($object['attrs'][LS_POSIX_UIDNUMBER_ATTR] > $uidNumber) $uidNumber = $object['attrs'][LS_POSIX_UIDNUMBER_ATTR]; } $uidNumber++; return $uidNumber; } /* * Generation de gidNumber * * @author Benjamin Renard * * @param[in] $ldapObject L'objet ldap * * @retval integer gidNumber ou false si il y a un problème durant la génération */ function generate_gidNumber($ldapObject) { $objects = $GLOBALS['LSldap'] -> search (LS_POSIX_GIDNUMBER_ATTR.'=*'); $gidNumber = LS_POSIX_GIDNUMBER_MIN_VAL; if (!is_array($objects)) return; foreach($objects as $object) { if($object['attrs'][LS_POSIX_GIDNUMBER_ATTR] > $gidNumber) $gidNumber = $object['attrs'][LS_POSIX_GIDNUMBER_ATTR]; } $gidNumber++; return $gidNumber; } /* * Generation de homeDirectory * * @author Benjamin Renard * * @param[in] $ldapObject L'objet ldap * * @retval string homeDirectory ou false si il y a un problème durant la génération */ function generate_homeDirectory($ldapObject) { if ( get_class($ldapObject -> attrs[ LS_POSIX_UID_ATTR ]) != 'LSattribute' ) { $GLOBALS['LSerror'] -> addErrorCode('POSIX_01',array('dependency' => 'uid', 'attr' => 'homeDirectory')); return; } $uid = $ldapObject -> attrs[ LS_POSIX_UID_ATTR ] -> getValue(); $home = LS_POSIX_HOMEDIRECTORY . $uid[0]; return $home; } ?>