<?php
// +-------------------------------------------------+
// | 2002-2025 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
// +-------------------------------------------------+
// $Id: mail_user_temp_password.class.php,v 1.2 2026/07/02 13:47:56 dgoron Exp $

if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");

/**
 * Envoi d'un mot de passe provisoire par mail a un utilisateur PMB (gestion).
 *
 * Variables de substitution disponibles dans le corps du mail :
 *   !!pwd!!        : le mot de passe provisoire en clair
 *   !!user_login!! : le login de l'utilisateur
 *   !!user_name!!  : le nom complet de l'utilisateur (prenom nom)
 *
 * Parametres DB : type_param='user', sstype_param='send_pwd_mail_obj' et 'send_pwd_mail_text'
 */
class mail_user_temp_password extends mail_user {

    /** @var string Mot de passe provisoire en clair a envoyer */
    protected $temp_password;

    protected function _init_default_settings() {
        parent::_init_default_settings();
        $this->_init_setting_value('sender', 'user');
    }

    /**
     * @return string Objet du mail (issu du parametre user_send_pwd_mail_obj)
     */
    protected function get_mail_object() {
        global $pmb_send_pwd_mail_obj;
        return $pmb_send_pwd_mail_obj;
    }

    /**
     * @return string Corps du mail avec les variables substituees
     */
    protected function get_mail_content() {
        global $pmb_send_pwd_mail_text;
        
        return str_replace(
            ['!!pwd!!', '!!user_login!!', '!!user_name!!'],
            [$this->temp_password, $this->get_user_login(), $this->get_mail_to_name()],
            $pmb_send_pwd_mail_text
        );
    }

    protected function get_mail_headers() {
        global $charset;

        $headers  = "MIME-Version: 1.0\n";
        $headers .= "Content-type: text/html; charset=" . $charset . "\n";
        return $headers;
    }

    protected function get_mail_do_nl2br() {
        return 1;
    }

    /**
     * @return string Login de l'utilisateur
     */
    protected function get_user_login() {
        $query = "SELECT username FROM users WHERE userid = " . intval($this->mail_to_id);
        $result = pmb_mysql_query($query);
        if (pmb_mysql_num_rows($result)) {
            return pmb_mysql_result($result, 0, 0);
        }
        return '';
    }

    /**
     * @param string $temp_password Mot de passe provisoire en clair
     * @return $this
     */
    public function set_temp_password($temp_password) {
        $this->temp_password = $temp_password;
        return $this;
    }
}
