[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / ecrire / action / confirmer_inscription.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2017 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 /**
14 * Gestion de l'action confirmer_inscription
15 *
16 * @package SPIP\Core\Inscription
17 */
18
19 if (!defined('_ECRIRE_INC_VERSION')) {
20 return;
21 }
22
23 /**
24 * Action de confirmation d'une inscription
25 *
26 * @global array $GLOBALS ['visiteur_session']
27 * @global string $GLOBALS ['redirect']
28 * @return void
29 */
30 function action_confirmer_inscription_dist() {
31 $jeton = _request('jeton');
32 $email = _request('email');
33
34 include_spip('action/inscrire_auteur');
35 if ($auteur = auteur_verifier_jeton($jeton)
36 and $auteur['email'] == $email
37 and $auteur['statut'] == 'nouveau'
38 ) {
39
40 // d'abord on confirme son statut
41 $auteur = confirmer_statut_inscription($auteur);
42
43 // OK c'est un nouvel inscrit qui confirme :
44 // on le loge => ca va confirmer son statut et c'est plus sympa
45 include_spip('inc/auth');
46 auth_loger($auteur);
47
48 // et on efface son jeton
49 auteur_effacer_jeton($auteur['id_auteur']);
50
51 // si pas de redirection demandee, rediriger vers public ou prive selon le statut de l'auteur
52 // TODO: ne semble pas marcher si inscrit non visiteur, a debug
53 if (!_request('redirect')) {
54 // on passe id_auteur explicite pour forcer une lecture en base de toutes les infos
55 if (autoriser('ecrire', '', '', $auteur['id_auteur'])) {
56 // poser un cookie admin aussi
57 $cookie = charger_fonction('cookie', 'action');
58 $cookie("@" . $GLOBALS['visiteur_session']['login']);
59 $GLOBALS['redirect'] = _DIR_RESTREINT_ABS;
60 } else {
61 $GLOBALS['redirect'] = $GLOBALS['meta']['adresse_site'];
62 }
63 }
64 } else {
65 // lien perime :
66 if ($GLOBALS['visiteur_session']['id_auteur']) {
67 // on passe id_auteur explicite pour forcer une lecture en base de toutes les infos
68 if (autoriser('ecrire', '', '', $GLOBALS['visiteur_session']['id_auteur'])) {
69 $GLOBALS['redirect'] = _DIR_RESTREINT_ABS;
70 } else {
71 $GLOBALS['redirect'] = $GLOBALS['meta']['adresse_site'];
72 }
73 } else // rediriger vers la page de login si pas encore loge
74 {
75 $GLOBALS['redirect'] = parametre_url(generer_url_public('login', '', false), 'url', _request('redirect'));
76 }
77 }
78
79 }