Exemplo n.º 1
0
			$desc['nom'] = $user["fullname"];
            $desc['statut'] = "1comite";
            $desc['login'] = $login;
            $desc['source'] = 'ldap';
            $desc['pass'] = '';
            $r = sql_insertq('spip_auteurs', $desc);
			$result = spip_query("SELECT * FROM spip_auteurs WHERE login="******" AND source='ldap'");
        }
        $row_auteur = spip_fetch_array($result);
        ### DBG
        fich_debug("DBG >> statut :".$row_auteur['statut']."\n");
        if ($row_auteur['statut'] == '0minirezo')
	    	$cookie_admin = "@".$session_login;

        $var_f = charger_fonction('session', 'inc');
        $cookie_session = $var_f($row_auteur);
        ### DBG
        fich_debug("DBG >> $cookie_session\n");
        // On poste le cookie de session
        spip_setcookie('spip_session', $cookie_session);
        // On loge l'authentification
        spip_log("login de $login depuis LCS");
    
        ////////////// test de recup des zones/groupes //////////////
        // dans un premier temps on ne s'occupe que des groupes principaux
        // pour les groupes secondaire, des verifs supplementaires seront a effectuer
        // #
        // # - on teste l'existence d'une zone d'acces restreint intitulee Profs ou Administratifs
        // # - on recupere les groupe d'appartenance du user
        // # - on verifie l'appartenance du user a la/les zone/s de meme intitule que le/les groupe/s
        // # - si il n'est pas dans la zone on l'ajoute
Exemplo n.º 2
0
/**

* Ajoute un utilisateur dans l'annuaire LDAP
* @Parametres

* @Return

*/

