Changeset 114843 in spip-zone


Ignore:
Timestamp:
Apr 6, 2019, 3:35:39 PM (4 months ago)
Author:
rastapopoulos@…
Message:

1) On force le mot de passe à non vide, afin d'autoriser les gens à le changer ! 2) On corrige tous les anciens profils avec pass non vide aussi. 3) On ajoute une nouvelle option pour les admins, leur permettant d'envoyer une notification aux gens quand ça créé un nouveau compte, aussi bien par le formulaire unitaire que par l'importation CSV. 4) Au passage on corrige une erreur SQL pour la suppression des coordonnées : seulement quand c'était une existante, pas new… => On passe en 1.5, en plus avec les modifs de tcharlss juste avant sur l'affichage.

Location:
_plugins_/profils/trunk
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/profils/trunk/formulaires/importer_profils.php

    r111029 r114843  
    2626                        ),
    2727                ),
     28                array(
     29                        'saisie' => 'case',
     30                        'options' => array(
     31                                'nom' => 'envoyer_notification',
     32                                'label_case' => _T('profil:envoyer_notification_label_case'),
     33                                'pleine_largeur' => 'oui',
     34                        ),
     35                ),
    2836                'options' => array(
    2937                        'texte_submit' => _T('bouton_upload'),
     
    4250        $fichier = $_FILES['fichier']['tmp_name'];
    4351        $importer_csv = charger_fonction('importer_csv', 'inc/');
     52        $envoyer_notification = _request('envoyer_notification') ? true : false;
    4453       
    4554        // Si on récupère bien un tableau
     
    6675                                'importer_csv_profil',
    6776                                'Importer le profil "'.$nom.'"',
    68                                 array($id_profil, $profil),
     77                                array($id_profil, $profil, $envoyer_notification),
    6978                                'inc/'
    7079                        ) > 0){
  • _plugins_/profils/trunk/formulaires/profil.php

    r112249 r114843  
    1414}
    1515
     16include_spip('inc/autoriser');
    1617include_spip('base/objets');
    1718include_spip('inc/actions');
     
    5455        $saisies = profils_chercher_saisies_profil('edition', $id_auteur, $id_ou_identifiant_profil);
    5556       
     57        // Si c'est pour une création et qu'on est admin
     58        if (!intval($id_auteur) and autoriser('creer', 'auteur')) {
     59                array_unshift($saisies, array(
     60                        'saisie' => 'case',
     61                        'options' => array(
     62                                'nom' => 'envoyer_notification',
     63                                'label_case' => _T('profil:envoyer_notification_label_case'),
     64                                'conteneur_class' => 'pleine_largeur',
     65                        ),
     66                ));
     67        }
     68       
    5669        return $saisies;
    5770}
     
    7285 */
    7386function formulaires_profil_charger_dist($id_auteur = 'new', $id_ou_identifiant_profil = '', $retour = '', $forcer_admin=false) {
    74         include_spip('inc/autoriser');
    7587        $contexte = array();
    7688       
     
    239251                                else {
    240252                                        include_spip('action/editer_objet');
    241                                         $id_auteur = objet_inserer('auteur', null, array('statut' => '6forum'));
     253                                        $id_auteur = objet_inserer('auteur', null, array('statut' => '6forum', 'pass' => ' '));
     254                                       
     255                                        // Si on doit envoyer une notification à la création (et qu'on a un email…)
     256                                        if ($email_principal and _request('envoyer_notification')) {
     257                                                include_spip('action/inscrire_auteur');
     258                                                $cookie = auteur_attribuer_jeton($id_auteur);
     259                                               
     260                                                include_spip('inc/filtres');
     261                                                $notification = recuperer_fond(
     262                                                        'notifications/profil_motdepasse',
     263                                                        array(
     264                                                                'nom' => $nom_principal,
     265                                                                'email' => $email_principal,
     266                                                                'sendcookie' => url_absolue(
     267                                                                        generer_url_public('spip_pass', "p=$cookie"),
     268                                                                        $GLOBALS['meta']['adresse_site'] . '/'
     269                                                                )
     270                                                        )
     271                                                );
     272                                                include_spip('inc/notifications');
     273                                                notifications_envoyer_mails($email_principal, $notification);
     274                                        }
    242275                                }
    243276                        }
     
    358391                                                                                $retours = array_merge($retours_coordonnee, $retours);
    359392                                                                        }
    360                                                                         // Sinon, tous les champs sont vides, on peut la supprimer pour faire du ménage
    361                                                                         else {
     393                                                                        // Sinon, tous les champs sont vides, on peut la supprimer pour faire du ménage, si c'est une coordonnée existante
     394                                                                        elseif ($id_coordonnee = intval($id_coordonnee)) {
    362395                                                                                sql_delete(table_objet_sql($coordonnee), id_table_objet($coordonnee) . '=' . $id_coordonnee);
    363396                                                                                sql_delete(table_objet_sql($coordonnee) . '_liens', id_table_objet($coordonnee) . '=' . $id_coordonnee);
  • _plugins_/profils/trunk/inc/importer_csv_profil.php

    r111029 r114843  
    55}
    66
    7 function inc_importer_csv_profil_dist($id_profil, $profil) {
     7function inc_importer_csv_profil_dist($id_profil, $profil, $envoyer_notification) {
    88        // À partir de chaque colonne, on va générer les request nécessaires pour lancer le traitement du formulaire
    99        $champs_auteur = array();
     
    4545        set_request('contact', $champs_contact);
    4646        set_request('coordonnees', $champs_coordonnees);
     47        set_request('envoyer_notification', $envoyer_notification);
    4748       
    4849        $traiter = charger_fonction('traiter', 'formulaires/profil');
  • _plugins_/profils/trunk/lang/profil_fr.php

    r114801 r114843  
    5151       
    5252        // E
     53        'envoyer_notification_label_case' => 'Envoyer une notification invitant à définir son mot de passe',
    5354        'erreur_email_obligatoire' => 'Il doit y avoir un email obligatoire dans les champs ou dans les coordonnées.',
    5455        'errreur_identifiant_existant' => 'Cet identifiant est déjà utilisé',
     
    6364        'info_nb_profils' => '@nb@ profils',
    6465        'info_profils_auteur' => 'Les profils de cet auteur',
     66       
     67        // N
     68        'notification_motdepasse_titre' => 'Nouveau compte',
     69        'notification_motdepasse_texte' => 'Un nouveau compte vient d’être créé pour vous sur le site
     70@nom_site_spip@ (@adresse_site@)
    6571
     72Veuillez vous rendre à l’adresse suivante :
     73
     74    @sendcookie@
     75
     76Vous pourrez alors définir un mot de passe
     77et vous connecter au site avec votre adresse email @email@.
     78
     79',
     80       
    6681        // R
    6782        'retirer_lien_profil' => 'Retirer ce profil',
  • _plugins_/profils/trunk/paquet.xml

    r114801 r114843  
    22        prefix="profils"
    33        categorie="auteur"
    4         version="1.4.4"
    5         schema="1.0.0"
     4        version="1.5.0"
     5        schema="1.0.1"
    66        etat="stable"
    77        compatibilite="[3.2.0;3.2.*]"
  • _plugins_/profils/trunk/profils_administrations.php

    r108662 r114843  
    2727        $maj = array();
    2828
    29         $maj['create'] = array(array('maj_tables', array('spip_profils', 'spip_auteurs')));
    30 
     29        $maj['create'] = array(
     30                array('maj_tables', array('spip_profils', 'spip_auteurs'))
     31        );
     32       
     33        $maj['1.0.1'] = array(
     34                array('sql_updateq', 'spip_auteurs', array('pass' => ' '), array('id_profil>0', 'pass=""'))
     35        );
     36       
    3137        include_spip('base/upgrade');
    3238        maj_plugin($nom_meta_base_version, $version_cible, $maj);
  • _plugins_/profils/trunk/profils_pipelines.php

    r114799 r114843  
    284284                                                                                $retours = array_merge($retours_coordonnee, $retours);
    285285                                                                        }
    286                                                                         // Sinon, tous les champs sont vides, on peut la supprimer pour faire du ménage
    287                                                                         else {
     286                                                                        // Sinon, tous les champs sont vides, on peut la supprimer pour faire du ménage, si c'est une coordonnée existante
     287                                                                        elseif ($id_coordonnee = intval($id_coordonnee)) {
    288288                                                                                sql_delete(table_objet_sql($coordonnee), id_table_objet($coordonnee) . '=' . $id_coordonnee);
    289289                                                                                sql_delete(table_objet_sql($coordonnee) . '_liens', id_table_objet($coordonnee) . '=' . $id_coordonnee);
Note: See TracChangeset for help on using the changeset viewer.