No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

oid_return.php 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. // fichiers inclus
  3. include_once(dirname(__FILE__).'/tools/sessions.php');
  4. require_once(dirname(__FILE__). '/classes/openid/Auth/OpenID/Consumer.php');
  5. require_once(dirname(__FILE__). "/classes/openid/Auth/OpenID/FileStore.php");
  6. require_once(dirname(__FILE__). "/classes/util/TurboleadPath.php");
  7. require_once(dirname(__FILE__). "/classes/openid/Auth/OpenID/SReg.php");
  8. require_once(dirname(__FILE__). "/classes/util/TurboleadPath.php");
  9. require_once(dirname(__FILE__). "/utilisateur/model/UtilisateurHome.php");
  10. require_once(dirname(__FILE__). "/utilisateur/model/ModuleHome.php");
  11. require_once(dirname(__FILE__). "/utilisateur/const.php");
  12. // démarrage de session (requis pour YADIS)
  13. session_start();
  14. $homeTurbolead=&new TurboleadPath();
  15. $path=$homeTurbolead->getURLTurbolead();
  16. // crée une zone de stockage pour les données OpenID
  17. $store = new Auth_OpenID_FileStore('./oid_store');
  18. // crée un consommateur OpenID
  19. // Lit la réponse du fournisseur OpenID
  20. $consumer = new Auth_OpenID_Consumer($store);
  21. $response = $consumer->complete($path.'oid_return.php');
  22. $path=&new TurboleadPath();
  23. $cheminTurbolead=$path->getURLTurbolead();
  24. // crée une variable de session qui dépend de l'authentification
  25. if ($response->status == Auth_OpenID_SUCCESS) {
  26. //echo 'OPENID_AUTH : true<br/>';
  27. $_SESSION['OPENID_AUTH'] = true;
  28. $openid = $response->getDisplayIdentifier();
  29. $esc_identity = htmlspecialchars($openid, ENT_QUOTES);
  30. //$newUser = true;
  31. // récupère les informations d'enregistrement
  32. //$valeurRetour=array('fullname','nickname','dob','email','gender','postcode','country','language','timezone');
  33. $sreg = new Auth_OpenID_SRegResponse($valeurRetour);
  34. $obj = $sreg->fromSuccessResponse($response);
  35. $data = $obj->contents();
  36. $homeUtilisateur=&UtilisateurHome::getInstance('UtilisateurHome');
  37. $utilisateur=$homeUtilisateur->getUtilisateurByOpenid($openid);
  38. if($utilisateur){
  39. //L'utilisateur existe
  40. $_SESSION['login']=$utilisateur->getAttribut('id_utilisateur');
  41. header("Location: $cheminTurbolead");
  42. }else{
  43. //L'utilisateur n'existe PAS
  44. //nom_utilisateur prenom adresse cp ville pays mail tel_port tel_fixe fax societe fonction site_web
  45. $new_utilisateur = $homeUtilisateur->create();
  46. $new_utilisateur->setAttribut('nom',$data['nickname']);
  47. $new_utilisateur->setAttribut('mp',$data['nickname']);
  48. $new_utilisateur->setAttribut('ref_langue',1);
  49. $fullname=explode(' ',$data['fullname']);
  50. $new_utilisateur->setAttribut('nom_utilisateur',$fullname[0]);
  51. $new_utilisateur->setAttribut('prenom',$fullname[1]);
  52. $new_utilisateur->setAttribut('sexe',$data['gender']);
  53. $new_utilisateur->setAttribut('openid_identifiant',$openid);
  54. $id_new_utilisateur=$homeUtilisateur->addObject($new_utilisateur);
  55. $homeModule=&ModuleHome::getInstance('ModuleHome');
  56. $unUtilisateur=$homeUtilisateur->get($id_new_utilisateur);
  57. $module=$homeModule->getByNom('utilisateur');
  58. $unUtilisateur->setAttributMap('module',$module->getID(),'ref_module',$module->getID());
  59. $unUtilisateur->setAttributMap('module',$module->getID(),'statut','normal');
  60. $unUtilisateur->setAttributMap('groupe',groupe_utilisateur_utilisateur,'ref_groupe',groupe_utilisateur_utilisateur);
  61. $homeUtilisateur->updateObject($unUtilisateur);
  62. $_SESSION['login']=$id_new_utilisateur;
  63. $cheminTurboleadFinal=$cheminTurbolead."utilisateur/index.php?action=".__utilisateur_form_utilisateur."&id_utilisateur=".$id_new_utilisateur;
  64. header("Location: $cheminTurboleadFinal");
  65. }
  66. } else {
  67. $_SESSION['OPENID_AUTH'] = false;
  68. $cheminTurboleadFinal=$cheminTurbolead.'index.php?erreur_openid=2';
  69. header("Location: $cheminTurboleadFinal");
  70. }
  71. ?>