Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 434 → Rev 436

/tags/v1.2-autel/jrest/services/TestLoginMdp.php
New file
0,0 → 1,36
<?php
// declare(encoding='UTF-8');
/**
* Service
*
* @category php 5.2
* @package Annuaire::Services
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class TestLoginMdp extends JRestService {
 
public function getElement($uid){
if (!isset($uid[0]) || $uid[0] == '' || !isset($uid[1]) || $uid[1] == '') {
$this->envoyer(false);
return;
}
 
$mail_utilisateur = $uid[0];
$pass = $uid[1];
 
// TODO vérifier que le mot de passe est crypté !
 
$id_annuaire = Config::get('annuaire_defaut');
 
$controleur = new AnnuaireControleur();
$id_match_pass = $controleur->comparerIdentifiantMotDePasse($id_annuaire,$mail_utilisateur, $pass, true, true);
 
$this->envoyer($id_match_pass);
}
}
?>
/tags/v1.2-autel/jrest/services/Utilisateur.php
New file
0,0 → 1,302
<?php
// declare(encoding='UTF-8');
/**
* Service retournant les prénoms et nom d'un utilisateur en fonction de son courriel.
* UNe liste de courriel peut être passé dans la ressource.
* Exemple :
* /utilisateur/Prenom-nom-par-courriel/jpm@tela-botanica.org,aurelien@tela-botanica.org
*
* @category php 5.2
* @package Annuaire::Services
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class Utilisateur extends JRestService {
 
private $donnees = null;
private $idAnnuaire = null;
private $utilisateurId = null;
private $metadonneeModele = null;
private $annuaireModele = null;
private $messagerieModele = null;
 
/*+----------------------------------------------------------------------------------------------------+*/
// GET : consultation
 
public function getElement($ressources){
$this->ressources = $ressources;
$this->idAnnuaire = Config::get('annuaire_defaut');
$infos = null;
 
if (isset($this->ressources[0])) {
$methode_demande = array_shift($this->ressources);
$methode = $this->traiterNomMethodeGet($methode_demande);
if (method_exists($this, $methode)) {
$infos = $this->$methode();
} else {
$this->messages[] = "Ce type de ressource '$methode_demande' n'est pas disponible pour la requete GET.";
}
} else {
$this->messages[] = "Le premier paramêtre du chemin du service doit correspondre au type de ressource demandée.";
}
 
if (!is_null($infos)) {
$this->envoyerJson($infos);
} else {
$info = 'Un problème est survenu : '.print_r($this->messages, true);
$this->envoyerTxt($info);
}
}
 
/**
* Permet d'obtenir les prénoms et noms des courriels des utilisateurs indiqués dans la ressource.
* RESSOURCE : /utilisateur/prenom-nom-par-courriel/[courriel,courriel,...]
* PARAMÊTRES : aucun
* RÉPONSE : Tableau possédant un courriel de la ressource en clé et en valeur :
* - id : identifiant numérique de l'utilisateur
* - prenom : prénom
* - nom : nom de famille.
*/
public function getPrenomNomParCourriel() {
$courriels = explode(',', $this->ressources[0]);
$infos = $this->getAnnuaire()->obtenirPrenomNomParCourriel($this->idAnnuaire, $courriels);
$infous_courriel_minuscule = array();
foreach ($infos as $courriel => $utilisateur) {
$courriel = strtolower($courriel);
$infous_courriel_minuscule[$courriel] = $utilisateur;
}
return $infos;
}
 
/**
* Permet d'obtenir les identités des utilisateurs indiqués dans la ressource.
* RESSOURCE : /utilisateur/identite-par-courriel/[courriel,courriel,...]
* PARAMÊTRES : aucun
* RÉPONSE : Tableau possédant un courriel de la ressource en clé et en valeur :
* - id : identifiant numérique de l'utilisateur
* - pseudoUtilise : indique si on doit utiliser le pseudo à la place de Prénom NOM
* - pseudo : pseudo de l'utilisateur.
* - prenom : prénom
* - nom : nom de famille.
*/
public function getIdentiteParCourriel() {
$infos_utilisateurs = array();
$utilisateurs = $this->getPrenomNomParCourriel();
foreach ($utilisateurs as $courriel => $utilisateur) {
$id = $utilisateur['id'];
$utilisateur['pseudo'] = $this->obtenirPseudo($id);
$utilisateur['pseudoUtilise'] = $this->obtenirPseudoUtilise($id);
$utilisateur['intitule'] = $this->formaterIntitule($utilisateur);
$infos_utilisateurs[$courriel] = $utilisateur;
}
return $infos_utilisateurs;
}
 
