Subversion Repositories Applications.papyrus

Rev

Rev 832 | Rev 1172 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 832 Rev 1054
Line 19... Line 19...
19
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | You should have received a copy of the GNU Lesser General Public                                     |
20
// | License along with this library; if not, write to the Free Software                                  |
20
// | License along with this library; if not, write to the Free Software                                  |
21
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
22
// |                                                                                                      |
22
// |                                                                                                      |
23
// +------------------------------------------------------------------------------------------------------+
23
// +------------------------------------------------------------------------------------------------------+
24
// CVS : $Id: pap_initialise_auth.inc.php,v 1.21 2006-04-28 12:41:49 florian Exp $
24
// CVS : $Id: pap_initialise_auth.inc.php,v 1.22 2006-11-20 17:29:42 jp_milcent Exp $
25
/**
25
/**
26
* Initialisation de l'authentification.
26
* Initialisation de l'authentification.
27
*
27
*
28
* Suite à la recherche des informations depuis la base de données nous initialisons
28
* Suite à la recherche des informations depuis la base de données nous initialisons
29
* l'authentification des utilisateurs si le site l'utilise.
29
* l'authentification des utilisateurs si le site l'utilise.
Line 35... Line 35...
35
//Auteur original :
35
//Auteur original :
36
*@author            Alexandre GRANIER <alex@tela-botanica.org>
36
*@author            Alexandre GRANIER <alex@tela-botanica.org>
37
//Autres auteurs :
37
//Autres auteurs :
38
*@author            Jean-Pascal MILCENT <jpm@tela-botanica.org>
38
*@author            Jean-Pascal MILCENT <jpm@tela-botanica.org>
39
*@copyright         Tela-Botanica 2000-2004
39
*@copyright         Tela-Botanica 2000-2004
40
*@version           $Revision: 1.21 $ $Date: 2006-04-28 12:41:49 $
40
*@version           $Revision: 1.22 $ $Date: 2006-11-20 17:29:42 $
41
// +------------------------------------------------------------------------------------------------------+
41
// +------------------------------------------------------------------------------------------------------+
42
*/
42
*/
Line 43... Line 43...
43
 
43
 
44
// +------------------------------------------------------------------------------------------------------+
44
// +------------------------------------------------------------------------------------------------------+
Line 185... Line 185...
185
        'Type identification : '.$auth_courante['gsa_ce_type_auth'].'<br />'.
185
        'Type identification : '.$auth_courante['gsa_ce_type_auth'].'<br />'.
186
        'Ligne n° : '. __LINE__ . '<br />'.
186
        'Ligne n° : '. __LINE__ . '<br />'.
187
        'Fichier : '. __FILE__ . '<br />');
187
        'Fichier : '. __FILE__ . '<br />');
188
}
188
}
Line 189... Line -...
189
 
-
 
190
$GLOBALS['_GEN_commun']['pear_auth']->setSessionname( 'gen_'.$GLOBALS['_GEN_commun']['info_auth']->gsa_abreviation);
-
 
191
 
-
 
192
// Pour que la session dure même après avoir refermer son navigateur
-
 
193
session_set_cookie_params(3600 * 24 * 30 * 6);
-
 
194
 
-
 
195
// Expiration si l'utilisateur ne referme pas son navigateur
-
 
196
$GLOBALS['_GEN_commun']['pear_auth']->setExpire(3600 * 24 * 30 * 6);// 6 mois
-
 
197
 
-
 
198
$GLOBALS['_GEN_commun']['pear_auth']->start();
-
 
199
 
189
 
200
// +------------------------------------------------------------------------------------------------------+
190
// +------------------------------------------------------------------------------------------------------+
201
// Gestion des sesssion WIKINI
-
 
202
// Recherche des paramètres de wiki
-
 
203
foreach ($GLOBALS['_PAPYRUS_']['auth'] as $cle => $valeur) {
-
 
204
    if (isset($valeur['type_site_externe']) && $valeur['type_site_externe'] == 201) {  // 201 = site de type "WIKINI"
-
 
205
        $tab_parametre = explode (" ", $valeur['gsab_parametres']) ;
-
 
206
        foreach ($tab_parametre as $cle_param => $valeur_param) {
-
 
207
            $tab_valeur = explode ('=', $valeur_param) ;
-
 
208
            if ($tab_valeur[0] == 'champs_wiki') $nomwikini = $tab_valeur[1] ;
-
 
209
            if ($tab_valeur[0] == 'coauth') $coauth= $tab_valeur[1] ;
-
 
210
        }
-
 
211
    }
-
 
212
}
-
 
