Changeset 32343 in spip-zone


Ignore:
Timestamp:
Oct 24, 2009, 4:27:40 PM (11 years ago)
Author:
cedric@…
Message:

verification de la saisie de l'openid sur la fiche auteur, en interrogeant le serveur.
Correction du bug pour la connexion des redacteurs via openid : en l'absence de cookie admin, le formulaire de login ne retrouve pas le login d'un utilisateur connecte, sauf si var_login indique dans l'url. On l'injecte donc pour que cela fonctionne avec la version stable de SPIP

Location:
_plugins_/authentification/openid
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/authentification/openid/formulaires/inc-openid.html

    r32324 r32343  
    22<li class="editer_openid[ (#ENV**{erreurs}|table_valeur{openid}|oui)erreur]">
    33        <label for="openid"><:openid:openid:></label>
    4         [<span class='erreur'>(#ENV**{erreurs}|table_valeur{openid})</span>]
    5         <input type='text' name='openid' id='openid' class='text' value="[(#ENV**{openid})]" />
     4        [<span class='erreur_message'>(#ENV*{erreurs}|table_valeur{openid})</span>]
     5        <input type='text' name='openid' id='openid' class='text' value="[(#ENV*{openid})]" />
    66</li>
  • _plugins_/authentification/openid/inc/openid.php

    r32340 r32343  
    9898 */
    9999function verifier_openid($url_openid){
     100        if (!is_openid($url_openid))
     101                return false;
    100102        // Begin the OpenID authentication process.
    101103        $consumer = init_auth_openid();
  • _plugins_/authentification/openid/openid_pipelines.php

    r32326 r32343  
    1515        if ($flux['args']['type']=='auteur') {
    1616                include_spip('public/assembler');
    17                 $flux['args']['contexte']['openid'] = sql_getfetsel('openid','spip_auteurs','id_auteur='.sql_quote($flux['args']['contexte']['id_auteur']));
    1817                $openid = recuperer_fond('formulaires/inc-openid', $flux['args']['contexte']);
    1918                $flux['data'] = preg_replace('%(<li class="editer_email(.*?)</li>)%is', '$1'."\n".$openid, $flux['data']);
     19        }
     20        return $flux;
     21}
     22
     23/**
     24 * Ajouter la valeur openID dans la liste des champs de la fiche auteur
     25 *
     26 * @param array $flux
     27 */
     28function openid_formulaire_charger($flux){
     29        if ($flux['args']['form']=='editer_auteur'){
     30                $flux['data']['openid'] = ''; // un champ de saisie openid !
     31                if ($id_auteur = intval($flux['data']['id_auteur']))
     32                        $flux['data']['openid'] = sql_getfetsel('openid','spip_auteurs','id_auteur='.intval($id_auteur));
     33        }
     34        return $flux;
     35}
     36
     37
     38/**
     39 * Verifier la saisie de l'url openID sur la fiche auteur
     40 *
     41 * @param array $flux
     42 */
     43function openid_formulaire_verifier($flux){
     44        if ($flux['args']['form']=='editer_auteur'){
     45                if ($openid = _request('openid')){
     46                        include_spip('inc/openid');
     47                        $openid = nettoyer_openid($openid);
     48                        if (!verifier_openid($openid))
     49                                $flux['data']['openid']=_T('openid:erreur_openid');
     50                }
    2051        }
    2152        return $flux;
  • _plugins_/authentification/openid/plugin.xml

    r32326 r32343  
    4343        <pipeline>
    4444                <nom>editer_contenu_objet</nom>
     45                <inclure>openid_pipelines.php</inclure>
     46        </pipeline>
     47        <pipeline>
     48                <nom>formulaire_charger</nom>
     49                <inclure>openid_pipelines.php</inclure>
     50        </pipeline>
     51        <pipeline>
     52                <nom>formulaire_verifier</nom>
    4553                <inclure>openid_pipelines.php</inclure>
    4654        </pipeline>
     
    101109                <inclure>openid_pipelines.php</inclure>
    102110        </pipeline>
     111        <pipeline>
     112                <nom>formulaire_charger</nom>
     113                <inclure>openid_pipelines.php</inclure>
     114        </pipeline>
     115        <pipeline>
     116                <nom>formulaire_verifier</nom>
     117                <inclure>openid_pipelines.php</inclure>
     118        </pipeline>
    103119        <pipeline>
    104120                <nom>pre_edition</nom>
  • _plugins_/authentification/openid/spip_2_0/auth/openid.php

    r32341 r32343  
    4444                // pour d'autres methodes d'identification
    4545                include_spip('inc/openid');
    46                 $retour = auth_openid_url_retour_login($auteur['login'],url_absolue(self()));
     46                // il faut remettre var_login dans l'url de retour pour que le form de login retrouve le login
     47                // des non admin ...
     48                $retour = auth_openid_url_retour_login($auteur['login'],url_absolue(parametre_url(self(),'var_login',$auteur['login'],'&')));
    4749                $erreurs_openid = demander_authentification_openid($auteur['openid'], $retour);
    4850                // potentiellement, on arrive ici avec une erreur si l'openid donne n'existe pas
Note: See TracChangeset for help on using the changeset viewer.