Subversion Repositories Applications.papyrus

Rev

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

Rev 2149 Rev 2154
Line 21... Line 21...
21
// +------------------------------------------------------------------------------------------------------+
21
// +------------------------------------------------------------------------------------------------------+
22
// CVS : $Id: identification.php,v 1.37 2008-04-18 14:19:09 jp_milcent Exp $
22
// CVS : $Id: identification.php,v 1.37 2008-04-18 14:19:09 jp_milcent Exp $
23
/**
23
/**
24
* Applette : identification
24
* Applette : identification
25
*
25
*
26
* Génère un formulaire les champs nécessaires pour s'identifier.
26
* Génére un formulaire les champs nécessaires pour s'identifier.
27
* Nécessite :
27
* Nécessite :
28
* - Variable globale de Génésia.
28
* - Variable globale de Génésia.
29
* - Pear Auth
29
* - Pear Auth
30
* - Pear Net_URL
30
* - Pear Net_URL
31
*
31
*
Line 41... Line 41...
41
*@version       $Revision: 1.37 $ $Date: 2008-04-18 14:19:09 $
41
*@version       $Revision: 1.37 $ $Date: 2008-04-18 14:19:09 $
42
// +------------------------------------------------------------------------------------------------------+
42
// +------------------------------------------------------------------------------------------------------+
43
*/
43
*/
Line 44... Line 44...
44
 
44
 
45
// +------------------------------------------------------------------------------------------------------+
45
// +------------------------------------------------------------------------------------------------------+
46
// |                                            ENTÊTE du PROGRAMME                                       |
46
// |                                            ENTéTE du PROGRAMME                                       |
47
// +------------------------------------------------------------------------------------------------------+
47
// +------------------------------------------------------------------------------------------------------+
48
$GLOBALS['_GEN_commun']['info_applette_nom_fonction'] = 'afficherFormIdentification';
48
$GLOBALS['_GEN_commun']['info_applette_nom_fonction'] = 'afficherFormIdentification';
49
$GLOBALS['_GEN_commun']['info_applette_balise'] = 	'(?:<!-- '.$GLOBALS['_GEN_commun']['balise_prefixe'].'(IDENTIFICATION) -->|'.
49
$GLOBALS['_GEN_commun']['info_applette_balise'] = 	'(?:<!-- '.$GLOBALS['_GEN_commun']['balise_prefixe'].'(IDENTIFICATION) -->|'.
50
													'\{\{[Ii]dentification'.
50
													'\{\{[Ii]dentification'.
Line 58... Line 58...
58
/** Inclusion du fichier de configuration de cette applette.*/
58
/** Inclusion du fichier de configuration de cette applette.*/
59
require_once GEN_CHEMIN_APPLETTE.'identification'.GEN_SEP.'configuration'.GEN_SEP.'iden_config.inc.php';
59
require_once GEN_CHEMIN_APPLETTE.'identification'.GEN_SEP.'configuration'.GEN_SEP.'iden_config.inc.php';
Line 60... Line 60...
60
 
60
 