private function getAnnuaire() {
if (!isset($this->annuaireModele)) {
$this->annuaireModele = new AnnuaireModele();
}
return $this->annuaireModele;
}
 
private function getMeta() {
if (!isset($this->metadonneeModele)) {
$this->metadonneeModele = new MetadonneeModele();
}
return $this->metadonneeModele;
}
 
private function obtenirPseudo($id_utilisateur) {
$pseudo = '';
$id_champ_pseudo = $this->getMeta()->renvoyerIdChampMetadonneeParAbreviation($this->idAnnuaire, 'pseudo');
if ($this->getMeta()->valeurExiste($id_champ_pseudo, $id_utilisateur)) {
$pseudo = $this->getMeta()->obtenirValeurMetadonnee($id_champ_pseudo, $id_utilisateur);
}
return $pseudo;
}
 
private function obtenirPseudoUtilise($id_utilisateur) {
$pseudo_utilise = false;
$id_champ_utilise_pseudo = $this->getMeta()->renvoyerIdChampMetadonneeParAbreviation($this->idAnnuaire, 'utilise_pseudo');
if ($this->getMeta()->valeurExiste($id_champ_utilise_pseudo, $id_utilisateur)) {
$booleen = $this->getMeta()->obtenirValeurMetadonnee($id_champ_utilise_pseudo, $id_utilisateur);
$pseudo_utilise = ($booleen == 0) ? false : true;
}
return $pseudo_utilise;
}
 
private function formaterIntitule($utilisateur) {
$intitule = '';
if ($utilisateur['pseudoUtilise'] && trim($utilisateur['pseudo']) != '') {
$intitule = $utilisateur['pseudo'];
} else {
$intitule = $utilisateur['prenom'].' '.$utilisateur['nom'];
}
return $intitule;
}
 
/*+----------------------------------------------------------------------------------------------------+*/
// POST : mise à jour
 
public function updateElement($ressources, $donnees) {
$this->ressources = $ressources;
$this->donnees = $donnees;
$this->idAnnuaire = Config::get('annuaire_defaut');
 
$infos = null;
if (isset($this->ressources[0])) {
$this->utilisateurId = array_shift($this->ressources);
if (isset($this->ressources[0])) {
$methode_demande = array_shift($this->ressources);
$methode = $this->traiterNomMethodePost($methode_demande);
if (method_exists($this, $methode)) {
$infos = $this->$methode();
} else {
$this->messages[] = "Ce type de ressource '$methode_demande' n'est pas disponible pour la requete POST.";
}
} else {
$this->messages[] = "La seconde ressource du service pour les requêtes POST doit correspondre au type de ressource demandée.";
}
} else {
$this->messages[] = "La première ressource du service pour les requêtes POST doit être l'identifiant de l'utilisateur.";
}
 
if (!is_null($infos)) {
$this->envoyerJson($infos);
} else {
$info = 'Un problème est survenu : '.print_r($this->messages, true);
$this->envoyerTxt($info);
}
}
 
