gamuMail/gamumail_administrations.php

129 lines
4 KiB
PHP

<?php
/**
* Fichier gérant l'installation et désinstallation du plugin GamuMail
*
* @plugin GamuMail
* @copyright 2020
* @author tofulm
* @licence GNU/GPL
* @package SPIP\Gamumail\Installation
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Fonction d'installation et de mise à jour du plugin GamuMail.
*
* @param string $nom_meta_base_version
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
* @param string $version_cible
* Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
* @return void
**/
function gamumail_upgrade($nom_meta_base_version, $version_cible) {
$maj = array();
$maj['create'] = array(
array('maj_tables', array('spip_gamumails')),
array('creer_compte_curl', 'creer_slugs'),
);
$maj['1.0.2'] = array(array('maj_tables', array('spip_gamumails')));
$maj['1.0.5'] = array(array('creer_compte_curl'));
$maj['1.0.6'] = array(array('maj_tables', array('spip_gamumails')));
$maj['1.0.11'] = array( array('maj_tables', array('spip_gamumails')));
$maj['1.0.12'] = array(array('creer_compte_curl'));
$maj['1.0.14'] = array(array('maj_tables', array('spip_gamumails')));
$maj['1.0.16'] = array(array('maj_tables', array('spip_gamumails')));
$maj['1.0.17'] = array(array('creer_slugs'));
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
// créer les slugs fournis avec Gamumail
function creer_slugs() {
if (!sql_countsel('spip_gamumails', 'slug="valider_inscription"')) {
$set = [
'slug' => 'valider_inscription',
'titre' => 'Message de création de compte : validation de l\'adresse mail',
'sujet' => '[@@nom_site@@] Création de votre compte',
'texte' => 'Bonjour @@nom@@,
Vous venez de créer votre compte sur @@url_site@@ avec l\'identifiant de connexion @@mail_compte@@.
[Merci de cliquer sur ce lien pour le confirmer et vous connecter->@@url_token@@].
— Envoyé par @@nom_site@@ (@@url_site@@)',
'statut' => 'publie',
'public' => 'non',
'rang' => '999'
];
sql_insertq('spip_gamumails', $set);
}
if (!sql_countsel('spip_gamumails', 'slug="pass_oubli"')) {
$set = [
'slug' => 'pass_oubli',
'titre' => 'Message de reset du mot de passe',
'sujet' => '[@@nom_site@@] récupération de votre mot de passe',
'texte' => 'Pour récupérer votre accès @@nom_site@@ (@@url_site@@), merci de suivre ce lien :
@@url_spip_pass@@
Vous pourrez alors saisir un nouveau mot de passe et vous connecter au site
— Envoyé par @@nom_site@@ (@@url_site@@)',
'statut' => 'publie',
'public' => 'non',
'rang' => '999'
];
sql_insertq('spip_gamumails', $set);
}
}
function creer_compte_curl(){
if (sql_countsel('spip_auteurs', 'nom="curl_login"')){
return;
}
$mdp = uniqid(uniqid(),1);
$set = [
'nom' => 'curl_login',
'login' => hash('md5', 'curl_login'.time()),
'pass' => hash('sha256', $mdp),
'statut' => '1comite'
];
include_spip('action/editer_auteur');
$id_auteur = auteur_inserer(null, $set);
if ($id_auteur) {
include_spip('inc/config');
ecrire_config('curl_login', $set['login']);
ecrire_config('curl_mdp', $mdp);
}
}
/**
* Fonction de désinstallation du plugin GamuMail.
*
* @param string $nom_meta_base_version
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
* @return void
**/
function gamumail_vider_tables($nom_meta_base_version) {
sql_drop_table('spip_gamumails');
# Nettoyer les liens courants (le génie optimiser_base_disparus se chargera de nettoyer toutes les tables de liens)
sql_delete('spip_documents_liens', sql_in('objet', array('gamumail')));
sql_delete('spip_mots_liens', sql_in('objet', array('gamumail')));
sql_delete('spip_auteurs_liens', sql_in('objet', array('gamumail')));
# Nettoyer les versionnages et forums
sql_delete('spip_versions', sql_in('objet', array('gamumail')));
sql_delete('spip_versions_fragments', sql_in('objet', array('gamumail')));
sql_delete('spip_forum', sql_in('objet', array('gamumail')));
effacer_meta($nom_meta_base_version);
}