213
 
-
 
214
if (isset ($nomwikini) && isset ($coauth) && $coauth == $auth_courante['gsab_id_auth_bdd']&& $GLOBALS['_GEN_commun']['pear_auth']->getAuth()) {
-
 
215
    unset ($tab_parametre) ; unset ($tab_valeur) ;
-
 
216
    
-
 
217
    // 1. name
-
 
218
 
-
 
219
    setcookie ("name", $GLOBALS['_GEN_commun']['pear_auth']->getAuthData($nomwikini), time () + 3600 * 24 * 30, "/" ) ; // 1 mois
-
 
220
    
-
 
221
    //2. password
-
 
222
    // on recherche le mot de passe crypté
-
 
223
    $requete_mot_passe = 'select '.$GLOBALS['_PAPYRUS_']['auth'][$coauth]['gsab_nom_champ_mdp'].' from '.
-
 
224
                            $GLOBALS['_PAPYRUS_']['auth'][$coauth]['gsab_nom_table'].' where '.
-
 
225
                            $GLOBALS['_PAPYRUS_']['auth'][$coauth]['gsab_nom_champ_login'].'='.
191
// Définition du nom de la session
226
                            '"'.$GLOBALS['_GEN_commun']['pear_auth']->getUsername().'"' ;
-
 
227
    
-
 
228
    $resultat_mot_passe = $db->query($requete_mot_passe) ;
-
 
229
    if (DB::isError($resultat_mot_passe)) {
-
 
230
        $res = 'erreur de la requete pour identifier sur wikini' ;
-
 
231
    }
-
 
232
    $ligne_mot_passe = $resultat_mot_passe->fetchRow(DB_FETCHMODE_ASSOC) ;
-
 
233
    $mot_de_passe = $ligne_mot_passe[$GLOBALS['_PAPYRUS_']['auth'][$coauth]['gsab_nom_champ_mdp']];
-
 
234
    
-
 
235
    setcookie ("password", $mot_de_passe, time () + 3600 * 24 * 30, "/") ;
-
 
236
    
-
 
237
    // 3. remember
-
 
238
    setcookie ("remember", 1, time () + 3600 * 24 * 30, "/") ;
-
 
239
}
-
 
240
 
-
 
241
 
-
 
242
// +------------------------------------------------------------------------------------------------------+
192
$GLOBALS['_GEN_commun']['pear_auth']->setSessionname('gen_'.$GLOBALS['_GEN_commun']['info_auth']->gsa_abreviation);
243
// Gestion des sesssion SPIP
-
 
244
 
-
 
245
// Recherche des paramètres de SPIP
-
 
246
foreach ($GLOBALS['_PAPYRUS_']['auth'] as $cle => $valeur) {
-
 
247
    if (isset($valeur['type_site_externe']) && $valeur['type_site_externe'] == 200) {  // 200 = site de type "SPIP"
-
 
248
        $tab_parametre = explode (" ", $valeur['gsab_parametres']) ;
-
 
249
        foreach ($tab_parametre as $cle_param => $valeur_param) {
-
 
250
            $tab_valeur = explode ('=', $valeur_param) ;
-
 
251
            if ($tab_valeur[0] == 'chemin_spip') $chemin_spip = $tab_valeur[1] ;
-
 
252
            if ($tab_valeur[0] == 'coauth') $coauth= $tab_valeur[1] ;
-
 
253
            if ($tab_valeur[0] == 'chemin_cookie_spip') $chemin_cookie_spip = $tab_valeur[1] ;
-
 
254
        }
-
 
255
    }
-
 
256
}
-
 
257
// Début initialisation de la gestion SPIP
-
 