function add_user($uid,$nom,$prenom,$sexe,$naissance,$password,$employeeNumber){
	// Recuperer le gidNumber par defaut -> lcs-users (1000) ou slis (600)
	global $defaultgid,$domain,$defaultshell,$domainsid,$uidPolicy;
	global $attribut_pseudo;
	global $liste_caracteres_accentues, $liste_caracteres_desaccentues;

	fich_debug("================\n");
	fich_debug("add_user:\n");
	fich_debug("\$defaultgid=$defaultgid\n");
	fich_debug("\$domain=$domain\n");
	fich_debug("\$defaultshell=$defaultshell\n");
	fich_debug("\$domainsid=$domainsid\n");
	fich_debug("\$uidPolicy=$uidPolicy\n");

	global $pathscripts;
	fich_debug("\$pathscripts=$pathscripts\n");


	// crob_init(); Ne sert a rien !!!!
	//$nom=ereg_replace("[^a-z_-]","",strtolower(strtr(ereg_replace("Æ","AE",ereg_replace("æ","ae",ereg_replace("¼","OE",ereg_replace("½","oe","$nom"))))," 'ÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸","__AAAAAAACEEEEIIIINOOOOOSUUUUYYZaaaaaaceeeeiiiinoooooosuuuuyyz")));
	//$prenom=ereg_replace("[^a-z_-]","",strtolower(strtr(ereg_replace("Æ","AE",ereg_replace("æ","ae",ereg_replace("¼","OE",ereg_replace("½","oe","$prenom"))))," 'ÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸","__AAAAAAACEEEEIIIINOOOOOSUUUUYYZaaaaaaceeeeiiiinoooooosuuuuyyz")));
	//$nom=ereg_replace("[^a-z_ -]","",strtolower(strtr(ereg_replace("Æ","AE",ereg_replace("æ","ae",ereg_replace("¼","OE",ereg_replace("½","oe","$nom")))),"'ÂÄÀÁÃÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕئÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõø¨ûüùúýÿ¸","_AAAAAACEEEEIIIINOOOOOOSUUUUYYZaaaaaaceeeeiiiinooooooosuuuuyyz")));
	//$prenom=ereg_replace("[^a-z_ -]","",strtolower(strtr(ereg_replace("Æ","AE",ereg_replace("æ","ae",ereg_replace("¼","OE",ereg_replace("½","oe","$prenom")))),"'ÂÄÀÁÃÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕئÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõø¨ûüùúýÿ¸","_AAAAAACEEEEIIIINOOOOOOSUUUUYYZaaaaaaceeeeiiiinooooooosuuuuyyz")));
	$nom=preg_replace("/[^a-z_ -]/","",strtolower(strtr(preg_replace("/Æ/","AE",preg_replace("/æ/","ae",preg_replace("/¼/","OE",preg_replace("/½/","oe","$nom")))),"'$liste_caracteres_accentues","_$liste_caracteres_desaccentues")));
	$prenom=preg_replace("/[^a-z_ -]/","",strtolower(strtr(preg_replace("/Æ/","AE",preg_replace("/æ/","ae",preg_replace("/¼/","OE",preg_replace("/½/","oe","$prenom")))),"'$liste_caracteres_accentues","_$liste_caracteres_desaccentues")));

	$nom=ucfirst(strtolower($nom));
	$prenom=ucfirst(strtolower($prenom));

	fich_debug("\$nom=$nom\n");
	fich_debug("\$prenom=$prenom\n");


	// Recuperer un uidNumber:
	//$uidNumber=get_first_free_uidNumber();
	if(!get_first_free_uidNumber()){return false;exit();}
	$uidNumber=get_first_free_uidNumber();
	$rid=2*$uidNumber+1000;
	// On n'utilise plus ce $pgrid: on passe à 513
	$pgrid=2*$defaultgid+1001;

	fich_debug("\$uidNumber=$uidNumber\n");


	// Faut-il interdire les espaces dans le password? les apostrophes?
	// Comment le script ntlmpass.pl prend-il le parametre sans les apostrophes?

	//$ntlmpass=explode(" ",exec("$pathscripts/ntlmpass.pl '$password'"));
    echo "Preparation du mot de passe pour $nom $prenom\n";
    $ntlmpass=explode(" ",exec("export LC_ALL=\"fr_FR.UTF-8\";$pathscripts/ntlmpass.pl '$password'"));

	$sambaLMPassword=$ntlmpass[0];
	$sambaNTPassword=$ntlmpass[1];
    //$userPassword=exec("$pathscripts/unixPassword.pl '$password'");
    $userPassword=exec("export LC_ALL=\"fr_FR.UTF-8\";$pathscripts/unixPassword.pl '$password'");

	$attribut=array();
	$attribut["uid"]="$uid";
	$attribut["cn"]="$prenom $nom";

	//$attribut["givenName"]=strtolower($prenom).strtoupper(substr($nom,0,1));
	$attribut["givenName"]=ucfirst(strtolower($prenom));
	//$attribut["$attribut_pseudo"]=strtolower($prenom).strtoupper(substr($nom,0,1));
	$attribut["$attribut_pseudo"]=preg_replace("/ /","_",strtolower($prenom).strtoupper(substr($nom,0,1)));

	$attribut["sn"]="$nom";

	$attribut["mail"]="$uid@$domain";
	//$attribut["objectClass"]="top";
	/*
	// Comme la cle est toujours objectClass, cela pose un probleme: un seul attribut objectClass est ajoute (le dernier defini)
	$attribut["objectClass"]="posixAccount";
	$attribut["objectClass"]="shadowAccount";
	$attribut["objectClass"]="person";
	$attribut["objectClass"]="inetOrgPerson";
	$attribut["objectClass"]="sambaSamAccount";
	*/
	$attribut["objectClass"][0]="top";
	$attribut["objectClass"][1]="posixAccount";
	$attribut["objectClass"][2]="shadowAccount";
	$attribut["objectClass"][3]="person";
	$attribut["objectClass"][4]="inetOrgPerson";
	$attribut["objectClass"][5]="sambaSamAccount";

	$attribut["loginShell"]="$defaultshell";
	$attribut["uidNumber"]="$uidNumber";

	$attribut["gidNumber"]="$defaultgid";

	$attribut["homeDirectory"]="/home/$uid";
	$attribut["gecos"]="$prenom $nom,$naissance,$sexe,N";

	$attribut["sambaSID"]="$domainsid-$rid";
	//$attribut["sambaPrimaryGroupSID"]="$domainsid-$pgrid";
	$attribut["sambaPrimaryGroupSID"]="$domainsid-513";

	$attribut["sambaPwdMustChange"]="2147483647";
	$attribut["sambaPwdLastSet"]="1";
	$attribut["sambaAcctFlags"]="[U          ]";
	$attribut["sambaLMPassword"]="******";
	$attribut["sambaNTPassword"]="******";
	$attribut["userPassword"]="******";

	// IL faut aussi l'employeeNumber
	if("$employeeNumber"!=""){
		$attribut["employeeNumber"]="$employeeNumber";
	}

	$result=add_entry("uid=$uid","people",$attribut);

	if($result){
		/*
		// Reste a ajouter les autres attributs objectClass
		unset($attribut);
		$attribut=array();
		$attribut["objectClass"]="posixAccount";
		if(modify_attribut("uid=$uid","people", $attribut, "add")){
			unset($attribut);
			$attribut=array();
			$attribut["objectClass"]="shadowAccount";
			if(modify_attribut("uid=$uid","people", $attribut, "add")){
				unset($attribut);
				$attribut=array();
				$attribut["objectClass"]="person";
				if(modify_attribut("uid=$uid","people", $attribut, "add")){
					unset($attribut);
					$attribut=array();
					$attribut["objectClass"]="inetOrgPerson";
					if(modify_attribut("uid=$uid","people", $attribut, "add")){
						unset($attribut);
						$attribut=array();
						$attribut["objectClass"]="sambaSamAccount";
						if(modify_attribut("uid=$uid","people", $attribut, "add"))  return true;
						else return false;
					} else return false;
				} else return false;
			} else return false;
		} else return false;
		*/
		return true;
	} else return false;
}
Exemplo n.º 3
0
        fich_debug("DBG >> $cookie_session\n");
        // On poste le cookie de session
        spip_setcookie('spip_session', $cookie_session);
        // On loge l'authentification
        spip_log("login de $login depuis LCS");
    }
} elseif ( $action=="logout" ) {
    close_session($idpers);
    @define('_DIR_RESTREINT_ABS', 'ecrire/');
    include_once _DIR_RESTREINT_ABS.'inc_version.php';

    include_spip('inc/cookie');
    include_once  _DIR_RESTREINT_ABS.'auth/ldap.php';
    include_spip('inc/session');

    $result = spip_query("SELECT id_auteur FROM spip_auteurs WHERE login='******' AND source='ldap'");
    $row_auteur = spip_fetch_array($result);
    ### DBG
    fich_debug("DBG >> id auteur : ".$row_auteur['id_auteur']."\n");
    supprimer_sessions($row_auteur['id_auteur']);
    spip_setcookie('spip_session', '', 0);
} else fich_debug("DBG >> No login No logout\n");

#On redirige vesr la page d'accueil dans tous les cas
echo "<script language=\"JavaScript\" type=\"text/javascript\">\n";
echo "<!--\n";
echo "top.location.href = '../lcs/index.php?url_redirect=accueil.php';\n";
echo "//-->\n";
echo "</script>\n";
?>