196 lines
5.4 KiB
PHP
196 lines
5.4 KiB
PHP
<?php
|
|
if (!defined('_ECRIRE_INC_VERSION')) return;
|
|
|
|
function formulaires_editer_compte_spip_saisies_dist($id_auteur = 'new', $redirect = '') {
|
|
$saisies = $GLOBALS['comptespip_editer'];
|
|
return $saisies;
|
|
}
|
|
|
|
function comptespip_recupIdauteur($id_auteur){
|
|
include_spip('inc/autoriser');
|
|
static $id;
|
|
if ($id === null) {
|
|
if (autoriser("administrer","comptespip") and intval($id_auteur)) {
|
|
$id = intval($id_auteur);
|
|
}
|
|
if (isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur']) {
|
|
$id = $GLOBALS['visiteur_session']['id_auteur'];
|
|
}
|
|
$id = 'new';
|
|
}
|
|
return $id;
|
|
}
|
|
|
|
function formulaires_editer_compte_spip_charger_dist($id_auteur = 'new', $redirect = ''){
|
|
$id_auteur = comptespip_recupIdauteur($id_auteur);
|
|
|
|
$valeurs = [];
|
|
if (intval($id_auteur)) {
|
|
$valeurs = sql_fetsel('*', 'spip_auteurs', 'id_auteur='.intval($id_auteur));
|
|
}
|
|
|
|
$valeurs['password'] = '';
|
|
$valeurs['password_confirmation'] = '';
|
|
if (lire_config('comptespip/modif_logo_auteur')) {
|
|
$valeurs['_bigup_rechercher_fichiers'] = 'true';
|
|
$valeurs['logo'] = '';
|
|
}
|
|
|
|
return $valeurs;
|
|
}
|
|
|
|
function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redirect = ''){
|
|
$id_auteur = comptespip_recupIdauteur($id_auteur);
|
|
|
|
$erreurs = array();
|
|
$mode = lire_config('comptespip/statut');
|
|
if (!in_array($mode, ['6forum', '1comite', '0minirezo'])) {
|
|
$erreurs['message_erreur'] = _T('pass_rien_a_faire_ici');
|
|
}
|
|
|
|
// mot de passe
|
|
if (_request('password') != _request('password_confirmation')){
|
|
$erreurs['password_confirmation'] = _T('info_passes_identiques');
|
|
}
|
|
|
|
if ( strlen(_request('password')) > 0 and 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');
|
|
//}
|
|
|
|
// email
|
|
if (!$mail = strval(_request('email'))) {
|
|
$erreurs['email'] = _T('info_obligatoire');
|
|
} else {
|
|
include_spip('inc/filtres');
|
|
if (!email_valide($mail)) {
|
|
$erreurs['email'] = _T('info_email_invalide');
|
|
} else {
|
|
$unicite_email = lire_config('comptespip/unicite_email');
|
|
if ( $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, _request('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']),
|
|
'id_auteur!='.intval($id_auteur)
|
|
]
|
|
)) {
|
|
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');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return $erreurs;
|
|
}
|
|
|
|
function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redirect = ''){
|
|
|
|
$saisies = $GLOBALS['comptespip_editer'];
|
|
$id_auteur = comptespip_recupIdauteur($id_auteur);
|
|
$retour = [];
|
|
include_spip('action/editer_auteur');
|
|
|
|
if (!intval($id_auteur)) {
|
|
$id_auteur = auteur_inserer();
|
|
}
|
|
|
|
if (!empty($saisies)) {
|
|
$set = [];
|
|
foreach ($saisies as $saisie) {
|
|
$champ = $saisie['options']['nom'];
|
|
if (isset($f) and !empty($f)) {
|
|
$f($id_auteur, $champ, _request($champ));
|
|
} else {
|
|
$set[$champ] = _request($champ);
|
|
}
|
|
}
|
|
if (count($set) > 0) {
|
|
$r = auteur_modifier($id_auteur, $set);
|
|
}
|
|
}
|
|
|
|
// gestion du login et du password
|
|
if (_request('login')) {
|
|
$login = _request('login');
|
|
}
|
|
if (_request('password')) {
|
|
$pass = _request('password');
|
|
}
|
|
|
|
$set_instituer = [
|
|
'pass' => $pass,
|
|
'login' => $login
|
|
];
|
|
auteur_instituer($id_auteur, $set_instituer);
|
|
|
|
if (lire_config('comptespip/modif_logo_auteur')) {
|
|
comptespip_save_logo_auteur($id_auteur);
|
|
}
|
|
|
|
|
|
include_spip('inc/invalideur');
|
|
suivre_invalideur("id='id_auteur/$id_auteur'");
|
|
|
|
if ($r) {
|
|
$retour['message_erreur'] = $r;
|
|
} else {
|
|
$retour['message_ok'] = _T('comptespip/modification_compte_ok');
|
|
}
|
|
if ($redirect) {
|
|
$retour['redirect'] = $redirect;
|
|
}
|
|
|
|
return $retour;
|
|
}
|
|
|
|
function comptespip_save_logo_auteur($id_auteur){
|
|
include_spip('inc/joindre_document');
|
|
set_request('joindre_upload','ok');
|
|
|
|
$files = joindre_trouver_fichier_envoye();
|
|
if (is_array($files)) {
|
|
include_spip('action/editer_logo');
|
|
logo_supprimer('auteur', $id_auteur, 'on');
|
|
include_spip('inc/autoriser');
|
|
autoriser_exception('modifier', 'auteur', $id_auteur);
|
|
$ajouter_document = charger_fonction('ajouter_documents', 'action');
|
|
$ajouter_document('new', $files, "auteur", $id_auteur, 'logoon');
|
|
autoriser_exception('modifier', 'article', $id_auteur, false);
|
|
}
|
|
}
|