Files
webval/api/reset_password_eleve.php

66 lines
1.9 KiB
PHP

<?php
error_reporting(0);
ini_set('display_errors', 0);
ob_start();
header('Content-Type: application/json');
require_once '../config/config.php';
require_once '../config/database.php';
require_once '../config/session.php';
if (session_status() === PHP_SESSION_NONE) {
SessionManager::startSession();
}
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(['success' => false, 'message' => 'Méthode non autorisée']);
exit;
}
// CORRECTION : Utiliser les vraies clés de session
if (!isset($_SESSION['user_id']) || $_SESSION['type_libelle'] !== 'enseignant') {
echo json_encode(['success' => false, 'message' => 'Non autorisé']);
exit;
}
$id_eleve = $_POST['id_eleve'] ?? null;
if (!$id_eleve) {
echo json_encode(['success' => false, 'message' => 'ID élève manquant']);
exit;
}
try {
$db = Database::getInstance()->getConnection();
$stmt = $db->prepare("SELECT login FROM utilisateurs WHERE id_utilisateur = ? AND id_type IN (2, 3)");
$stmt->execute([$id_eleve]);
$eleve = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$eleve) {
echo json_encode(['success' => false, 'message' => 'Élève non trouvé']);
exit;
}
$nouveau_mdp = (strpos($eleve['login'], 'test.') === 0) ? 'test2025' : 'eleve2025';
$mdp_hash = password_hash($nouveau_mdp, PASSWORD_DEFAULT);
$stmt = $db->prepare("UPDATE utilisateurs SET mot_de_passe = ? WHERE id_utilisateur = ?");
$stmt->execute([$mdp_hash, $id_eleve]);
echo json_encode([
'success' => true,
'message' => "Mot de passe réinitialisé avec succès à $nouveau_mdp",
'data' => [
'login' => $eleve['login'],
'nouveau_mdp' => $nouveau_mdp
]
]);
} catch (Exception $e) {
echo json_encode(['success' => false, 'message' => 'Erreur serveur: ' . $e->getMessage()]);
}
ob_end_flush();
?>