/**
* Permet d'envoyer un message à un utilisateur.
* RESSOURCE : /utilisateur/[id]/message
* POST :
* - sujet : contient le sujet du message à envoyer.
* - message : contient le contenu du message à envoyer.
* - utilisateur_courriel : contient le courriel de l'utilisateur qui envoie le message (Il doit être
* inscrit dans l'annuaire par défaut de Tela Botanica).
* - copies : peut contenir une liste de courriels séparés par des virguels auxquels une copie du
* message sera envoyée.
* - format (optionnel) : text ou html
* RÉPONSE :
* - message : contient le message d'information concernant l'envoie.
*/
private function updateMessage() {
$destinataireId = $this->utilisateurId;//$this->donnees['destinataire_id'];
$sujet = stripslashes($this->donnees['sujet']);
$contenu = stripslashes($this->donnees['message']);
$envoyeur = $this->donnees['utilisateur_courriel'];
$copies = array_key_exists('copies', $this->donnees) ? explode(',', $this->donnees['copies']) : null;
$format = isset($this->donnees['format']) ? $this->donnees['format'] : 'text';
 
$info = null;
if ($this->estAutoriseMessagerie($envoyeur) || $this->getAnnuaire()->utilisateurExisteParMail($this->idAnnuaire, $envoyeur)) {
// il est possible de passer directement un email ou bien un id utilisateur
if(filter_var($destinataireId, FILTER_VALIDATE_EMAIL)) {
$destinataire = $destinataireId;
} else {
$destinataire = $this->getAnnuaire()->obtenirMailParId($this->idAnnuaire, $destinataireId);
}
if ($destinataire) {
if ($format == 'html') {
$envoie = $this->getMessagerie()->envoyerMail($envoyeur, $destinataire, $sujet, $contenu);
} else {
$envoie = $this->getMessagerie()->envoyerMailText($envoyeur, $destinataire, $sujet, $contenu);
}
if ($envoie) {
$info['message'] = "Votre message a bien été envoyé.";
foreach ($copies as $copie) {
$sujet = '[COPIE] '.$sujet;
$contenu = "Message original envoyé par $envoyeur pour $destinataire.\n--\n".$contenu;
$this->getMessagerie()->envoyerMailText($envoyeur, $copie, $sujet, $contenu);
}
} else {
$info['message'] = "Le message n'a pas pu être envoyé.";
}
} else {
$info['message'] = "Aucun courriel ne correspond à l'id du destinataire.";
}
} else {
$info['message'] = "Vous n'êtes pas inscrit à Tela Botanica avec le courriel : $envoyeur.\n".
"Veuillez saisir votre courriel d'inscription ou vous inscrire à Tela Botanica.";
}
return $info;
}
 
private function getMessagerie() {
if (!isset($this->messagerieModele)) {
$this->messagerieModele = new MessageControleur();
}
return $this->messagerieModele;
}
 
/*+----------------------------------------------------------------------------------------------------+*/
// PUT : ajout
 
public function createElement($donnees) {
$this->donnees = $donnees;
$this->idAnnuaire = Config::get('annuaire_defaut');
 
$infos = null;
if (isset($this->donnees['methode'])) {
$methode_demande = $this->donnees['methode'];
$methode = $this->traiterNomMethodePut($methode_demande);
if (method_exists($this, $methode)) {
$infos = $this->$methode();
} else {
$this->messages[] = "Ce type de méthode '$methode_demande' n'est pas disponible pour la requete PUT.";
}
} else {
$this->messages[] = "Ce service n'est pas implémanté.";
}
 
if (!is_null($infos)) {
$this->envoyerJson($infos);
} else {
$info = 'Un problème est survenu : '.print_r($this->messages, true);
$this->envoyerTxt($info);
}
}
 
