Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
416 aurelien 1
<?php
2458 jpm 2
// declare(encoding='UTF-8');
887 aurelien 3
/**
2458 jpm 4
 * Liste des utilisateurs du cel, par défaut les 50 premiers ou bien commencant par la chaine fournie en paramètre
2143 jpm 5
 *
2458 jpm 6
 * @internal   Mininum PHP version : 5.2
7
 * @category   CEL
8
 * @package    Services
9
 * @subpackage Observations
10
 * @version    0.1
11
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
12
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
13
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
14
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
15
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
16
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
2143 jpm 17
 */
754 aurelien 18
class InventoryUserList extends Cel {
416 aurelien 19
 
2458 jpm 20
	public function getElement($uid) {
2143 jpm 21
		$this->controleUtilisateur($uid[0]);
416 aurelien 22
 
3027 mathias 23
		// Découplage de l'annuaire TB (suppression de la lecture dans cel_utilisateurs)
24
		// @TODO vérifier que ça n'impacte que la liste d'usurpation d'identité pour les admins (on peut s'en passer)
25
		$requete = 'SELECT DISTINCT ce_utilisateur as id_utilisateur, courriel_utilisateur as courriel '.
2143 jpm 26
			'FROM cel_obs '.
27
			$this->construireRequeteConditionTableObs($uid).' '.
2458 jpm 28
			'LIMIT 0,50 '.
29
			' -- '.__FILE__.':'.__LINE__;
30
		$utilisateurs = Cel::db()->requeter($requete);
2143 jpm 31
 
32
		$liste_utilisateurs = array();
33
		if ($utilisateurs) {
34
			foreach ($utilisateurs as $utilisateur) {
35
				$liste_utilisateurs[] = $utilisateur;
36
			}
37
		}
2458 jpm 38
		usort($liste_utilisateurs, array($this, 'trierUtilisateurs'));
2143 jpm 39
 
40
		$this->envoyerJson($liste_utilisateurs);
41
		return true;
42
	}
43
 
2458 jpm 44
	public function trierUtilisateurs($val1, $val2) {
45
		if (strstr($val1['courriel'], '@')) {
46
			if (strstr($val2['courriel'], '@')) {
47
				return strcmp($val1['courriel'], $val2['courriel']);
48
			} else {
49
				return -1;
50
			}
51
		} else {
52
			if (strstr($val2['courriel'], '@')) {
53
				return 1;
54
			} else {
55
				return strcmp($val1['courriel'], $val2['courriel']);
56
			}
57
		}
58
	}
59
 
2143 jpm 60
	private function construireRequeteConditionTableObs($params) {
61
		$condition = '';
62
		if (isset($params[1]) && $params[1] != null && $params[1] != '*') {
63
			$condition .= ' WHERE courriel_utilisateur LIKE '.Cel::db()->proteger($params[1].'%');
64
		}
65
		return $condition;
66
	}
2458 jpm 67
}