Subversion Repositories Applications.annuaire

Rev

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

Rev Author Line No. Line
579 mathias 1
<?php
2
 
3
require "AuthPartner.php";
4
 
5
/**
6
 * Permet de se connecter à l'annuaire de Tela Botanica à l'aide d'un compte Pl@ntNet / identify
7
 */
580 mathias 8
class AuthPartnerPlantnet extends	AuthPartner {
579 mathias 9
 
10
	public function verifierAcces($login, $password) {
583 mathias 11
		$login = urlencode($login); // pour les espaces dans le nom d'utilisateur
12
		$password = urlencode($password);
587 mathias 13
		$url = "http://identify.plantnet-project.org/api/security/token/create?_username=$login&_password=$password";
579 mathias 14
 
15
		$curl = curl_init();
16
		curl_setopt($curl, CURLOPT_URL, $url);
17
		curl_setopt($curl, CURLOPT_POST, true);
580 mathias 18
		curl_setopt($curl, CURLOPT_POSTFIELDS, array()); // nécessaire dans les versions modernes de libcurl sinon on se prend un 400 !
19
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
579 mathias 20
		$res = curl_exec($curl);
21
		curl_close($curl);
22
 
583 mathias 23
		// var_dump($res); exit;
579 mathias 24
		$res = json_decode($res, true);
25
		//var_dump($res);
26
		if (!empty($res['JWT'])) {
580 mathias 27
			$this->jetonPartenaire = $res['JWT'];
28
			$jetonDecode = $this->auth->decoderJetonManuellement($this->jetonPartenaire);
579 mathias 29
			// stockage pour traitement dans les autres méthodes
580 mathias 30
			$this->data = $jetonDecode['details'];
579 mathias 31
			//var_dump($jeton);
580 mathias 32
			if ( !empty($this->data['email'])) {
33
				//var_dump($this->data['email']);
579 mathias 34
				return true;
35
			}
36
		}
37
		return false;
38
	}
39
 
580 mathias 40
	protected function getNomPartenaire() {
41
		return "plantnet";
42
	}
579 mathias 43
 
583 mathias 44
	public function getCourriel() {
580 mathias 45
		return $this->data['email'];
579 mathias 46
	}
47
 
580 mathias 48
	protected function getId() {
49
		// la clef primaire est le "username" dans Pl@ntNet, apparemment
50
		return $this->data['username'];
51
	}
579 mathias 52
 
580 mathias 53
	protected function getValeursProfilPartenaire() {
54
		return array(
55
			'nom' => $this->data['lastname'],
56
			'prenom' => $this->data['firstname'],
57
			'email' => $this->data['email'],
58
			'pseudo' => $this->data['username']
59
		);
579 mathias 60
	}
61
 
580 mathias 62
	/*public function getTimestampMajPartenaire() {
63
		return 420000000000;
64
	}*/
579 mathias 65
}