diff --git a/admin_users.php b/admin_users.php new file mode 100644 index 0000000..0e24fef --- /dev/null +++ b/admin_users.php @@ -0,0 +1,249 @@ +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.', 'لا يوجد مستخدمين.')) ?> + | +|||