61
// Inclusion des fichiers de traduction de l'applette.
61
// Inclusion des fichiers de traduction de l'applette.
62
if (file_exists(IDEN_CHEMIN_LANGUE.'iden_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) {
62
if (file_exists(IDEN_CHEMIN_LANGUE.'iden_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) {
63
    /** Inclusion du fichier de traduction suite à la transaction avec le navigateur.*/
63
    /** Inclusion du fichier de traduction suite é la transaction avec le navigateur.*/
64
    require_once IDEN_CHEMIN_LANGUE.'iden_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php';
64
    require_once IDEN_CHEMIN_LANGUE.'iden_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php';
65
} else {
65
} else {
66
    /** Inclusion du fichier de traduction par défaut.*/
66
    /** Inclusion du fichier de traduction par défaut.*/
67
    require_once IDEN_CHEMIN_LANGUE.'iden_langue_'.IDEN_I18N_DEFAUT.'.inc.php';
67
    require_once IDEN_CHEMIN_LANGUE.'iden_langue_'.IDEN_I18N_DEFAUT.'.inc.php';
Line 70... Line 70...
70
// |                                            CORPS du PROGRAMME                                        |
70
// |                                            CORPS du PROGRAMME                                        |
71
// +------------------------------------------------------------------------------------------------------+
71
// +------------------------------------------------------------------------------------------------------+
Line 72... Line 72...
72
 
72
 
73
// Si le site utilise une authentification.
73
// Si le site utilise une authentification.
-
 
74
if ($GLOBALS['_GEN_commun']['info_auth']->gsa_ce_type_auth == 1) {
-
 
75
	
-
 
76
	if(IDEN_UTILISE_SSO) {
-
 
77
		require_once GEN_CHEMIN_PAP.'bibliotheque/classes/pap_identificationsso.class.php';
-
 
78
		$identification = new identificationSso();
-
 
79
	}
74
if ($GLOBALS['_GEN_commun']['info_auth']->gsa_ce_type_auth == 1) {
80
	
75
	$cookie_persistant_nom = session_name().'-memo';
81
	$cookie_persistant_nom = session_name().'-memo';
76
	$cookie_utilisateur_nom = session_name().'-utilisateur';
82
	$cookie_utilisateur_nom = session_name().'-utilisateur';
77
    // Si un formulaire nous renvoie en POST une variable "deconnexion", nous délogons l'utilisateur.
83
    // Si un formulaire nous renvoie en POST une variable "deconnexion", nous délogons l'utilisateur.
78
    if ((isset($_REQUEST['deconnexion']) || isset($_REQUEST['logout']))) {
84
    if ((isset($_REQUEST['deconnexion']) || isset($_REQUEST['logout']))) {
79
		$GLOBALS['_GEN_commun']['pear_auth']->logout();
85
		$GLOBALS['_GEN_commun']['pear_auth']->logout();
80
		// Destruction du cookie de session de Papyrus : est ce utile?
86
		// Destruction du cookie de session de Papyrus : est ce utile?
81
		setcookie(session_name(), session_id(), time()-3600, '/');
87
		setcookie(session_name(), session_id(), time()-3600, '/');
82
		// Destruction du cookie de permanence de l'identitification de Papyrus
88
		// Destruction du cookie de permanence de l'identitification de Papyrus
83
		setcookie($cookie_persistant_nom, '', time()-3600, '/');
89
		setcookie($cookie_persistant_nom, '', time()-3600, '/');
-
 
90
		setcookie($cookie_utilisateur_nom, '', time()-3600, '/');
-
 
91
		
-
 
92
		if(IDEN_UTILISE_SSO) {
-
 
93
			// On propage la deconnexion sur le sso, attention ceci provoque une redirection suivie d'un exit
-
 
94
			$identification->deconnecterEtRediriger();
-
 
95
		}
84
		setcookie($cookie_utilisateur_nom, '', time()-3600, '/');
96
		
85
    } else if (isset($_REQUEST['connexion'])) {
97
    } else if (isset($_REQUEST['connexion'])) {
86
    	// Si un formulaire nous renvoie en POST une variable "connexion", nous logons l'utilisateur.
98
    	// Si un formulaire nous renvoie en POST une variable "connexion", nous logons l'utilisateur.
87
    	$cookie_val = md5($_POST['password']).$_POST['username'];
99
    	$cookie_val = md5($_POST['password']).$_POST['username'];
88
		// Nous vérifions que l'utilisateur est coché "Mémoriser mon compte"
100
		// Nous vérifions que l'utilisateur est coché "Mémoriser mon compte"
Line 92... Line 104...
92
			// Création d'un cookie pour rendre permanente l'identification de Papyrus
104
			// Création d'un cookie pour rendre permanente l'identification de Papyrus
93
			setcookie($cookie_persistant_nom, $cookie_val, (int)IDEN_AUTH_SESSION_DUREE, '/');
105
			setcookie($cookie_persistant_nom, $cookie_val, (int)IDEN_AUTH_SESSION_DUREE, '/');
94
		} else {
106
		} else {
95
			setcookie($cookie_utilisateur_nom, $cookie_val, 0, '/');
107
			setcookie($cookie_utilisateur_nom, $cookie_val, 0, '/');
96
		}
108
		}
-
 
109
		
-
 
110
		if(IDEN_UTILISE_SSO) {
-
 
111
			// On propage la connexion sur le sso, attention ceci provoque une redirection suivie d'un exit
-
 
112
			$identification->connecterEtRediriger($_POST['username'], $_POST['password']);
-
 
113
		}
-
 
114
			
97
	} else if (isset($_COOKIE[$cookie_persistant_nom])) {
115
	} else if (isset($_COOKIE[$cookie_persistant_nom])) {
98
		// Si un cookie existe, nous loggons l'utilisateur.
116
		// Si un cookie existe, nous loggons l'utilisateur.
99
		$GLOBALS['_GEN_commun']['pear_auth']->password = substr($_COOKIE[$cookie_persistant_nom], 0, 32 );
117
		$GLOBALS['_GEN_commun']['pear_auth']->password = substr($_COOKIE[$cookie_persistant_nom], 0, 32 );
100
		$GLOBALS['_GEN_commun']['pear_auth']->username = substr($_COOKIE[$cookie_persistant_nom], 32);
118
		$GLOBALS['_GEN_commun']['pear_auth']->username = substr($_COOKIE[$cookie_persistant_nom], 32);
Line 101... Line 119...
101
 
119
 
102
		// Nous sommes obligés de crypter le mot de passe
120
		// Le mot de passe est déjé crypté dans cookie donc il faut indiquer é pear de ne pas le re crytper
103
		if (isset($GLOBALS['_GEN_commun']['pear_auth']->storage_options)) {
121
		if (isset($GLOBALS['_GEN_commun']['pear_auth']->storage_options)) {
104
			$GLOBALS['_GEN_commun']['pear_auth']->storage_options['cryptType'] = 'none';
122
			$GLOBALS['_GEN_commun']['pear_auth']->storage_options['cryptType'] = 'none';
105
		}
123
		}
106
		if (isset($GLOBALS['_GEN_commun']['pear_auth']->storage->options)) {
124
		if (isset($GLOBALS['_GEN_commun']['pear_auth']->storage->options)) {
107
			$GLOBALS['_GEN_commun']['pear_auth']->storage->options['cryptType'] = 'none';
125
			$GLOBALS['_GEN_commun']['pear_auth']->storage->options['cryptType'] = 'none';
108
		}
126
		}
109
	} else if (isset($_COOKIE[$cookie_utilisateur_nom])) {
127
	} else if (isset($_COOKIE[$cookie_utilisateur_nom])) {
110
		$GLOBALS['_GEN_commun']['pear_auth']->password = substr($_COOKIE[$cookie_utilisateur_nom], 0, 32 );
128
		$GLOBALS['_GEN_commun']['pear_auth']->password = substr($_COOKIE[$cookie_utilisateur_nom], 0, 32 );
Line 111... Line 129...
111
		$GLOBALS['_GEN_commun']['pear_auth']->username = substr($_COOKIE[$cookie_utilisateur_nom], 32);
129
		$GLOBALS['_GEN_commun']['pear_auth']->username = substr($_COOKIE[$cookie_utilisateur_nom], 32);
112
 
130
 
113
		// Nous sommes obligés de crypter le mot de passe
131
		// Le mot de passe est déjé crypté dans cookie donc il faut indiquer é pear de ne pas le re crytper
114
		if (isset($GLOBALS['_GEN_commun']['pear_auth']->storage_options)) {
132
		if (isset($GLOBALS['_GEN_commun']['pear_auth']->storage_options)) {
115
			$GLOBALS['_GEN_commun']['pear_auth']->storage_options['cryptType'] = 'none';
133
			$GLOBALS['_GEN_commun']['pear_auth']->storage_options['cryptType'] = 'none';
116
		}
134
		}
117
		if (isset($GLOBALS['_GEN_commun']['pear_auth']->storage->options)) {
135
		if (isset($GLOBALS['_GEN_commun']['pear_auth']->storage->options)) {
118
			$GLOBALS['_GEN_commun']['pear_auth']->storage->options['cryptType'] = 'none';
136
			$GLOBALS['_GEN_commun']['pear_auth']->storage->options['cryptType'] = 'none';
-
 
137
		}
-
 
138
    }
-
 
139
    
-
 
140
    if(IDEN_UTILISE_SSO) {
-
 
141
    	// Si nous n'avons pas de cookie, on redirige vers le sso pour vérifier la présence du jeton
-
 
142
    	// attention ceci entraine une redirection suivie d'un exit
-
 
143
    	$identification->verifierIdentiteEtRediriger();
119
		}
144
    }
120
    }
145
        
Line 121... Line 146...
121
    $GLOBALS['_GEN_commun']['pear_auth']->login();
146
    $GLOBALS['_GEN_commun']['pear_auth']->login();
122
}
147
}
Line 128... Line 153...
128
/** Fonction afficherFormIdentification() - Retourne une formulaire pour s'identifier.
153
/** Fonction afficherFormIdentification() - Retourne une formulaire pour s'identifier.
129
*
154
*
130
* Retourne un formulaire d'identificatin ou de déconnexion suivant que l'utilisateur est
155
* Retourne un formulaire d'identificatin ou de déconnexion suivant que l'utilisateur est
131
* identifié ou pas.
156
* identifié ou pas.
132
*
157
*
133
* @param  array  tableau d'éventuel arguments présent dans la balise transmis à la fonction.
158
* @param  array  tableau d'éventuel arguments présent dans la balise transmis é la fonction.
134
* @param  array  tableau global de Papyrus.
159
* @param  array  tableau global de Papyrus.
135
* @return string formulaire de connexion ou de déconnexion.
160
* @return string formulaire de connexion ou de déconnexion.
136
*/
161
*/
137
function afficherFormIdentification($tab_arguments, $_GEN_commun)
162
function afficherFormIdentification($tab_arguments, $_GEN_commun)
138
{
163
{
Line 166... Line 191...
166
    $objet_url->removeQueryString('logout');
191
    $objet_url->removeQueryString('logout');
167
    // Récupération des valeurs pour le login et le mot de passe
192
    // Récupération des valeurs pour le login et le mot de passe
168
    $mot_de_passe = (! isset($_POST['password']))    ? '' : $_POST['password'];
193
    $mot_de_passe = (! isset($_POST['password']))    ? '' : $_POST['password'];
169
    $login        = (! isset($_POST['username']))    ? '' : $_POST['username'];
194
    $login        = (! isset($_POST['username']))    ? '' : $_POST['username'];
Line 170... Line 195...
170
 
195
 
Line 171... Line 196...
171
    $url_inscription_aide = (isset($InfoAuthBdd->url_erreur) ? $InfoAuthBdd->url_erreur : 'erreur');
196
    $url_inscription_aide = $InfoAuthBdd->url_erreur;
172
 
197
 
173
    // ATTENTION : Partie à supprimer une fois les mise à jour effectué dans l'annuaire de Tela Botanica
198
    // ATTENTION : Partie é supprimer une fois les mise é jour effectué dans l'annuaire de Tela Botanica
174
    // Devrait être déplacer dans l'appli inscription de Tela.
199
    // Devrait étre déplacer dans l'appli inscription de Tela.
175
    if (isset($InfoAuthBdd->gsab_nom_table) && $InfoAuthBdd->gsab_nom_table == 'annuaire_tela') {
200
    if (isset($InfoAuthBdd->gsab_nom_table) && $InfoAuthBdd->gsab_nom_table == 'annuaire_tela') {
176
        verification_mot_de_passe($objet_pear_db, $mot_de_passe, $login);
201
        verification_mot_de_passe($objet_pear_db, $mot_de_passe, $login);
177
        if (isset($_POST['connexion'])) {
202
        if (isset($_POST['connexion'])) {
Line 242... Line 267...
242
* $Log: identification.php,v $
267
* $Log: identification.php,v $
243
* Revision 1.37  2008-04-18 14:19:09  jp_milcent
268
* Revision 1.37  2008-04-18 14:19:09  jp_milcent
244
* Fusion avec la livraison AHA : 18 avril 2008
269
* Fusion avec la livraison AHA : 18 avril 2008
245
*
270
*
246
* Revision 1.35.2.2  2008-04-18 14:14:55  jp_milcent
271
* Revision 1.35.2.2  2008-04-18 14:14:55  jp_milcent
247
* Gestion de plusieurs applettes identifications sur la même page html.
272
* Gestion de plusieurs applettes identifications sur la même page html.
248
* Correction de bogues.
273
* Correction de bogues.
249
*
274
*
250
* Revision 1.36  2007-11-27 11:26:55  jp_milcent
275
* Revision 1.36  2007-11-27 11:26:55  jp_milcent
251
* Fusion avec la livraison AHA : 27 novembre 2007
276
* Fusion avec la livraison AHA : 27 novembre 2007
252
*
277
*
Line 264... Line 289...
264
*
289
*
265
* Revision 1.32  2007-08-28 14:14:35  jp_milcent
290
* Revision 1.32  2007-08-28 14:14:35  jp_milcent
266
* Ajout de la gestion des erreurs d'identification.
291
* Ajout de la gestion des erreurs d'identification.
267
*
292
*
268
* Revision 1.31  2006-12-15 14:49:47  jp_milcent
293
* Revision 1.31  2006-12-15 14:49:47  jp_milcent
269
* Correction bogue : le type de cryptage est stocké à 2 endroits...
294
* Correction bogue : le type de cryptage est stocké é 2 endroits...
270
*
295
*
271
* Revision 1.30  2006/12/14 15:01:05  jp_milcent
296
* Revision 1.30  2006/12/14 15:01:05  jp_milcent
272
* Utilisation d'un système permettant de mémoriser les idenitifications.
297
* Utilisation d'un systéme permettant de mémoriser les idenitifications.
273
* Passage à Auth 1.4.3 et DB 1.7.6.
298
* Passage é Auth 1.4.3 et DB 1.7.6.
274
*
299
*
275
* Revision 1.29  2006/12/12 13:53:54  jp_milcent
300
* Revision 1.29  2006/12/12 13:53:54  jp_milcent
276
* Mise en place du nouveau format des balises d'applette.
301
* Mise en place du nouveau format des balises d'applette.
277
*
302
*
278
* Revision 1.28  2006/12/12 13:26:42  jp_milcent
303
* Revision 1.28  2006/12/12 13:26:42  jp_milcent
Line 284... Line 309...
284
* Revision 1.26  2006/12/01 16:33:40  florian
309
* Revision 1.26  2006/12/01 16:33:40  florian
285
* Amélioration de la gestion des applettes et compatibilité avec le nouveau mode de gestion de l'inclusion des applettes.
310
* Amélioration de la gestion des applettes et compatibilité avec le nouveau mode de gestion de l'inclusion des applettes.
286
*
311
*
287
* Revision 1.25  2006/11/20 18:40:33  jp_milcent
312
* Revision 1.25  2006/11/20 18:40:33  jp_milcent
288
* Amélioration de la gestion des infos sur l'inscription.
313
* Amélioration de la gestion des infos sur l'inscription.
289
* Ajout du paramêtre url_inscription_aide permettant d'indiquer l'url vers une page d'aide sur l'inscription.
314
* Ajout du paramétre url_inscription_aide permettant d'indiquer l'url vers une page d'aide sur l'inscription.
290
*
315
*
291
* Revision 1.24  2006/11/20 17:42:40  jp_milcent
316
* Revision 1.24  2006/11/20 17:42:40  jp_milcent
292
* Ajout d'un test activant ou pas la mémorisation de l'identification.
317
* Ajout d'un test activant ou pas la mémorisation de l'identification.
293
*
318
*
294
* Revision 1.23  2006/11/20 17:30:40  jp_milcent
319
* Revision 1.23  2006/11/20 17:30:40  jp_milcent
Line 310... Line 335...
310
*
335
*
311
* Revision 1.20  2005/12/13 11:13:35  alexandre_tb
336
* Revision 1.20  2005/12/13 11:13:35  alexandre_tb
312
* ajout d'un message si l'identification échoue
337
* ajout d'un message si l'identification échoue
313
*
338
*
314
* Revision 1.19  2005/10/31 17:09:28  ddelon
339
* Revision 1.19  2005/10/31 17:09:28  ddelon
315
* Suppression auth start suite à deconnexion ... attention aux effets de bord
340
* Suppression auth start suite é deconnexion ... attention aux effets de bord
316
*
341
*
317
* Revision 1.18  2005/09/27 09:07:32  ddelon
342
* Revision 1.18  2005/09/27 09:07:32  ddelon
318
* size applette et squelettes
343
* size applette et squelettes
319
*
344
*
320
* Revision 1.17  2005/09/12 09:17:17  alexandre_tb
345
* Revision 1.17  2005/09/12 09:17:17  alexandre_tb
Line 331... Line 356...
331
*
356
*
332
* Revision 1.13  2005/04/14 16:37:22  jpm
357
* Revision 1.13  2005/04/14 16:37:22  jpm
333
* Ajout de la gestion de la modification de son inscription.
358
* Ajout de la gestion de la modification de son inscription.
334
*
359
*
335
* Revision 1.12  2005/03/25 14:40:51  jpm
360
* Revision 1.12  2005/03/25 14:40:51  jpm
336
* Prise en compte du paramêtre url_inscription permettant de faire figurer dans l'applette inscription un lien vers la page d'inscription.
361
* Prise en compte du paramétre url_inscription permettant de faire figurer dans l'applette inscription un lien vers la page d'inscription.
337
*
362
*
338
* Revision 1.11  2005/03/17 15:52:17  jpm
363
* Revision 1.11  2005/03/17 15:52:17  jpm
339
* Suppression d'un / causant un bogue.
364
* Suppression d'un / causant un bogue.
340
*
365
*
341
* Revision 1.10  2005/03/15 14:47:14  jpm
366
* Revision 1.10  2005/03/15 14:47:14  jpm
342
* Utilisation d'un lien à la place d'un formulaire pour la déconnexion.
367
* Utilisation d'un lien é la place d'un formulaire pour la déconnexion.
343
*
368
*
344
* Revision 1.9  2005/03/15 14:17:46  jpm
369
* Revision 1.9  2005/03/15 14:17:46  jpm
345
* Ajout d'un fichier de config et de traduction.
370
* Ajout d'un fichier de config et de traduction.
346
* Début gestion des constantes de langue.
371
* Début gestion des constantes de langue.
347
*
372
*
348
* Revision 1.8  2005/03/10 12:50:44  alex
373
* Revision 1.8  2005/03/10 12:50:44  alex
349
* remplacement de & par  &amp;
374
* remplacement de & par  &amp;
350
*
375
*
351
* Revision 1.7  2005/01/07 12:43:03  alex
376
* Revision 1.7  2005/01/07 12:43:03  alex
352
* réauction de la taille des champs texte à 12
377
* réauction de la taille des champs texte é 12
353
*
378
*
354
* Revision 1.6  2004/12/13 18:07:09  alex
379
* Revision 1.6  2004/12/13 18:07:09  alex
355
* désauthentification spip presque parfaite
380
* désauthentification spip presque parfaite
356
*
381
*
357
* Revision 1.5  2004/09/23 14:31:12  jpm
382
* Revision 1.5  2004/09/23 14:31:12  jpm
Line 368... Line 393...
368
*
393
*
369
* Revision 1.1  2004/06/15 15:01:41  jpm
394
* Revision 1.1  2004/06/15 15:01:41  jpm
370
* Changement de nom et d'arborescence de Genesia en Papyrus.
395
* Changement de nom et d'arborescence de Genesia en Papyrus.
371
*
396
*
372
* Revision 1.5  2004/05/05 06:44:15  jpm
397
* Revision 1.5  2004/05/05 06:44:15  jpm
373
* Complément des commentaires indiquant les paquetages nécessaire à l'applette.
398
* Complément des commentaires indiquant les paquetages nécessaire é l'applette.
374
*
399
*
375
* Revision 1.4  2004/05/03 11:18:55  jpm
400
* Revision 1.4  2004/05/03 11:18:55  jpm
376
* Intégration de la variable globale de Génésia dans les arguments de la fonction de l'applette.
401
* Intégration de la variable globale de Génésia dans les arguments de la fonction de l'applette.
377
*
402
*
378
* Revision 1.3  2004/05/01 17:21:16  jpm
403
* Revision 1.3  2004/05/01 17:21:16  jpm