258
if (isset ($chemin_spip) && isset ($coauth) && $coauth == $auth_courante['gsab_id_auth_bdd']&& $GLOBALS['_GEN_commun']['pear_auth']->getAuth()) {
193
// Démarage de la session
259
    $login = $GLOBALS['_GEN_commun']['pear_auth']->getUsername() ;
-
 
260
    
-
 
261
    setcookie('spip_admin', '@'.$login, time() + 3600 * 24 * 30, '/'.$chemin_cookie_spip.'/');
-
 
262
    
-
 
263
    $query = 'SELECT * FROM spip_auteurs WHERE login = "'.$login.'"';
-
 
264
    $result = $db->query($query);
-
 
265
    $GLOBALS['auteur_session'] = $result->fetchRow(DB_FETCHMODE_ASSOC);
-
 
266
    $GLOBALS['auteur_session']['statut'] = '1comite';
-
 
267
    $GLOBALS['auteur_session']['lang'] = 'fr';
-
 
268
    
-
 
269
    $userid = $GLOBALS['auteur_session']['id_auteur'];
-
 
270
    $GLOBALS['__auteur_session__'] = $GLOBALS['auteur_session'];
-
 
271
    if (!$HTTP_COOKIE_VARS["spip_session"]) {
-
 
272
        $id_session = $GLOBALS['auteur_session']['id_auteur']."_".(md5 (uniqid (rand ())));
-
 
273
        setcookie("spip_session", $id_session, time() + 3600 * 24 * 30, "/$chemin_cookie_spip/") ;
-
 
274
    
-
 
275
    } else {
-
 
276
        $id_session = preg_replace("/[0-9]+_/", $userid."_", $HTTP_COOKIE_VARS["spip_session"]) ;
-
 
277
        setcookie('spip_session', $id_session, time() + 3600 * 24 * 30, "/$chemin_cookie_spip/") ;
-
 
278
    }
-
 
279
    
-
 
280
    //set_include_path(get_include_path().':'.$chemin_spip);
-
 
281
    
-
 
282
    include_once $chemin_spip.'ecrire/inc_db_mysql.php3';
-
 
283
    include_once $chemin_spip.'ecrire/inc_version.php3';
-
 
284
    ob_flush();// Nécessaire car spip utilise un ob_start() et cela cause un plantage
-
 
285
    
-
 
286
    include_ecrire ('inc_meta.php3');
-
 
287
    include_ecrire ('inc_session.php3');
-
 
288
    
-
 
289
    $fichier_session = fichier_session($id_session, lire_meta('alea_ephemere'));
-
 
290
    $fichier_session = $chemin_spip.'/ecrire/'.$fichier_session ;
-
 
291
    
-
 
292
    $vars = array('id_auteur', 'nom', 'login', 'email', 'statut', 'lang', 'ip_change', 'hash_env');
-
 
293
    
-
 
294
    $texte = "<"."?php\n";
-
 
295
    foreach ($vars as $var) {
-
 
296
        $texte .= "\$GLOBALS['auteur_session']['$var'] = '".addslashes($GLOBALS['__auteur_session__'][$var])."';\n";
-
 
297
    }
-
 
298
    
-
 
299
    $texte .= "?".">\n";
-
 
300
    
-
 
301
    if ($f = fopen($fichier_session, "wb")) {
-
 
302
        fputs($f, $texte);
-
 
303
        fclose($f);
-
 
304
    } else {
-
 
305
        $res = 'erreur dans l ecriture de la session SPIP' ;
-
 
306
    }
-
 
307
    //ajouter_session($GLOBALS['auteur_session'], $id_session) ;
-
 
308
}
-
 
Line 309... Line 194...
309
 
194
$GLOBALS['_GEN_commun']['pear_auth']->start();
310
 
195
 
-
 
196
/* +--Fin du code ---------------------------------------------------------------------------------------+
-
 
197
* $Log: not supported by cvs2svn $
-
 
198
* Revision 1.21  2006/04/28 12:41:49  florian
311
/* +--Fin du code ---------------------------------------------------------------------------------------+
199
* corrections erreurs chemin
312
* $Log: not supported by cvs2svn $
200
*
313
* Revision 1.20  2006/03/15 09:30:50  florian
201
* Revision 1.20  2006/03/15 09:30:50  florian
314
* suppression des echos, qui entrainaient des problemes d'affichages
202
* suppression des echos, qui entrainaient des problemes d'affichages
315
*
203
*