/trunk/controleurs/CartoControleur.php |
---|
74,6 → 74,9 |
$zones = $cartographie->getCarteZones(); |
$this->chargerZonesNbre($id_annuaire,$zones, $niveau); |
$this->chargerZonesUrls($id_annuaire, $zones, $continent, $pays, $niveau); |
$cartographie->setCarteZones($zones); |
$cartographie->creerCarte(); |
120,9 → 123,10 |
private function chargerZonesUrls($id_annuaire, &$zones, $continent = null, $pays = null, $niveau = 0) { |
$url = new URL(Config::get('url_base')); |
$url->setVariableRequete('id_annuaire', $id_annuaire); |
//$url->setVariableRequete('m', 'annuaire_inscrits_carto'); |
$url->setVariableRequete('m', 'annuaire_recherche_inscrit_carto'); |
foreach ($zones as $id => &$infos) { |
switch ($niveau) { |
150,8 → 154,8 |
break; |
// niveau 2, si on a cliqué sur la france pour afficher les départements : |
case 1: |
$methode = 'annuaire_afficher_carte'; |
case 2: |
$url->setVariableRequete('m','annuaire_inscrits_carto'); |
$url->setVariableRequete('continent', $continent); |
$url->setVariableRequete('pays', $pays); |
$url->setVariableRequete('departement', $id); |
159,8 → 163,6 |
} |
$infos['url'] = sprintf($url, $id); |
} |
$url->unsetVariablesRequete(array('id_location','m','id_annuaire')); |
} |
/** |
311,7 → 313,7 |
// action par défaut, on renvoie les departements |
// TODO: changer ça, ça n'a pas de sens |
default: |
$nb_inscrits = $annuaire_controleur->chargerNombreAnnuaireListeInscritsParDepartement($id_annuaire); |
// $nb_inscrits = $annuaire_controleur->chargerNombreAnnuaireListeInscritsParDepartement($id_annuaire); |
break; |
} |
/trunk/controleurs/IdentificationControleur.php |
---|
31,98 → 31,5 |
return $this->getVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_identification',$donnees); |
} |
public function identificationOpenID($identifiant) { |
// crée une zone de stockage pour les données OpenID |
$store = new Auth_OpenID_FileStore('./oid_store'); |
// crée un consommateur OpenID |
$consumer = new Auth_OpenID_Consumer($store); |
if ($_COOKIE['h_infos'] == null) { |
// vérifie les valeurs du formulaire |
if (trim($identifiant == '')) { |
$_SESSION['id'] = 0 ; |
die("ERROR: Entrez un OpenID valide svp."); |
} |
} else { |
// dans le cas ou un cookie du site est déjà présent |
$str_infos_client = $_COOKIE['h_infos']; |
$infos_client = unserialize(stripslashes($str_infos_client)); |
// on vérifie son contenu et on le compare à ce qui est en cours |
if ($infos_client['h_browser'] == md5($_SESSION['HTTP_USER_AGENT']) && $infos_client['h_remote_addr'] == md5($_SESSION['REMOTE_ADDR']) && $infos_client['oid_user_name'] != null) { |
$identifiant = $infos_client['oid_user_name']; |
$_SESSION['id'] = 1; |
session_regenerate_id(); |
} else { |
die("ERROR: Tentative de fixation de session ?"); |
} |
} |
// commence le process d'authentification |
// crée une requête d'authentification pour le fournisseur OpenID |
$auth = $consumer->begin($_POST['id']); |
if (!$auth) { |
die("ERROR: Entrez un OpenID valide svp."); |
} |
// si on est arrivé déjà authentifié |
if ($infos_client['oid_user_name'] != null) { |
// on fait une redirection immédiate |
$url = $auth->redirectURL('http://162.38.234.9/', 'http://162.38.234.9/annuaire.php',true); |
} else { |
// sinon on crée un cookie et on appelle openId pour s'autentifier |
$_SESSION['id'] = 1; |
$this->fabriquerCookie($identifiant); |
$url = $auth->redirectURL('http://162.38.234.9/', 'http://162.38.234.9/OpenId1/annuaire.php'); |
} |
// redirige vers le fournisseur OpenID pour l'authentification |
header('Location: ' . $url); |
} |
private function fabriquerCookieOpenId($identifiant) { |
$infos_client = array('h_browser' => md5($_SESSION['HTTP_USER_AGENT']), |
'h_remote_addr' => md5($_SESSION['REMOTE_ADDR']), |
'oid_user_name' => $identifiant); |
$str_infos_client = serialize($infos_client); |
setCookie('h_infos',$str_infos_client,0,'/','162.38.234.9'); |
} |
public function fabriquerCookie($utilisateur, $mot_de_passe, $crypter_mot_de_passe = true) { |
if($crypter_mot_de_passe) { |
if(function_exists($this->fonction_cryptage_mdp_cookie)) { |
$fonction_cryptage = $this->fonction_cryptage_mdp_cookie; |
$mot_de_passe_crypte = $fonction_cryptage($mot_de_passe); |
} else { |
$mot_de_passe_crypte = md5($mot_de_passe); |
} |
} |
// Expiration si l'utilisateur ne referme pas son navigateur |
$GLOBALS['_GEN_commun']['pear_auth']->setExpire((int)$this->duree_identification); |
// Création d'un cookie pour rendre permanente l'identification |
$cookie_val = $mot_de_passe_crypte.$utilisateur; |
setcookie($this->cookie_persistant_nom, $cookie_val, (int)$this->duree_identification, '/'); |
} |
public function loggerUtilisateurParCookie() { |
// Si un cookie existe, nous loggons l'utilisateur. |
$GLOBALS['_GEN_commun']['pear_auth']->password = substr($_COOKIE[$this->cookie_persistant_nom], 0, 32 ); |
$GLOBALS['_GEN_commun']['pear_auth']->username = substr($_COOKIE[$this->cookie_persistant_nom], 32); |
// Nous sommes obligés de crypter le mot de passe |
if (isset($GLOBALS['_GEN_commun']['pear_auth']->storage_options)) { |
$GLOBALS['_GEN_commun']['pear_auth']->storage_options['cryptType'] = 'none'; |
} |
if (isset($GLOBALS['_GEN_commun']['pear_auth']->storage->options)) { |
$GLOBALS['_GEN_commun']['pear_auth']->storage->options['cryptType'] = 'none'; |
} |
} |
} |
?> |
/trunk/controleurs/ApplicationExterneControleur.php |
---|
17,8 → 17,10 |
*/ |
Class ApplicationExterneControleur extends Controleur { |
private $applications = null; |
private $applications_resume = null; |
private $applications_gestion = null; |
private $repertoire_applications = null; |
private $mode_reponse = 'json'; |
public function ApplicationExterneControleur() { |
25,18 → 27,21 |
$this->__construct(); |
// on charge les variables de classes à partir du fichier de configuration |
if(Config::get('applications_externes') != null) { |
if(Config::get('url_services_applications_resume') != null) { |
$application_str = Config::get('applications_externes'); |
$this->applications = explode(';;',$application_str); |
$application_str = Config::get('url_services_applications_resume'); |
$this->applications_resume = explode('##',$application_str); |
} else { |
$this->applications = array(); |
$this->applications_resume = array(); |
} |
if(Config::get('repertoire_applications_externes') != null) { |
$this->repertoire_applications = Config::get('repertoire_applications_externes'); |
// on charge les variables de classes à partir du fichier de configuration |
if(Config::get('url_services_applications_gestion') != null) { |
$application_str = Config::get('url_services_applications_gestion'); |
$this->applications_gestion = explode('##',$application_str); |
} else { |
$this->repertoire_applications = ''; |
$this->applications_gestion = array(); |
} |
} |
48,28 → 53,6 |
*/ |
public function ajouterInscription($id_utilisateur, $mail) { |
$d = dir($this->repertoire_applications); |
$msg = ''; |
// parcours du répertoire des appli |
while (false !== ($repertoire = $d->read())) { |
if ($repertoire != '.' || $repertoire != '..') { |
// on recherche un fichier de la forme nom_appli_inscription.inc.php |
if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.inscription.inc.php')) { |
include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.inscription.inc.php' ; |
} |
} |
if ($msg != '') $res .= $msg; |
} |
if($msg != '') { |
$msg = 'Attention certaines erreurs se son produites lors de l\'inscription '.$msg; |
trigger_error($msg, E_USER_WARNING); |
} |
$d->close(); |
return true; |
} |
81,27 → 64,9 |
* @param le mail de l'utilisateur |
*/ |
public function modifierInscription($id_utilisateur, $mail) { |
$d = dir($this->repertoire_applications); |
$msg = ''; |
while (false !== ($repertoire = $d->read())) { |
if ($repertoire != '.' || $repertoire != '..') { |
if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.modification.inc.php')) { |
include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.modification.inc.php' ; |
return true; |
} |
} |
if ($msg != '') $res .= $msg; |
} |
if($msg != '') { |
$msg = 'Attention certaines erreurs se sont produites lors de la modification de l\'inscription '.$msg; |
trigger_error($msg, E_USER_WARNING); |
} |
$d->close(); |
} |
/** |
* Parcourt le repertoire racine des application et cherche un fichier spécifique pour la suppression |
* et l'inclut, le cas échéant. |
109,30 → 74,42 |
* @param le mail de l'utilisateur |
*/ |
public function supprimerInscription($id_utilisateur, $mail) { |
return true; |
} |
$d = dir($this->repertoire_applications); |
/** |
* Parcourt le repertoire racine des applications et appelle un web service contenant la méthode |
* Resume qui renvoie les informations associées à l'utilisateur qui seront affichées dans la fiche |
* de profil |
* @param l'identifiant de l'utilisateur |
* @param le mail de l'utilisateur |
* @return array un tableau associatif dont les clés sont les noms des applis et les valeurs sont le html qui sera |
* inclus dans la fiche profil |
*/ |
public function obtenirResume($id_utilisateur, $mail) { |
$msg = ''; |
$resumes = array(); |
while (false !== ($repertoire = $d->read())) { |
if ($repertoire != '.' || $repertoire != '..') { |
if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.desinscription.inc.php')) { |
include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.desinscription.inc.php' ; |
if(count($this->applications_resume) > 0) { |
foreach($this->applications_resume as $application) { |
$resume = @file_get_contents($application.'Resume'.DS.$id_utilisateur.DS.$mail); |
if($resume) { |
$resume = json_decode($resume, true); |
//print_r($resume); |
$resumes[] = $resume; |
} else { |
echo $application.'Resume'.DS.$id_utilisateur.DS.$mail; |
} |
} |
if ($msg != '') $res .= $msg; |
} |
if($msg != '') { |
$msg = 'Attention certaines erreurs se sont produites lors de la desinscription '.$msg; |
trigger_error($msg, E_USER_WARNING); |
return $resumes; |
} |
$d->close(); |
} |
/** |
* Parcourt le repertoire racine des applications et cherche un fichier spécifique contenant la méthode |
/** Parcourt le repertoire racine des applications et cherche un fichier spécifique contenant la méthode |
* obtenirResume qui renvoie les informations associées à l'utilisateur qui seront affichées dans la fiche |
* de profil |
* @param l'identifiant de l'utilisateur |
140,29 → 117,25 |
* @return array un tableau associatif dont les clés sont les noms des applis et les valeurs sont le html qui sera |
* inclus dans la fiche profil |
*/ |
public function obtenirResume($id_utilisateur, $mail) { |
public function gererInscription($id_utilisateur, $mail) { |
$d = dir($this->repertoire_applications); |
$gestions = array(); |
$resumes = array(); |
if(count($this->applications_gestion) > 0) { |
foreach($this->applications_gestion as $application) { |
while (false !== ($repertoire = $d->read())) { |
if ($repertoire != '.' || $repertoire != '..') { |
if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.resume.inc.php')) { |
include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.resume.inc.php' ; |
$gestion = file_get_contents($application.'Gestion'.DS.$id_utilisateur.DS.$mail); |
if(class_exists($repertoire.'Resume')) { |
$classe = $repertoire.'Resume'; |
$resume_appli = new $classe(); |
$resumes[$repertoire] = $resume_appli->obtenirResume($id_utilisateur, $mail); |
if($gestion) { |
$gestion = json_decode($gestion, true); |
$gestions[] = $gestion; |
} else { |
echo $application.'Gestion'.DS.$id_utilisateur.DS.$mail; |
} |
} |
} |
} |
$d->close(); |
return $resumes; |
return $gestions; |
} |
} |
/trunk/controleurs/OpenIdControleur.php |
---|
New file |
0,0 → 1,18 |
<?php |
/** |
* PHP Version 5 |
* |
* @category PHP |
* @package annuaire |
* @author aurelien <aurelien@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/annuaire/ |
*/ |
class OpenIdControleur extends Controleur { |
} |
?> |
/trunk/controleurs/AnnuaireControleur.php |
---|
23,7 → 23,15 |
*/ |
public function preTraiterDonnees($donnees) { |
// ajout de l'url de l'appli |
$donnees['base_url'] = new Url(Registre::getInstance()->get('base_url_application')); |
$donnees['url_cette_page'] = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; |
//ajout des variables d'identification |
$donnees['est_admin'] = Registre::getInstance()->get('est_admin'); |
$donnees['identification_id'] = Registre::getInstance()->get('identification_id'); |
$donnees['identification_mail'] = Registre::getInstance()->get('identification_mail'); |
return $donnees; |
} |
148,7 → 156,7 |
* @param int $id_champ l'identifiant du champ demandé |
* @return string la vue contenant le champ de formulaire correspondant |
*/ |
public function afficherFormulaireChampMetadonnees($id_champ, $donnees=array()) { |
public function afficherFormulaireChampMetadonnees($id_champ, $donnees) { |
// si le champ est restreint à une valeur de liste |
if($donnees['amc_ce_ontologie'] != 0) { |
158,8 → 166,13 |
$donnees['amc_id_champ'] = $id_champ; |
if(isset($donnees['amc_ce_template_affichage'])) { |
$nom_type_champ = $donnees['amc_ce_template_affichage']; |
} else { |
$this->chargerModele('MetadonneeModele'); |
$nom_type_champ = $this->MetadonneeModele->renvoyerTypeAffichageParId($donnees['amc_ce_type_affichage']); |
} |
return $this->getVue(Config::get('dossier_squelettes_champs').$nom_type_champ,$donnees); |
} |
325,7 → 338,12 |
//TODO: gérer le cas de spip et de wikini par un multimapping des champs |
//TODO: voir openid |
// TODO appel des plugins d'inscription |
// on crée un controleur appelle les hooks de résumé pour chaque application externe |
$resumes_controleur = new ApplicationExterneControleur(); |
$resumes_controleur->ajouterInscription($id_nouvel_inscrit, $mail_nouvel_inscrit); |
// Si tout a réussi on supprime les données d'inscription temporaire |
$this->AnnuaireModele->supprimerDonneesInscriptionTemporaire($identifiant); |
427,9 → 445,15 |
$donnees['champs'] = $champs; |
$annuaire_inscrits = $this->getVue(Config::get('dossier_squelettes_fiches').$annuaire['informations']['aa_code'].'_fiche',$donnees); |
if(Registre::getInstance()->get('est_admin')) { |
$donnees['formulaire_blocage'] = $this->getVue(Config::get('dossier_squelettes_elements').'blocage',$donnees); |
} |
return $annuaire_inscrits; |
//Debug::printr($champs); |
$fiche_inscrit = $this->getVue(Config::get('dossier_squelettes_fiches').$annuaire['informations']['aa_code'].'_fiche',$donnees); |
return $fiche_inscrit; |
} |
/** Affiche le resumé des contributions d'un utilisateur |
440,6 → 464,7 |
public function afficherFicheResumeUtilisateur($id_annuaire, $id_utilisateur) { |
$this->chargerModele('AnnuaireModele'); |
$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire); |
$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
$tableau_valeurs = $this->AnnuaireModele->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur,$tableau_mappage[0]); |
470,6 → 495,7 |
$donnees['id_annuaire'] = $id_annuaire; |
$donnees['id_utilisateur'] = $id_utilisateur; |
$donnees['mail_utilisateur'] = $mail_utilisateur; |
$champs = array_merge($tableau_valeurs, $champs_metadonnees); |
foreach($champs as $cle => $champ) { |
502,9 → 528,68 |
$resumes_controleur = new ApplicationExterneControleur(); |
$donnees['resumes'] = $resumes_controleur->obtenirResume($id_utilisateur,$mail_utilisateur); |
$donnees['carte_id'] = $this->getVue(Config::get('dossier_squelettes_fiches').$annuaire['informations']['aa_code'].'_carte_id',$donnees); |
$fiche_contrib = $this->getVue(Config::get('dossier_squelettes_fiches').$annuaire['informations']['aa_code'].'_resume',$donnees); |
return $fiche_contrib; |
} |
public function gererInscriptionExterne($id_annuaire, $id_utilisateur) { |
$this->chargerModele('AnnuaireModele'); |
$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
$tableau_valeurs = $this->AnnuaireModele->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur,$tableau_mappage[0]); |
$this->chargerModele('MetadonneeModele'); |
$champs_metadonnees= $this->MetadonneeModele->chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_utilisateur); |
$verificateur = new VerificationControleur(); |
// on vérifie s'il existe un type d'affichage particulier pour les colonnes de l'annuaire mappé |
foreach($tableau_mappage[0] as $cle => $nom_champ) { |
$valeur = $tableau_valeurs[$nom_champ] ; |
if(isset($tableau_mappage[1][$cle])) { |
$tableau_valeurs[$cle] = array('amv_valeur' => $valeur,'amc_id_champ' => $tableau_mappage[1][$cle]); |
$type_affichage = $this->MetadonneeModele->renvoyerTypeAffichagePourColonne($tableau_mappage[1][$cle]); |
if($type_affichage) { |
$tableau_valeurs[$cle]['amc_ce_type_affichage'] = $type_affichage; |
} |
} else { |
$tableau_valeurs[$cle] = $valeur; |
} |
unset($tableau_valeurs[$nom_champ]); |
} |
$mail_utilisateur = $this->AnnuaireModele->obtenirMailParId($id_annuaire,$id_utilisateur); |
$donnees['id_annuaire'] = $id_annuaire; |
$donnees['id_utilisateur'] = $id_utilisateur; |
$champs = array_merge($tableau_valeurs, $champs_metadonnees); |
foreach($champs as $cle => $champ) { |
if(is_array($champ) && isset($champ['amc_ce_type_affichage'])) { |
$type = $champ['amc_ce_type_affichage']; |
} else { |
$type = false; |
} |
$champs[$cle] = $verificateur->verifierEtRemplacerValeurChampPourAffichage($type,$champ ,$id_annuaire); |
} |
$mail_utilisateur = $this->AnnuaireModele->obtenirMailParId($id_annuaire,$id_utilisateur); |
// on crée un controleur appelle les hooks de résumé pour chaque application externe |
$resumes_controleur = new ApplicationExterneControleur(); |
$donnees['champs'] = $champs; |
$donnees['resumes'] = $resumes_controleur->gererInscription($id_utilisateur,$mail_utilisateur); |
$donnees['carte_id'] = $this->getVue(Config::get('dossier_squelettes_fiches').'annuaire_tela_inscrits_carte_id',$donnees); |
$fiche_contrib = $this->getVue(Config::get('dossier_squelettes_fiches').'annuaire_tela_inscrits_resume',$donnees); |
$fiche_contrib = $this->getVue(Config::get('dossier_squelettes_fiches').'annuaire_tela_inscrits_gestion_inscription',$donnees); |
return $fiche_contrib; |
} |
703,19 → 788,14 |
// S'il existe déjà une valeur de metadonnée pour cette colonne et cet utilisateur |
// car on a pu ajouter de nouveaux champs entre temps |
if($this->MetadonneeModele->valeurExiste($id_champ,$id_utilisateur)) { |
// On se contente de la modifier |
if($this->MetadonneeModele->modifierValeurMetadonnee($id_champ,$id_utilisateur,$valeur)) { |
$this->MetadonneeModele->modifierValeurMetadonnee($id_champ,$id_utilisateur,$valeur); |
} else { |
return false; |
} |
} else { |
// S'il n'existe pas de valeur, on ajoute une nouvelle ligne à la table de valeurs de meta données |
if($this->MetadonneeModele->ajouterNouvelleValeurMetadonnee($id_champ,$id_utilisateur,$valeur)) { |
// Si l'insertion a réussi, on continue |
} else { |
// TODO: lever exception |
return false; |
} |
} |
724,6 → 804,60 |
return $this->afficherFicheUtilisateur($id_annuaire, $id_utilisateur); |
} |
public function estAbonneLettreActualite($id_annuaire, $id_utilisateur) { |
$annuaire_modele = $this->getModele('AnnuaireModele'); |
$champs_description = $annuaire_modele->obtenirChampsDescriptionAnnuaire($id_annuaire); |
$valeur = $annuaire_modele->obtenirValeurChampAnnuaireMappe($id_annuaire, $id_utilisateur, 'champ_lettre'); |
return $valeur; |
} |
public function abonnerDesabonnerLettreActualite($id_annuaire, $id_utilisateur, $abonner = true) { |
$annuaire_modele = $this->getModele('AnnuaireModele'); |
$champs_description = $annuaire_modele->obtenirChampsDescriptionAnnuaire($id_annuaire); |
$mail_utilisateur = $annuaire_modele->obtenirMailParId($id_annuaire, $id_utilisateur); |
$champ_lettre = $champs_description[0]['champ_lettre']; |
if($abonner) { |
$valeur = 'on'; |
} else { |
$valeur = '0'; |
} |
$verificateur = new VerificationControleur(); |
$valeur_modif = $verificateur->remplacerValeurChampPourModification($id_annuaire, $id_utilisateur, 'lettre', $valeur, $mail_utilisateur); |
$annuaire_modele = $this->getModele('AnnuaireModele'); |
$valeur_modif = $annuaire_modele->modifierValeurChampAnnuaireMappe($id_annuaire, $id_utilisateur, $champ_lettre, $valeur_modif); |
//$this->chargerModele('MetadonneeModele'); |
//$this->MetadonneeModele->modifierValeurMetadonnee($champ_lettre,$id_utilisateur,$valeur_modif); |
return $valeur_modif; |
} |
public function bloquerDebloquerUtilisateur($id_annuaire, $id_utilisateur, $bloquer = true) { |
$annuaire_modele = $this->getModele('AnnuaireModele'); |
$champs_description = $annuaire_modele->obtenirChampsDescriptionAnnuaire($id_annuaire); |
$valeur = '0'; |
if($bloquer) { |
$valeur = '1'; |
} |
$metadonne_modele = $this->getModele('MetadonneeModele'); |
$metadonne_modele->modifierValeurMetadonnee($champs_description[1]['champ_statut'],$id_utilisateur,$valeur); |
return $this->afficherFicheUtilisateur($id_annuaire, $id_utilisateur); |
} |
/** |
* Affiche le formulaire permettant d'entrer un mail et de recevoir le mot de passe |
* associé sur cette adresse |
877,9 → 1011,6 |
$tableau_mappage = $this->AnnuaireModele->obtenirChampsMappageAnnuaire($id_annuaire); |
//$valeurs_get = array('m' => $_GET['m']); |
//$valeurs_get = array_merge($valeurs_get, $valeurs_recherchees); |
$valeurs_mappees = array(); |
$valeurs = array(); |
913,6 → 1044,13 |
unset($valeurs_recherchees[$nom_champ]); |
} |
$admin = Registre::getInstance()->get('est_admin'); |
//if(!$admin) { |
// $champs_blocage = $this->AnnuaireModele->obtenirChampsDescriptionAnnuaire($id_annuaire); |
// $valeurs_recherchees[$champs_blocage[1]['champ_statut']] = '0'; |
//} |
$champ_id_annuaire = $tableau_mappage[0]['champ_id']; |
// on recherche dans les métadonnées |
982,11 → 1120,15 |
$champ_id_annuaire = $tableau_mappage[0]['champ_id']; |
$valeur = $valeurs_recherchees['pays']; |
$champ_critere = $tableau_mappage[0]['champ_pays']; |
if(isset($valeurs_recherchees['departement'])) { |
$valeur = $valeurs_recherchees['departement']; |
$champ_critere = $tableau_mappage[0]['champ_code_postal']; |
} |
//Debug::printr($valeurs_get); |
$champ_critere = 'U_COUNTRY'; |
$resultat_annuaire_mappe = $this->AnnuaireModele->rechercherInscritDansAnnuaireMappeParChamp($id_annuaire, $champ_critere, $valeur, true, $taille_page, $numero_page); |
/* |
1024,6 → 1166,62 |
} |
/** --------------------------------- Fonction d'extraction d'informations utilisées par les web services -------------------------------------------*/ |
public function utilisateurExiste($id_annuaire,$id, $utilise_mail = true) { |
$this->chargerModele('AnnuaireModele'); |
if($utilise_mail) { |
$existe = $this->AnnuaireModele->utilisateurExisteParMail($id_annuaire,$id); |
} else { |
$existe = $this->AnnuaireModele->utilisateurExisteParId($id_annuaire,$id); |
} |
return $existe; |
} |
public function obtenirInfosUtilisateurOpenId($id_annuaire,$id, $mail = true) { |
$this->chargerModele('AnnuaireModele'); |
if($mail) { |
$id = $this->AnnuaireModele->obtenirIdParMail($id_annuaire,$id); |
} |
$champs_mappage = $this->AnnuaireModele->obtenirChampsMappageAnnuaire($id_annuaire); |
$valeurs = $this->AnnuaireModele->obtenirValeursUtilisateur($id_annuaire,$id, $champs_mappage[0]); |
$valeurs_open_id = array('fullname' => $valeurs[$champs_mappage[0]['champ_nom']].' '.$valeurs[$champs_mappage[0]['champ_prenom']], |
'nickname' => $valeurs[$champs_mappage[0]['champ_nom']], |
'dob' => '25/10/1984', |
'email' => $valeurs[$champs_mappage[0]['champ_mail']], |
'gender' => 'M', |
'postcode' => $valeurs[$champs_mappage[0]['champ_code_postal']], |
'country' => 'FR', |
'language' => 'fr', |
'timezone' => 'Europe/Paris'); |
return $valeurs_open_id; |
} |
public function comparerIdentifiantMotDePasse($id_annuaire,$id_utilisateur,$mot_de_passe, $utilise_mail = true, $mdp_deja_crypte = true) { |
$this->chargerModele('AnnuaireModele'); |
if($utilise_mail) { |
$id_utilisateur = $this->AnnuaireModele->obtenirIdParMail($id_annuaire,$id_utilisateur); |
} |
if(!$mdp_deja_crypte) { |
$mdp_deja_crypte = VerificationControleur::encrypterMotDePasseStatic($mot_de_passe); |
} |
return $this->AnnuaireModele->comparerIdentifiantMotDePasse($id_annuaire,$id_utilisateur,$mot_de_passe); |
} |
/** --------------------------------- Fonction privées -------------------------------------------*/ |
/** |
1221,7 → 1419,7 |
$url_page_suivante = $url_page_suiv->getUrl(); |
} |
$urls_pages = array(); |
$url_pages = array(); |
for($i = 1; $i <= $nombre_pages ; $i++) { |
1262,7 → 1460,6 |
$donnees['amc_id_champ'] = $id_champ_image; |
return $this->getVue(Config::get('dossier_squelettes_champs').'image',$donnees); |
} |
/trunk/controleurs/VerificationControleur.php |
---|
225,9 → 225,10 |
} |
if($valeur == 'on') { |
// sinon on stocke 1 pour indique que la case est cochée (cas de la checkbox oui/non) |
// on stocke 1 pour indique que la case est cochée (comme la checkbox oui/non) |
$valeur_modifiee = 1; |
// si le mail a changé on désinscrit l'ancien mail et on inscrit le nouveau |
if($changement_mail) { |
$lettre_controleur->ModificationInscriptionLettreActualite($ancien_mail, $mail_utilisateur); |
} else { |
235,11 → 236,13 |
} |
} else { |
// sinon, si la case est vide |
$valeur_modifiee = 0; |
$mail_a_desinscrire = $mail_utilisateur; |
if($changement_mail) { |
$mail_a_desinscrire = $ancien_mail; |
} |
// on desinscrit l'utilisateur |
$lettre_controleur->desinscriptionLettreActualite($mail_a_desinscrire); |
} |
break; |
292,7 → 295,11 |
break; |
case 'select': |
//echo Debug::printr($valeur); |
// TODO: si ça n'existe pas on va le chercher ? |
if(isset($valeur['amo_nom'])) { |
$valeur_modifiee['amv_valeur_affichage'] = $valeur['amo_nom']; |
} |
break; |
case 'radio': |
357,6 → 364,23 |
} |
} |
//TODO: créer une class util |
static function encrypterMotDepasseStatic($pass) { |
$fonction = Config::get('pass_crypt_fonct'); |
if(function_exists($fonction)) { |
return $fonction($pass); |
} else { |
return md5($pass); |
} |
} |
/** |
* Suivant un identifiant de champ et un tableau, renvoie vrai ou faux suivant que le champs est obligatoire ou non |
* @param int $id_champ l'identifiant de champ |
* @param int $champ_obligatoire le tableau des champs obligatoires |
*/ |
private function estUnchampObligatoire($id_champ, $champs_obligatoire) { |
return in_array($id_champ, $champs_obligatoire) || in_array($id_champ, array_keys($champs_obligatoire)); |
/trunk/controleurs/MessageControleur.php |
---|
85,7 → 85,8 |
$contenu_mail = $message; |
return mail($destinataires, $sujet, $contenu_mail, $entetes); |
//return mail($destinataires, $sujet, $contenu_mail, $entetes); |
return true; |
} |
/** |
107,12 → 108,17 |
if($this->moderer_mail && count($destinataires) >= $this->seuil_moderation) { |
// on prévient le moderateur |
$this->stockerMailPourModeration($expediteur, $destinataires, $sujet, $message); |
$donnees['moderation'] = true; |
} else { |
// sinon, envoi direct |
$this->envoyerMail($expediteur, $destinataires, $sujet, $message); |
$donnees['moderation'] = false; |
} |
$resultat = $this->getVue(Config::get('dossier_squelettes_annuaires').'message_envoi_confirmation',$donnees); |
return $resultat; |
} |
/** |