[ 'page_title' => 'Διαχείριση Χρηστών', 'header_title' => 'Διαχείριση Χρηστών & Sellers', 'allow_sellers_q' => 'Επιτρέπεται οι χρήστες (Πελάτες) να γίνονται από μόνοι τους Πωλητές (Sellers) μέσα από το προφίλ τους;', 'yes_allow' => 'ΝΑΙ, ΕΠΙΤΡΕΠΕΤΑΙ', 'new_account' => 'Δημιουργία Νέου Λογαριασμού', 'username' => 'Όνομα Χρήστη (Username) *', 'password' => 'Κωδικός Πρόσβασης (Password) *', 'first_name' => 'Όνομα', 'last_name' => 'Επώνυμο', 'email' => 'Email', 'phone' => 'Τηλέφωνο', 'role' => 'Ρόλος (Δικαιώματα) *', 'select_role' => '-- Επίλεξε Ρόλο --', 'btn_create' => 'Δημιουργία Χρήστη', 'user_list' => 'Λίστα Εγγεγραμμένων Χρηστών', 'th_id' => 'ID', 'th_user' => 'Χρήστης', 'th_name' => 'Ονοματεπώνυμο', 'th_contact' => 'Επικοινωνία', 'th_role' => 'Ρόλος', 'th_actions' => 'Ενέργειες', 'btn_pass' => 'Κωδικός', 'btn_del' => 'Διαγραφή', 'your_account' => 'Ο λογαριασμός σας', 'change_pass_title' => 'Αλλαγή Κωδικού', 'for_user' => 'Για τον χρήστη:', 'new_pass_label' => 'Νέος Κωδικός Πρόσβασης', 'btn_save_pass' => 'Αποθήκευση νέου κωδικού', 'msg_setting_ok' => 'Η ρύθμιση για τους πωλητές ενημερώθηκε!', 'msg_user_added' => 'Ο χρήστης δημιουργήθηκε επιτυχώς!', 'msg_err_empty' => 'Παρακαλώ συμπληρώστε τα υποχρεωτικά πεδία.', 'msg_err_role_self' => 'Δεν μπορείτε να αλλάξετε τον δικό σας ρόλο!', 'msg_role_upd' => 'Ο ρόλος του χρήστη ενημερώθηκε επιτυχώς!', 'msg_err_del_self' => 'Απαγορεύεται η διαγραφή του δικού σας λογαριασμού!', 'msg_del_ok' => 'Ο χρήστης διαγράφηκε επιτυχώς!', 'msg_err_del' => 'Δεν μπορεί να διαγραφεί αυτός ο χρήστης γιατί έχει καταχωρημένα προϊόντα ή ιστορικό παραγγελιών.', 'msg_pass_self_ok' => 'Ο προσωπικός σας κωδικός άλλαξε επιτυχώς! Στην επόμενη σύνδεση θα χρησιμοποιήσετε τον νέο.', 'msg_pass_ok' => 'Ο κωδικός του χρήστη άλλαξε επιτυχώς!', 'confirm_del' => 'ΠΡΟΣΟΧΗ: Θέλετε σίγουρα να διαγράψετε τον χρήστη: ' ], 'en' => [ 'page_title' => 'User Management', 'header_title' => 'Users & Sellers Management', 'allow_sellers_q' => 'Are users (Customers) allowed to become Sellers on their own through their profile?', 'yes_allow' => 'YES, ALLOWED', 'new_account' => 'Create New Account', 'username' => 'Username *', 'password' => 'Password *', 'first_name' => 'First Name', 'last_name' => 'Last Name', 'email' => 'Email', 'phone' => 'Phone', 'role' => 'Role (Permissions) *', 'select_role' => '-- Select Role --', 'btn_create' => 'Create User', 'user_list' => 'Registered Users List', 'th_id' => 'ID', 'th_user' => 'User', 'th_name' => 'Full Name', 'th_contact' => 'Contact', 'th_role' => 'Role', 'th_actions' => 'Actions', 'btn_pass' => 'Password', 'btn_del' => 'Delete', 'your_account' => 'Your account', 'change_pass_title' => 'Change Password', 'for_user' => 'For user:', 'new_pass_label' => 'New Password', 'btn_save_pass' => 'Save new password', 'msg_setting_ok' => 'Seller setting updated!', 'msg_user_added' => 'User created successfully!', 'msg_err_empty' => 'Please fill in the required fields.', 'msg_err_role_self' => 'You cannot change your own role!', 'msg_role_upd' => 'User role updated successfully!', 'msg_err_del_self' => 'Deleting your own account is forbidden!', 'msg_del_ok' => 'User deleted successfully!', 'msg_err_del' => 'Cannot delete this user because they have registered products or order history.', 'msg_pass_self_ok' => 'Your personal password changed successfully! Use the new one on next login.', 'msg_pass_ok' => 'User password changed successfully!', 'confirm_del' => 'WARNING: Are you sure you want to delete user: ' ] ]; $t = $translations[$current_lang]; header('Content-Type: text/html; charset=utf-8'); $message = ''; try { $pdo->exec("CREATE TABLE IF NOT EXISTS settings (`key` VARCHAR(50) PRIMARY KEY, `value` TEXT NOT NULL)"); $stmt = $pdo->query("SELECT value FROM settings WHERE `key` = 'allow_user_to_seller'"); if ($stmt->rowCount() == 0) { $pdo->exec("INSERT INTO settings (`key`, `value`) VALUES ('allow_user_to_seller', '0')"); } } catch (Exception $e) {} if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] == 'update_seller_setting') { $allow_seller = isset($_POST['allow_seller']) ? '1' : '0'; $stmt = $pdo->prepare("REPLACE INTO settings (`key`, `value`) VALUES ('allow_user_to_seller', ?)"); $stmt->execute([$allow_seller]); $message = "
{$t['msg_setting_ok']}
"; } $stmt = $pdo->query("SELECT value FROM settings WHERE `key` = 'allow_user_to_seller'"); $allow_user_to_seller = (int)$stmt->fetchColumn(); if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] == 'add_user') { $username = trim($_POST['username']); $password = $_POST['password']; $first_name = trim($_POST['first_name']); $last_name = trim($_POST['last_name']); $email = trim($_POST['email']); $phone = trim($_POST['phone']); $role_id = (int)$_POST['role_id']; if (!empty($username) && !empty($password) && !empty($role_id)) { try { $hashed_password = password_hash($password, PASSWORD_DEFAULT); $stmt = $pdo->prepare("INSERT INTO users (role_id, username, password, first_name, last_name, email, phone) VALUES (?, ?, ?, ?, ?, ?, ?)"); $stmt->execute([$role_id, $username, $hashed_password, $first_name, $last_name, $email, $phone]); $message = "
{$t['msg_user_added']}
"; } catch (PDOException $e) { $message = "
Σφάλμα: " . $e->getMessage() . "
"; } } else { $message = "
{$t['msg_err_empty']}
"; } } if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] == 'change_role') { $target_user_id = (int)$_POST['user_id']; $new_role_id = (int)$_POST['new_role_id']; if ($target_user_id === (int)$_SESSION['user_id']) { $message = "
{$t['msg_err_role_self']}
"; } else { try { $stmt = $pdo->prepare("UPDATE users SET role_id = ? WHERE id = ?"); $stmt->execute([$new_role_id, $target_user_id]); $message = "
{$t['msg_role_upd']}
"; } catch (Exception $e) { $message = "
Σφάλμα: " . $e->getMessage() . "
"; } } } if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] == 'delete_user') { $del_user_id = (int)$_POST['user_id']; if ($del_user_id === (int)$_SESSION['user_id']) { $message = "
{$t['msg_err_del_self']}
"; } else { try { $stmt = $pdo->prepare("DELETE FROM users WHERE id = ?"); $stmt->execute([$del_user_id]); $message = "
{$t['msg_del_ok']}
"; } catch (PDOException $e) { $message = "
{$t['msg_err_del']}
"; } } } if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] == 'change_password') { $cp_user_id = (int)$_POST['user_id']; $new_password = $_POST['new_password']; if (!empty($new_password)) { try { $hashed = password_hash($new_password, PASSWORD_DEFAULT); $stmt = $pdo->prepare("UPDATE users SET password = ? WHERE id = ?"); $stmt->execute([$hashed, $cp_user_id]); if ($cp_user_id === (int)$_SESSION['user_id']) { $message = "
{$t['msg_pass_self_ok']}
"; } else { $message = "
{$t['msg_pass_ok']}
"; } } catch (Exception $e) { $message = "
Σφάλμα: " . $e->getMessage() . "
"; } } } $roles = $pdo->query("SELECT id, name FROM roles ORDER BY id")->fetchAll(); $users = $pdo->query(" SELECT u.id, u.username, u.first_name, u.last_name, u.email, u.phone, u.created_at, u.role_id, r.name as role_name FROM users u JOIN roles r ON u.role_id = r.id ORDER BY u.id DESC ")->fetchAll(); ?> <?php echo $t['page_title']; ?> - Hockey CMS

# ✉️
📞