prepare("INSERT INTO users (username, password) VALUES (:username, :password)"); $stmt->execute(['username' => $username, 'password' => $hash]); $success = qh_t('User created successfully.', 'تم إنشاء المستخدم بنجاح.'); } catch (PDOException $e) { if ($e->getCode() == 23000) { $error = qh_t('Username already exists.', 'اسم المستخدم موجود مسبقاً.'); } else { $error = qh_t('Failed to create user.', 'فشل في إنشاء المستخدم.'); } } } } elseif ($action === 'update_user') { $id = (int)($_POST['id'] ?? 0); $username = trim($_POST['username'] ?? ''); $password = $_POST['password'] ?? ''; if ($id <= 0 || $username === '') { $error = qh_t('Invalid user data.', 'بيانات المستخدم غير صالحة.'); } else { try { if ($password !== '') { $hash = password_hash($password, PASSWORD_DEFAULT); $stmt = $pdo->prepare("UPDATE users SET username = :username, password = :password WHERE id = :id"); $stmt->execute(['username' => $username, 'password' => $hash, 'id' => $id]); } else { $stmt = $pdo->prepare("UPDATE users SET username = :username WHERE id = :id"); $stmt->execute(['username' => $username, 'id' => $id]); } $success = qh_t('User updated successfully.', 'تم تحديث المستخدم بنجاح.'); } catch (PDOException $e) { if ($e->getCode() == 23000) { $error = qh_t('Username already exists.', 'اسم المستخدم موجود مسبقاً.'); } else { $error = qh_t('Failed to update user.', 'فشل في تحديث المستخدم.'); } } } } elseif ($action === 'delete_user') { $id = (int)($_POST['id'] ?? 0); // Prevent deleting the last user $count = $pdo->query("SELECT COUNT(*) FROM users")->fetchColumn(); if ($count <= 1) { $error = qh_t('Cannot delete the last user in the system.', 'لا يمكن حذف آخر مستخدم في النظام.'); } elseif ($id > 0) { $stmt = $pdo->prepare("DELETE FROM users WHERE id = :id"); $stmt->execute(['id' => $id]); $success = qh_t('User deleted successfully.', 'تم حذف المستخدم بنجاح.'); } } } try { $users = $pdo->query("SELECT id, username, created_at FROM users ORDER BY id ASC")->fetchAll(); } catch (PDOException $e) { if ($e->getCode() == '42S02') { $pdo->exec("CREATE TABLE IF NOT EXISTS users (id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"); $users = []; $error = qh_t('Users table was missing and has been created.', 'كان جدول المستخدمين مفقوداً وتم إنشاؤه.'); } else { throw $e; } } $stats = qh_admin_stats(); qh_page_start( 'admin', qh_t('System Users', 'مستخدمو النظام'), qh_t('Manage system users and access.', 'إدارة مستخدمي النظام وصلاحيات الوصول.') ); ?>
= qh_h(qh_t('Manage system administrators and staff access.', 'إدارة مديري النظام وصلاحيات وصول الموظفين.')) ?>
| ID | = qh_h(qh_t('Username', 'اسم المستخدم')) ?> | = qh_h(qh_t('Created At', 'تاريخ الإنشاء')) ?> | = qh_h(qh_t('Actions', 'الإجراءات')) ?> |
|---|---|---|---|
| #= qh_h((string)$user['id']) ?> | = qh_h($user['username']) ?> | = qh_h($user['created_at']) ?> | 1): ?> |
| = qh_h(qh_t('No users found.', 'لا يوجد مستخدمين.')) ?> | |||