<?php
include 'includes/header.php'; // auth.php is included in here
$user_id = $_GET['id'] ?? null;
$is_editing = isset($user_id);
// Check appropriate permission based on action
if ($is_editing) {
require_permission('users_edit');
} else {
require_permission('users_add');
}
$user = null;
$user_permissions = [];
// Fetch all possible permissions and group them
$all_permissions_result = $conn->query("SELECT * FROM permissions ORDER BY name");
$grouped_permissions = [];
while ($p = $all_permissions_result->fetch_assoc()) {
$group = explode('_', $p['name'])[0];
$grouped_permissions[$group][] = $p;
}
if ($is_editing) {
// Fetch user's basic data
$stmt = $conn->prepare("SELECT id, username, email FROM users WHERE id = ?");
$stmt->bind_param("i", $user_id);
$stmt->execute();
$user = $stmt->get_result()->fetch_assoc();
$stmt->close();
// Fetch user's current permissions
$p_stmt = $conn->prepare("SELECT permission_id FROM user_permissions WHERE user_id = ?");
$p_stmt->bind_param("i", $user_id);
$p_stmt->execute();
$p_result = $p_stmt->get_result();
while ($row = $p_result->fetch_assoc()) {
$user_permissions[] = $row['permission_id'];
}
$p_stmt->close();
}
?>
<div class="container-fluid">
<h1 class="h3 mb-4 text-gray-800"><?php echo $is_editing ? 'تعديل مستخدم' : 'إضافة مستخدم جديد'; ?></h1>
<?php if (isset($_GET['error'])): ?>
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<?php echo htmlspecialchars($_GET['error']); ?>
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
</div>
<?php endif; ?>
<?php if (isset($_GET['success'])): ?>
<div class="alert alert-success alert-dismissible fade show" role="alert">
تم حفظ البيانات بنجاح!
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
</div>
<?php endif; ?>
<div class="card shadow mb-4">
<div class="card-body">
<form action="user_process.php" method="POST">
<?php if ($is_editing): ?>
<input type="hidden" name="id" value="<?php echo $user_id; ?>">
<?php endif; ?>
<div class="mb-3">
<label for="username" class="form-label">اسم المستخدم</label>
<input type="text" class="form-control" id="username" name="username" value="<?php echo htmlspecialchars($user['username'] ?? ''); ?>" required>
</div>
<div class="mb-3">
<label for="email" class="form-label">البريد الإلكتروني</label>
<input type="email" class="form-control" id="email" name="email" value="<?php echo htmlspecialchars($user['email'] ?? ''); ?>">
<small class="form-text text-muted">اختياري - يمكن استخدامه لاستعادة كلمة المرور</small>
</div>
<div class="mb-3">
<label for="password" class="form-label">كلمة المرور</label>
<input type="password" class="form-control" id="password" name="password" <?php echo $is_editing ? '' : 'required'; ?>>
<?php if ($is_editing): ?>
<small class="form-text text-muted">اترك هذا الحقل فارغًا إذا كنت لا ترغب في تغيير كلمة المرور.</small>
<?php endif; ?>
</div>
<hr>
<h5 class="mb-3">الصلاحيات</h5>
<?php foreach ($grouped_permissions as $group => $permissions): ?>
<div class="mb-4">
<h6 class="text-primary text-capitalize"><?php echo str_replace('_', ' ', $group); ?></h6>
<div class="row">
<?php foreach ($permissions as $permission): ?>
<div class="col-md-3 col-sm-6">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="permissions[]" value="<?php echo $permission['id']; ?>" id="perm_<?php echo $permission['id']; ?>"
<?php if (in_array($permission['id'], $user_permissions)) echo 'checked'; ?>>
<label class="form-check-label" for="perm_<?php echo $permission['id']; ?>">
<?php echo htmlspecialchars($permission['description']); ?>
</label>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
<?php endforeach; ?>
<hr>
<button type="submit" class="btn btn-primary">
<?php echo $is_editing ? '<i class="fas fa-save"></i> حفظ التغييرات' : '<i class="fas fa-plus"></i> إضافة مستخدم'; ?>
</button>
<a href="users.php" class="btn btn-secondary">إلغاء</a>
</form>
</div>
</div>
</div>
<?php
include 'includes/footer.php';
?>