feat: admin panel + page paramètres + README mis à jour
Deploy to Pacha Family / deploy (push) Failing after 3s
Deploy to Pacha Family / deploy (push) Failing after 3s
- admin/index.php : gestion familles et utilisateurs (activer/désactiver, rôles, supprimer, regénérer code invite) - includes/admin_auth.php : protection des routes admin (403 si non-admin) - settings.php : page de config par compte (profil, mot de passe, code invitation, membres, lien admin) - login.php : vérification is_active user + famille, is_admin en session - docker/init/00-setup.sql : ajout colonnes is_admin, is_active sur users + is_active sur families - invite.php supprimé (remplacé par settings.php) - README.md : documentation complète multi-tenant, URLs, rôle admin Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
84db4b6619
commit
0494554c30
@@ -21,7 +21,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$error = tr('error_missing_fields');
|
||||
} else {
|
||||
$stmt = $meta_pdo->prepare("
|
||||
SELECT u.id, u.username, u.password_hash, u.display_name, u.family_id, f.db_name
|
||||
SELECT u.id, u.username, u.password_hash, u.display_name, u.family_id, u.is_admin, u.is_active, f.db_name, f.is_active as family_active
|
||||
FROM users u
|
||||
LEFT JOIN families f ON f.id = u.family_id
|
||||
WHERE u.username = ?
|
||||
@@ -30,16 +30,23 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$user = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($user && password_verify($password, $user['password_hash'])) {
|
||||
$_SESSION['user'] = [
|
||||
'id' => (int)$user['id'],
|
||||
'username' => $user['username'],
|
||||
'display_name' => $user['display_name'],
|
||||
'family_id' => (int)$user['family_id'],
|
||||
];
|
||||
$_SESSION['family_db'] = $user['db_name'];
|
||||
$redirectTo = $_GET['redirect'] ?? '/index.php';
|
||||
header('Location: ' . $redirectTo);
|
||||
exit;
|
||||
if (!$user['is_active']) {
|
||||
$error = "Compte désactivé. Contactez l'administrateur.";
|
||||
} elseif ($user['family_id'] && !$user['family_active']) {
|
||||
$error = "Espace familial désactivé. Contactez l'administrateur.";
|
||||
} else {
|
||||
$_SESSION['user'] = [
|
||||
'id' => (int)$user['id'],
|
||||
'username' => $user['username'],
|
||||
'display_name' => $user['display_name'],
|
||||
'family_id' => (int)$user['family_id'],
|
||||
'is_admin' => (bool)$user['is_admin'],
|
||||
];
|
||||
$_SESSION['family_db'] = $user['db_name'];
|
||||
$redirectTo = $_GET['redirect'] ?? '/index.php';
|
||||
header('Location: ' . $redirectTo);
|
||||
exit;
|
||||
}
|
||||
} else {
|
||||
$error = tr('error_invalid_credentials');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user