/**
* Permet d'identifier un utilisateur.
* RESSOURCE : /utilisateur
* POST :
* - methode = 'connexion' : methode doit valoir 'connexion' pour connecter l'utilisateur.
* - courriel : contient le courriel de l'utilisateur .
* - mdp : le mot de passe de l'utilisateur.
* - persistance : true si on veut laisser l'utilisateur connecté au delà de la session sinon false
* RÉPONSE :
* - identifie : indiquer si l'utilisateur a été identifié (true) ou pas (false)
* - message : contient un message d'information complémentaire de l'état.
*/
private function createConnexion() {
$courriel = stripslashes($this->donnees['courriel']);
$mdp = stripslashes($this->donnees['mdp']);
$persistance = (stripslashes($this->donnees['persistance']) == 'true') ? true : false;
 
$infos = null;
$infos['persistance'] = $persistance;
if ($this->verifierAcces($courriel, $mdp)) {
$infos['identifie'] = true;
$infos['message'] = "Bienvenu.";
$dureeCookie = 0;
if ($persistance === true) {
$dureeCookie = time()+3600*24*30;
$this->creerCookiePersistant($dureeCookie, $courriel, $mdp);
}
$this->creerCookieUtilisateur($dureeCookie, $courriel);
$infos['message'] = $_COOKIE;
} else {
$infos['identifie'] = false;
$infos['message'] = "Le courriel ou le mot de passe saisi est incorrect.";
}
return $infos;
}
}
?>
/tags/v1.2-autel/jrest/services/UtilisateurExiste.php
New file
0,0 → 1,27
<?php
// declare(encoding='UTF-8');
/**
* Service vérifiant que l'utilisateur dont le courriel est passé en paramètre existe dans l'annuaire.
*
* @category php 5.2
* @package Annuaire::Services
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class UtilisateurExiste extends JRestService {
 
public function getElement($uid){
$mail_utilisateur = $uid[0];
$id_annuaire = Config::get('annuaire_defaut');
 
$controleur = new AnnuaireControleur();
$existe = $controleur->UtilisateurExiste($id_annuaire,$mail_utilisateur, true);
 
$this->envoyer($existe);
}
}
?>
/tags/v1.2-autel/jrest/services/NbInscrits.php
New file
0,0 → 1,51
<?php
// declare(encoding='UTF-8');
/**
* Service
*
* @category php 5.2
* @package Annuaire::Services
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class NbInscrits extends JRestService {
 
public function getRessource() {
$this->getElement(array());
}
public function getElement($uid){
$id_annuaire = Config::get('annuaire_defaut');
if (isset($uid[0])) {
$id_annuaire = $uid[0];
}
$json = true;
if (isset($uid[1]) && $uid[1] == 'html') {
$json = false;
}
 
$controleur = new AnnuaireControleur();
$valeurs = $controleur->chargerNombreAnnuaireListeInscrits($id_annuaire);
if (!$json) {
$valeurs =
'<html>'."\n".
' </head>'."\n".
' <meta content="text/html; charset='.Config::get('sortie_encodage').'" http-equiv="Content-Type">'."\n".
' </head>'."\n".
' <body>'."\n".
' <div id="contenu">'.$valeurs.'</div>'."\n".
' </body>'."\n".
'</html>';
}
 
$this->envoyer($valeurs, 'text/html', Config::get('sortie_encodage'), $json);
}
}
?>
/tags/v1.2-autel/jrest/services/MiniLienProfil.php
New file
0,0 → 1,46
<?php
// declare(encoding='UTF-8');
/**
* Service renvoyant un lien vers le profil d'un utilisateur sous la forme de son nom'
*
* @category php 5.2
* @package Annuaire::Services
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class MiniLienProfil extends JRestService {
 
public function getRessource(){
if(!isset($_COOKIE['pap-annuaire_tela-utilisateur']) && isset($_COOKIE['pap-annuaire_tela-memo'])) {
$_COOKIE['pap-annuaire_tela-utilisateur'] = $_COOKIE['pap-annuaire_tela-memo'];
}
 
if (isset($_COOKIE['pap-annuaire_tela-utilisateur'])) {
 
$username = $_COOKIE['pap-annuaire_tela-utilisateur'];
// le cookie de papyrus contient un md5 concaténé à l'email utilisateur
$username = substr($username , 32, strlen($username));
$controleur = new AnnuaireControleur();
$valeurs = $controleur->obtenirInfosUtilisateur('1', $username, true);
$nom_affiche_lien = $valeurs['fullname'];
$tableau_nom_prenom = split(" ", $nom_affiche_lien, 2);
if(strlen($nom_affiche_lien) > 20) {
$nom_affiche_lien = substr($nom_affiche_lien,0,20).'...';
}
$lien = 'Bienvenue <a href="http://www.tela-botanica.org/page:mon_inscription_au_reseau"> '.ucwords(strtolower($nom_affiche_lien)).'</a>';
echo json_encode($lien);
} else {
$lien = '';
echo json_encode($lien);
}
}
}
?>
/tags/v1.2-autel/jrest/services/ModificationsRss.php
New file
0,0 → 1,28
<?php
// declare(encoding='UTF-8');
/**
* Service
*
* @category php 5.2
* @package Annuaire::Services
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class ModificationsRss extends JRestService {
 
public function getElement($uid){
$id_annuaire = (isset($uid[0])) ? $uid[0] : Config::get('annuaire_defaut');
$this->authentifier();
 
$controleur = new RSSControleur();
$modifications = $controleur->obtenirDernieresModificationsProfil($id_annuaire);
 
$this->envoyer($modifications, 'text/xml',Config::get('sortie_encodage'), false);
}
}
?>
/tags/v1.2-autel/jrest/services/ExecuteurLien.php
New file
0,0 → 1,46
<?php
// declare(encoding='UTF-8');
/**
* Service
*
* @category php 5.2
* @package Annuaire::Services
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class ExecuteurLien extends JRestService {
 
public function getElement($uid){
if (isset($uid[0])) {
$lien_code = $uid[0];
$lien = base64_decode(str_replace('_', '/', $lien_code));
} else {
return;
}
 
if (!isset($uid[1])) {
$retour_ajax = true;
} else {
$adresse_retour = base64_decode(str_replace('_', '/', $uid[1]));
}
 
$requete = file_get_contents($lien);
 
if ($retour_ajax) {
if ($requete) {
$resultat = 'ok';
} else {
$resultat = false;
}
$this->envoyer($resultat);
} else {
header('Location: http://'.$adresse_retour);
exit;
}
}
}
?>
/tags/v1.2-autel/jrest/services/InformationsUtilisateur.php
New file
0,0 → 1,36
<?php
// declare(encoding='UTF-8');
/**
* Service retournant des informations sur l'utilisateur.
*
* @category php 5.2
* @package Annuaire::Services
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class InformationsUtilisateur extends JRestService {
 
public function getElement($uid){
$mail_utilisateur = $uid[0];
$identificateur = new IdentificationControleur();
$login = $identificateur->obtenirLoginUtilisateurParCookie();
if ($mail_utilisateur != $login) {
return;
}
$id_annuaire = Config::get('annuaire_defaut');
 
$controleur = new AnnuaireControleur();
$valeurs = $controleur->obtenirInfosUtilisateurOpenId($id_annuaire, $mail_utilisateur, true);
 
$this->envoyer($valeurs);
}
}
?>
/tags/v1.2-autel/jrest/services/TelaUtilisateurs.php
New file
0,0 → 1,41
<?php
/**
* Encodage en entrée : utf8
* Encodage en sortie : utf8
*
* @author Grégoire Duché <jpm@tela-botanica.org>
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @version $Id$
* @copyright 2009
*/
 
