prepare("SELECT id FROM users WHERE username = ? OR email = ?");
$stmt->execute([$_POST['username'], $_POST['email']]);
if ($stmt->fetch()) {
$error = 'Użytkownik o tej nazwie lub emailu już istnieje';
} else {
// Utwórz użytkownika
$hashedPassword = password_hash($_POST['password'], PASSWORD_DEFAULT);
$stmt = $db->prepare("
INSERT INTO users (username, email, password, role, status)
VALUES (?, ?, ?, ?, ?)
");
if ($stmt->execute([
$_POST['username'],
$_POST['email'],
$hashedPassword,
$_POST['role'],
$_POST['status']
])) {
$message = 'Użytkownik został utworzony';
logActivity('user_created', 'user', $db->lastInsertId());
} else {
$error = 'Błąd podczas tworzenia użytkownika';
}
}
}
break;
case 'update':
$stmt = $db->prepare("
UPDATE users
SET username = ?, email = ?, role = ?, status = ?
WHERE id = ?
");
if ($stmt->execute([
$_POST['username'],
$_POST['email'],
$_POST['role'],
$_POST['status'],
$_POST['id']
])) {
// Jeśli podano nowe hasło
if (!empty($_POST['password'])) {
$hashedPassword = password_hash($_POST['password'], PASSWORD_DEFAULT);
$stmt = $db->prepare("UPDATE users SET password = ? WHERE id = ?");
$stmt->execute([$hashedPassword, $_POST['id']]);
}
$message = 'Użytkownik został zaktualizowany';
logActivity('user_updated', 'user', $_POST['id']);
} else {
$error = 'Błąd podczas aktualizacji użytkownika';
}
break;
case 'delete':
// Nie pozwól usunąć własnego konta
if ($_POST['id'] == $_SESSION['user_id']) {
$error = 'Nie możesz usunąć własnego konta';
} else {
$stmt = $db->prepare("DELETE FROM users WHERE id = ?");
if ($stmt->execute([$_POST['id']])) {
$message = 'Użytkownik został usunięty';
logActivity('user_deleted', 'user', $_POST['id']);
}
}
break;
}
}
}
// Pobierz wszystkich użytkowników
$stmt = $db->query("
SELECT u.*,
(SELECT COUNT(*) FROM pages WHERE author_id = u.id) as page_count
FROM users u
ORDER BY u.created_at DESC
");
$users = $stmt->fetchAll();
// Tryb edycji
$editUser = null;
if (isset($_GET['edit'])) {
$stmt = $db->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$_GET['edit']]);
$editUser = $stmt->fetch();
}
?>
Użytkownicy - Panel CMS
Zarządzanie użytkownikami
| Nazwa użytkownika |
Email |
Rola |
Status |
Liczba stron |
Ostatnie logowanie |
Data rejestracji |
Akcje |
|
(Ty)
|
|
'Użytkownik', 'editor' => 'Edytor', 'admin' => 'Administrator'];
echo $roles[$user['role']];
?>
|
|
0): ?>
0
|
Nigdy
|
|
Edytuj
|