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

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

Commentaire

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