source: spip-zone/_plugins_/connecteur/trunk/action/connection.php @ 96243

Last change on this file since 96243 was 96243, checked in by p@…, 4 years ago

Commentaire

File size: 1.6 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7function action_connection_dist($arg = null) {
8        if (is_null($arg)) {
9                $securiser_action = charger_fonction('securiser_action', 'inc');
10                $arg = $securiser_action();
11        }
12
13        include_spip('connecteur_fonctions');
14
15        // Type de connection à effectuer
16        $type = $arg;
17
18        // Charger la configuration de la connection
19        $connecteur_config = charger_fonction($type.'_config', 'connecteur');
20        $config = $connecteur_config();
21
22        // Type de connecteur "token"
23        if ($config['connecteur'] == 'token') {
24                // Retrouver le token en executant la fonction renseignée dans la config
25                if (isset($config['charger_fichier'])) {
26                        include_spip($config['charger_fichier']);
27                }
28                $trouver_token = $config['trouver_token'];
29                $token = $trouver_token();
30
31                // Maintenant qu'on a le token du service, on va demander les
32                // informations de connexion
33                // Ce tableau doit à minima contenir un champ nom et un champ email
34                $info = charger_fonction($type.'_info', 'connecteur');
35                $auteur_info = $info($token);
36
37                // Est-ce que l'email est déjà présent dans la base de donnée ?
38                $verifier = charger_fonction('verifier', 'inc');
39                if (!$verifier($auteur_info['email'], 'email', array('disponible' => true))) {
40
41                        // L'auteur n'est pas encore dans la base de donnée : on le crée
42                        $auteur = connecteur_creer_auteur($auteur_info);
43                        // On va update la source de l'auteur
44                        include_spip('action/editer_auteur');
45                        auteur_modifier($auteur['id_auteur'], array('source' => $type));
46                        connecteur_connecter($auteur);
47
48                } else {
49                        // Sinon, on connecte l'auteur
50                        connecteur_connecter($auteur_info);
51                }
52        }
53}
Note: See TracBrowser for help on using the repository browser.