class TelaUtilisateurs extends JRestService {
/**
* Méthode appelée quand aucun paramêtre n'est passée dans l'url et avec une requête de type GET.
*/
public function getRessource() {
$this->getElement(array());
}
public function getElement($params = array()) {
$id_annuaire = Config::get('annuaire_defaut');
if(isset($uid[0])) {
$id_annuaire = $uid[0];
}
 
$controleur = new AnnuaireControleur();
$nb_inscrits = $controleur->chargerNombreAnnuaireListeInscrits($id_annuaire);
$info[] = $nb_inscrits;
 
//TODO externaliser ceci
$en_ligne = file_get_contents('/home/telabotap/www/nb_sessions_active.json');
$info[] = json_decode($en_ligne);
$this->envoyer($info);
}
}
?>
/tags/v1.2-autel/jrest/services/EnvoiMessage.php
New file
0,0 → 1,55
<?php
// declare(encoding='UTF-8');
/**
* Service d'envoie de courriel.
*
* @category php 5.2
* @package Annuaire::Services
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class EnvoiMessage extends JRestService {
 
public function getElement($uid){
$identificateur = new IdentificationControleur();
$login = $identificateur->obtenirLoginUtilisateurParCookie();
 
$identification = $login;
 
if (!$identification || trim($identification) == '') {
print 'false';
} else {
$id_annuaire = Config::get('annuaire_defaut');
$contenu_message = $_GET['contenu_message'];
$sujet_message = $_GET['sujet_message'];
$destinataire = $_GET['destinataire'];
$redirect = $_GET['redirect'];
 
$messagerie = new MessageControleur();
// Remplacement les identifiants par leurs destinataires
$destinataire_mail = $messagerie->obtenirMailParTableauId($id_annuaire, array($destinataire));
if (empty($destinataire_mail)) {
print 'false';
} else {
$destinataire_mail = $destinataire_mail[0];
 
$retour = $messagerie->envoyerMail($identification, $destinataire_mail, $sujet_message, $contenu_message);
if ($retour) {
if ($redirect != null && $redirect != '') {
header('Location: '.'http://'.$redirect);
exit;
} else {
print 'OK';
}
} else {
print 'false';
}
}
}
}
}
?>
/tags/v1.2-autel/jrest/services/GestionLettreActu.php
New file
0,0 → 1,35
<?php
// declare(encoding='UTF-8');
/**
* Service de gestion de la lettre d'actualité
*
* @category php 5.2
* @package Annuaire::Services
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class GestionLettreActu extends JRestService {
 
public function getElement($uid){
// TODO : rajouter controle d'accès !
 
$id_utilisateur = $uid[0];
$mail_utilisateur = $uid[1];
 
if (isset($uid[2])) {
$id_annuaire = $uid[2];
} else {
$id_annuaire = Config::get('annuaire_defaut');
}
 
$controleur = new LettreControleur();
$est_abonne = $controleur->estAbonneLettreActualite($id_annuaire,$id_utilisateur);
$changement = $controleur->abonnerDesabonnerLettreActualite($id_annuaire, $id_utilisateur, !$est_abonne);
echo 'OK';
}
}
?>
/tags/v1.2-autel/jrest/services/StatistiquesAnnuaire.php
New file
0,0 → 1,59
<?php
// declare(encoding='UTF-8');
/**
* Service
*
* @category php 5.2
* @package Annuaire::Services
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class StatistiquesAnnuaire extends JRestService {
 
public function getElement($uid){
 
if (!isset($uid[0])) {
$id_annuaire = $uid[0];
} else {
$id_annuaire = Config::get('annuaire_defaut');
}
if (isset($uid[1])) {
$type_stat = $uid[1];
} else {
$type_stat = '';
}
$controleur = new StatistiqueControleur();
switch($type_stat) {
case 'annee' :
$annee = isset($uid[2]) ? $uid[2] : null;
$graph = $controleur->obtenirStatistiquesPourAnnee($id_annuaire, $annee);
break;
case 'annees' :
$graph = $controleur->obtenirStatistiquesParAnnees($id_annuaire);
break;
case 'continents' :
$graph = $controleur->obtenirStatistiquesInscritsParContinents($id_annuaire);
break;
case 'europe' :
$graph = $controleur->obtenirStatistiquesInscritsEurope($id_annuaire);
break;
case 'modification' :
$graph = $controleur->obtenirStatistiquesModificationsProfil($id_annuaire);
break;
default:
$graph = $controleur->obtenirStatistiquesParCritere($id_annuaire,$type_stat, '');
}
// Envoi d'une image png
header("Content-type: image/png charset=utf-8\n\n");
imagepng($graph);
}
}
?>
/tags/v1.2-autel/jrest/services/InscritsRss.php
New file
0,0 → 1,32
<?php
// declare(encoding='UTF-8');
/**
* Service
*
* @category php 5.2
* @package Annuaire::Services
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class InscritsRss extends JRestService {
 
public function getElement($uid){
$mail_utilisateur = $uid[0];
$admin = (isset($uid[1])) ? $uid[1] : false;
$id_annuaire = Config::get('annuaire_defaut');
if ($admin) {
$this->authentifier();
}
 
$controleur = new RSSControleur();
$inscrits = $controleur->obtenirDerniersInscritsRSS($id_annuaire, $admin);
 
$this->envoyer($inscrits, 'text/xml',Config::get('sortie_encodage'), false);
}
}
?>
/tags/v1.2-autel/jrest/services/IdUtilisateur.php
New file
0,0 → 1,27
<?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 IdUtilisateur extends JRestService {
 
public function getElement($uid){
 
$mail_utilisateur = $uid[0];
$id_annuaire = Config::get('annuaire_defaut');
 
$controleur = new AnnuaireControleur();
$id = $controleur->ObtenirIdParMail($id_annuaire,$mail_utilisateur);
 
$this->envoyer($id);
}
}
?>
/tags/v1.2-autel/jrest/services/Gestion.php
New file
0,0 → 1,54
<?php
// declare(encoding='UTF-8');
/**
* Service
*
* @category php 5.2
* @package Annuaire::Services
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class Gestion extends JRestService {
 
public function getElement($uid){
$id_utilisateur = $uid[0];
$mail_utilisateur = $uid[1];
 
if (isset($uid[2])) {
$id_annuaire = $uid[2];
} else {
$id_annuaire = Config::get('annuaire_defaut');
}
 
$controleur = new LettreControleur();
$est_abonne = $controleur->estAbonneLettreActualite($id_annuaire, $id_utilisateur);
 
$resume['titre'] = 'Lettre d\'actualit&eacute;';
 
if ($est_abonne == '1') {
$message = "Vous &ecirc;tes abonn&eacute; &agrave; la lettre d'actualit&eacute;";
$intitule_lien = 'Se desinscrire';
} else {
$message = "Vous n'&ecirc;tes pas abonn&eacute; &agrave; la lettre d'actualit&eacute;";
$intitule_lien = "S'inscrire";
}
$base_url_application = $controleur->getUrlBaseComplete();
$cible_lien_desinscrire = $base_url_application.'/jrest/GestionLettreActu/'.$id_utilisateur.DS.$mail_utilisateur.DS.$id_annuaire;
$cible_lien = $base_url_application.'/jrest/GestionLettreActu/'.$id_utilisateur.DS.$mail_utilisateur.DS.$id_annuaire;
$resume_item = array(
'element' => $message,
'intitule_lien' => $intitule_lien,
'lien_desinscrire' => $cible_lien_desinscrire,
'lien' => $cible_lien);
$resume['elements'][] = $resume_item;
 
$this->envoyer($resume);
}
}
?>