This commit is contained in:
KANE LAZENI 2026-01-22 20:23:43 +00:00
parent a378ba8a58
commit 195a5a2231
3 changed files with 136 additions and 0 deletions

View File

@ -0,0 +1,14 @@
<?php
require_once 'Framework/Controleur.php';
class ControleurAjaxsaisirpassnewuser extends Controleur {
public function __construct() {
}
public function index() {
$codeModeGenerationPass = $this->requete->getParametreFormulaire("codeModeGenerationPass");
$this->genererVueAjax(array('codeModeGenerationPass' => $codeModeGenerationPass));
}
}

View File

@ -99,4 +99,52 @@ class Societeuser extends Modele {
return $societe->fetch(PDO::FETCH_ASSOC); return $societe->fetch(PDO::FETCH_ASSOC);
} }
public function getparamsgenerationpass()
{
$codeSociete = $_SESSION['codeSociete'];
$sql = 'SELECT A.codeModeGenerationPass, B.libelle AS modegenerationpass, A.codeModeEnvoiPass FROM societeuser A
LEFT JOIN modegenerationpass B ON (B.codeModeGenerationPass=A.codeModeGenerationPass) WHERE (A.codeSociete=?) LIMIT 1;';
$resultat = $this->executerRequete($sql, array($codeSociete));;
$ligne = $resultat->fetch(PDO::FETCH_ASSOC);
return $ligne;
}
public function getmodeenvoipass()
{
if (est_anglophone())
{
$sql = 'SELECT codeModeEnvoiPass AS `code`, libelleEng AS libelle FROM modeenvoipass ORDER BY ordre;';
}
else
{
$sql = 'SELECT codeModeEnvoiPass AS `code`, libelle FROM modeenvoipass ORDER BY ordre;';
}
$resultat = $this->executerRequete($sql);
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getmodegenerationpass()
{
if (est_anglophone())
{
$sql = 'SELECT codeModeGenerationPass AS `code`, libelleEng AS libelle FROM modegenerationpass ORDER BY ordre;';
}
else
{
$sql = 'SELECT codeModeGenerationPass AS `code`, libelle FROM modegenerationpass ORDER BY ordre;';
}
$resultat = $this->executerRequete($sql);
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
} }

View File

@ -0,0 +1,74 @@
<?php if ($codeModeGenerationPass == "0"): ?>
<div class="row g-3 animate__animated animate__fadeIn">
<div class="col-md-6 mb-1">
<label class="form-label small fw-bold required"><?= _("Mot de passe") ?></label>
<div class="input-group shadow-sm">
<span class="input-group-text bg-light"><i class="fas fa-lock text-muted"></i></span>
<input type="password"
id="nvmdp"
name="nvmdp"
class="form-control"
placeholder="<?= _("Saisir le mot de passe") ?>"
onBlur="controle_longeur_passe(this);"
required
autocomplete="new-password">
<button class="btn btn-outline-secondary" type="button" onclick="togglePasswordVisibility('nvmdp')">
<i class="fas fa-eye" id="toggle_nvmdp"></i>
</button>
</div>
<div class="form-text extra-small"><?= _("8 caractères minimum recommandés") ?></div>
</div>
<div class="col-md-6 mb-1">
<label class="form-label small fw-bold required"><?= _("Confirmer le mot de passe") ?></label>
<div class="input-group shadow-sm">
<span class="input-group-text bg-light"><i class="fas fa-check-double text-muted"></i></span>
<input type="password"
id="cfnvmdp"
name="cfnvmdp"
class="form-control"
placeholder="<?= _("Confirmer") ?>"
onBlur="controle_new_pass();"
required
autocomplete="new-password">
<button class="btn btn-outline-secondary" type="button" onclick="togglePasswordVisibility('cfnvmdp')">
<i class="fas fa-eye" id="toggle_cfnvmdp"></i>
</button>
</div>
</div>
</div>
<?php else : ?>
<input type="hidden" id="nvmdp" name="nvmdp" value="">
<input type="hidden" id="cfnvmdp" name="cfnvmdp" value="">
<div class="alert alert-info d-flex align-items-center shadow-sm border-0" role="alert">
<i class="fas fa-magic me-2"></i>
<div>
<?= _("Le mot de passe sera généré automatiquement selon le mode choisi.") ?>
</div>
</div>
<?php endif; ?>
<script>
/**
* Alterne l'affichage du mot de passe entre texte et masqué
*/
function togglePasswordVisibility(id) {
const input = document.getElementById(id);
const icon = document.getElementById('toggle_' + id);
if (input.type === "password") {
input.type = "text";
icon.classList.replace('fa-eye', 'fa-eye-slash');
} else {
input.type = "password";
icon.classList.replace('fa-eye-slash', 'fa-eye');
}
}
</script>
<style>
.extra-small { font-size: 0.75rem; color: #6c757d; }
.required:after { content: " *"; color: #dc3545; }
.input-group-text { border-right: none; }
.form-control { border-left: none; }
.form-control:focus { border-left: 1px solid #86b7fe; }
</style>