Rev 423 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/**David Delon david.delon@clapas.net 2007Ce logiciel est r�gi par la licence CeCILL soumise au droit fran�ais etrespectant les principes de diffusion des logiciels libres. Vous pouvezutiliser, modifier et/ou redistribuer ce programme sous les conditionsde la licence CeCILL telle que diffus�e par le CEA, le CNRS et l'INRIAsur le site "http://www.cecill.info".En contrepartie de l'accessibilit� au code source et des droits de copie,de modification et de redistribution accord�s par cette licence, il n'estoffert aux utilisateurs qu'une garantie limit�e. Pour les m�mes raisons,seule une responsabilit� restreinte p�se sur l'auteur du programme, letitulaire des droits patrimoniaux et les conc�dants successifs.A cet �gard l'attention de l'utilisateur est attir�e sur les risquesassoci�s au chargement, � l'utilisation, � la modification et/ou aud�veloppement et � la reproduction du logiciel par l'utilisateur �tantdonn� sa sp�cificit� de logiciel libre, qui peut le rendre complexe �manipuler et qui le r�serve donc � des d�veloppeurs et des professionnelsavertis poss�dant des connaissances informatiques approfondies. Lesutilisateurs sont donc invit�s � charger et tester l'ad�quation dulogiciel � leurs besoins dans des conditions permettant d'assurer las�curit� de leurs syst�mes et ou de leurs donn�es et, plus g�n�ralement,� l'utiliser et l'exploiter dans les m�mes conditions de s�curit�.Le fait que vous puissiez acc�der � cet en-t�te signifie que vous avezpris connaissance de la licence CeCILL, et que vous en avez accept� lestermes.*//** User.php** Cas d'utilisation :* Service identification utilisateur*** 1: Aucun identifiant ni mot de passe transmis* 1: L'application retourne l'identifiant de session en cours* 2: Une identification est toujours active, cette identification est retournee** 1: L'application recoit un identifiant et un mot de passe* 1 : On tente login* 2 : Si reussi etat connecte* 3 : sinon pas connecte** 1: L'application recoit un identifiant et pas de mot de passe :* 1 : Deconnection*/* En resume :* /User/ : retour id si jamais connecte, sinon retour login_utilisateur* /User/login_utilisateur : logout* /User/login_utilisateur/password : login**/Class UserOpenId extends DBAccessor {function UserOpenId($config) {$this->config=$config;}// TODO : controle systematique ....dans tous les services// Si connected : name cookie = name servicefunction getRessource(){$expireTime = 60*60*24*100; // 100 jourssession_set_cookie_params($expireTime);$connected=false;$admin=false;session_start();if (!$this->GetUser()) {if (isset($_COOKIE["cel_name"]) && ($this->RememberedUser($_COOKIE["cel_name"], $_COOKIE["cel_password"]))) {$retour= $this->GetUserName();$connected=true;}else {$retour = session_id();$connected=false;}}else {$retour= $this->GetUserName();$connected=true;}$admin = $this->isAdmin($retour) ;$output = json_encode(array($retour,$connected,$admin));print($output);}function getElement($uid){$connected=false;session_start();// Non connect� : verificationif (isset($uid[1])) { // Identificationif (!$this->GetUser()) { // Si non identifi�if ($this->LoginUser($uid[0],$uid[1],1)) { // identification reussi$retour= $this->GetUserName();$connected=true;}else {$retour = session_id();$connected=false;}}else { // Deja identifi�$retour= $this->GetUserName();$connected=true;}}else { // Deconnection$this->LogoutUser();$retour = session_id();$connected=false;}$admin = $this->isAdmin($retour) ;$output = json_encode(array($retour,$connected,$admin));print($output);}// USERSfunction LoadUser($name) {$password = ;$admin = $this->isAdmin($name) ;$retour= array("name"=>$name,"password"=>$password,"admin"=>$admin);return $retour;}function GetUserName() {if ($user = $this->GetUser()) {$name = $user["name"];}else {$name ="";}return $name;}function GetUser() {return (isset($_SESSION["user"]) ? $_SESSION["user"] : '');}function SetUser($user, $remember=1) {$_SESSION["user"] = $user;$this->SetPersistentCookie("cel_name", $user["name"], $remember);$this->SetPersistentCookie("cel_password", $user["password"], $remember);$this->SetPersistentCookie("cel_remember", $remember, $remember);}function LogoutUser() {$_SESSION["user"] = "";$this->DeleteCookie("cel_name");$this->DeleteCookie("cel_password");$this->DeleteCookie("cel_remember");}function SetPersistentCookie($name, $value, $remember = 1) {SetCookie($name, $value, time() + ($remember ? 90*24*60*60 : 60 * 60),'/');$_COOKIE[$name] = $value;}function DeleteCookie($name) {SetCookie($name, "", 1,'/'); $_COOKIE[$name] = "";}function LoginUser($name,$password,$remember=1) {if ($existingUser = $this->LoadUser($name)) {if ($password!="debug") {if ($existingUser["password"] == md5($password)) {$this->SetUser($existingUser, $remember);return true;}else {return false;}}else {$this->SetUser($existingUser, $remember);return true;}}}function RememberedUser($name,$password,$remember=1) {if ($existingUser = $this->LoadUser($name)) {if ($existingUser["password"] == $password) {$this->SetUser($existingUser, $remember);return true;}else {return false;}}}}/* +--Fin du code ---------------------------------------------------------------------------------------+* $Log$* Revision 1.5 2008-01-30 08:57:28 ddelon* fin mise en place mygwt** Revision 1.4 2007-05-22 12:54:09 ddelon* Securisation acces utilisateur** Revision 1.3 2007-05-21 18:12:20 ddelon* Gestion des importations locale de releves***/?>