'', 'mail_inscription' => '', 'prenom' => '', 'password' => '', 'password_confirmation' => '', 'id' => $id, '_mode' => $mode, 'cle' ); return $valeurs; } // Si inscriptions pas autorisees, retourner une chaine d'avertissement function formulaires_inscription_verifier_dist($mode = '', $id = 0, $retour = '') { include_spip('inc/filtres'); $erreurs = array(); $mode = lire_config('comptespip/statut'); if (!in_array($mode, ['6forum', '1comite', '0minirezo'])) { $erreurs['message_erreur'] = _T('pass_rien_a_faire_ici'); } if (!$nom = _request('nom_inscription')) { $erreurs['nom_inscription'] = _T('info_obligatoire'); } elseif (!nom_acceptable(_request('nom_inscription'))) { $erreurs['nom_inscription'] = _T('ecrire:info_nom_pas_conforme'); } if (!$mail = strval(_request('mail_inscription'))) { $erreurs['mail_inscription'] = _T('info_obligatoire'); } else { include_spip('inc/filtres'); if (!email_valide($mail)) { $erreurs['mail_inscription'] = _T('info_email_invalide'); } } if (_request('password') != _request('password_confirmation')){ $erreurs['password_confirmation'] = _T('info_passes_identiques'); } if ( strlen(_request('password')) < _PASS_LONGUEUR_MINI ){ $erreurs['password'] = _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI)); } // Mais si l'un des deux champs n'est pas rempli, cette erreur prend le dessus if (!_request('password')){ $erreurs['password'] = _T('info_obligatoire'); } if (!_request('password_confirmation')){ $erreurs['password_confirmation'] = _T('info_obligatoire'); } $unicite_email = lire_config('comptespip/unicite_email'); if (!count($erreurs) and $unicite_email !== "non") { include_spip('action/inscrire_auteur'); if (function_exists('test_inscription')) { $f = 'test_inscription'; } else { $f = 'test_inscription_dist'; } $declaration = $f($mode, $mail, $nom, $id); if (is_string($declaration)) { $k = (strpos($declaration, 'mail') !== false) ? 'mail_inscription' : 'nom_inscription'; $erreurs[$k] = _T($declaration); } else { include_spip('base/abstract_sql'); if ($row = sql_fetsel( 'statut, id_auteur, login, email', 'spip_auteurs', 'email=' . sql_quote($declaration['email']) )) { if (($row['statut'] == '5poubelle') and empty($declaration['pass'])) { // irrecuperable $erreurs['message_erreur'] = _T('form_forum_access_refuse'); } else { if (($row['statut'] != 'nouveau') and empty($declaration['pass'])) { if (intval($row['statut']) > intval($mode)) { set_request('_upgrade_auteur', $row['id_auteur']); } else { // deja inscrit $erreurs['message_erreur'] = _T('form_forum_email_deja_enregistre'); } } } spip_log($row['id_auteur'] . ' veut se resinscrire'); } } } return $erreurs; } function formulaires_inscription_traiter_dist($mode = '', $id = 0, $retour = '') { include_spip('inc/filtres'); include_spip('inc/autoriser'); include_spip('action/editer_auteur'); //if (!autoriser('inscrireauteur', $mode, $id)) { $mode = lire_config('comptespip/statut'); if (!in_array($mode, ['6forum', '1comite', '0minirezo'])) { $desc = 'rien a faire ici'; } else { $nom = _request('nom_inscription'); $mail_complet = _request('mail_inscription'); $prenom = _request('prenom'); $set_auteurs = [ 'nom' => $nom, 'email' => $mail_complet, 'statut' => '1comite', 'login' => 'login_'.time(), 'prenom' => $prenom, ]; // associer un modele d'autorisations $aut_modele = lire_config('comptespip/aut_modele'); if ($aut_modele) { $autorisations = sql_getfetsel('aut_modele','spip_aut_modeles','nom='.sql_quote($aut_modele)); $set_auteurs['autorisations'] = $autorisations; $set_auteurs['aut_nom'] = $aut_modele; } $set_auteurs = pipeline('comptespip_pre_inscription',[ 'args' => [], 'data' => $set_auteurs ]); $id_auteur = auteur_inserer(null, $set_auteurs); $desc['id_auteur'] = $id_auteur; if ($id_auteur) { $search = [ ' ', "'", 'é' ]; $replace = [ '_', '_', 'e' ]; $login = strtolower(str_replace($search, $replace, $nom)); $login .= '_'.$id_auteur; $pass = _request('password'); $data = pipeline('comptespip_pre_login',[ 'args' => ['id_auteur' => $id_auteur], 'data' => [ 'login' => $login] ]); if (isset($data['login'])) { $login = $data['login']; } if (isset($data['pass'])) { $pass = $data['pass']; } $set_instituer = [ 'pass' => $pass, 'login' => $login ]; auteur_instituer($id_auteur, $set_instituer); } $f = charger_fonction('comptespip_mail_inscription','inc'); $f($id_auteur,compact('pass')); if (lire_config('comptespip/connexion_auto')) { // loguer le compte créé (on a vérifié par SMS) $auteur = sql_fetsel('*','spip_auteurs','id_auteur='.intval($id_auteur)); include_spip('inc/auth'); auth_loger($auteur); $retour = parametre_url(generer_url_public(lire_config('comptespip/page_redirection_connexion'),'',true),'id_auteur',intval($id_auteur)); if (lire_config('comptespip/page_redirection_connexion')) { $retour = parametre_url(generer_url_public(lire_config('comptespip/page_redirection_connexion'),'',true),'id_auteur',intval($id_auteur)); } return array('message_ok' => _T('form_forum_identifiant_mail'), 'redirect' => $retour); } } // erreur ? if (is_string($desc)) { return array('message_erreur' => $desc); } // OK else { return array('message_ok' => _T('form_forum_identifiant_mail'), 'id_auteur' => $desc['id_auteur']); } }