Changeset 32361 in spip-zone


Ignore:
Timestamp:
Oct 25, 2009, 1:36:05 PM (11 years ago)
Author:
cedric@…
Message:

inscription par openid :
un bouton pour faire apparaitre l'adresse openid a la place de nom+email
puis la validation envoie chez le fournisseur, et revient avec l'email et le nom rempli (ou un message d'erreur si info manquante).
Reste a valider automatiquement si tout est la, et mettre l'info en base
teste en 2.1, version 2.0 a valider mais devrait fonctionner idem

Location:
_plugins_/authentification/openid
Files:
4 added
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/authentification/openid/inc/openid.php

    r32343 r32361  
    322322        return false;
    323323}
     324
     325/**
     326 * Fournir une url de retour pour l'inscription par OpenID
     327 * pour finir l'inscription
     328 *
     329 * @param string $idurl
     330 * @param string $redirect
     331 * @return string
     332 */
     333function openid_url_retour_insc($idurl, $redirect=''){
     334        $securiser_action = charger_fonction('securiser_action','inc');
     335        return $securiser_action('inscrire_openid', $idurl, $redirect, true);
     336}
     337
     338
    324339/*
    325340                        #openid_log("sreg ".var_export($sreg_resp,true), 2);
  • _plugins_/authentification/openid/lang/openid_fr.php

    r32353 r32361  
    99        'erreur_openid' => 'Cette adresse OpenID ne semble pas valide',
    1010        'erreur_librairies' => 'Impossible de trouver les librairies d\'authenfication OpenID',
     11        'erreur_openid_info_manquantes' => 'Votre fournisseur OpenID ne nous a pas envoyé toutes les informations nécessaires',
    1112        // F
    1213        'form_login_openid' => 'Vous pouvez aussi utiliser un identifiant OpenID (<a href="http://www.openidfrance.fr/" target="_blank">aide</a>)',
     
    1516        'form_login_openid_pass' => 'Utiliser un mot de passe',
    1617        'form_forum_openid' => 'Inscription par OpenID',
    17         'form_pet_votre_openid' => 'Login OpenID',
     18        'form_pet_votre_openid' => 'Votre adresse OpenID',
    1819        'form_login_openid_inconnu' => 'Cette adresse OpenID est inconnue. Corrigez, ou enregistrez-la dans votre profil.',
    1920        // O
  • _plugins_/authentification/openid/openid_pipelines.php

    r32344 r32361  
    3232                        $flux['data']['openid'] = sql_getfetsel('openid','spip_auteurs','id_auteur='.intval($id_auteur));
    3333        }
     34        if ($flux['args']['form']=='inscription'){
     35                $flux['data']['_forcer_request'] = true; // forcer la prise en compte du post
     36                $flux['data']['url_openid'] = ''; // un champ de saisie openid !
     37                $flux['data']['openid'] = ''; // une url openid a se passer en hidden
     38                if ($erreur = _request('var_erreur'))
     39                        $flux['data']['message_erreur'] = _request('var_erreur');
     40                elseif(_request('openid') AND (!_request('nom_inscription') OR !_request('mail_inscription')))
     41                        $flux['data']['message_erreur'] = _T('openid:erreur_openid_info_manquantes');
     42        }
    3443        return $flux;
    3544}
     
    4857                        if (!verifier_openid($openid))
    4958                                $flux['data']['openid']=_T('openid:erreur_openid');
     59                }
     60        }
     61        if ($flux['args']['form']=='inscription'){
     62                if ($idurl = _request('url_openid')){
     63                        include_spip('inc/openid');
     64                        if (!is_openid($idurl)
     65                                OR !$idurl = nettoyer_openid($idurl)
     66                                OR !verifier_openid($idurl))
     67                                $flux['data']['url_openid']=_T('openid:erreur_openid');
     68                        else {
     69                                // openid valide, il faut renvoyer vers le fournisseur pour identification
     70                                // et recup au retour du nom et de l'email
     71                                $retour = openid_url_retour_insc($idurl,self());
     72                                // lancer l'identification chez openid
     73                                $erreur = demander_authentification_openid($idurl, $retour);
     74                                // si on arrive ici : erreur
     75                                $flux['data']['url_openid']=$erreur;
     76                        }
    5077                }
    5178        }
     
    98125                $flux['data']['texte'] = openid_login_form($flux['data']['texte'],$flux['data']['contexte']);
    99126        }
    100         /*if ($flux['args']['fond']=='formulaires/inscription'){
    101                 $insc = pipeline('social_inscription_links','');
    102                 $flux['data']['texte'] = str_replace('<form',$insc . '<form',$flux['data']['texte']);
    103         }*/
     127        if ($flux['args']['fond']=='formulaires/inscription'){
     128
     129                $insc = recuperer_fond('formulaires/inc-inscription-openid',$flux['data']['contexte']);
     130                $flux['data']['texte'] = str_replace('<ul',$insc . '<ul',$flux['data']['texte']);
     131
     132        }
    104133        return $flux;
    105134}
  • _plugins_/authentification/openid/plugin.xml

    r32343 r32361  
    121121                <inclure>openid_pipelines.php</inclure>
    122122        </pipeline>
     123        <pipeline>
     124                <nom>recuperer_fond</nom>
     125                <inclure>openid_pipelines.php</inclure>
     126        </pipeline>
    123127</plugin>
Note: See TracChangeset for help on using the changeset viewer.