prepare("UPDATE site_settings SET setting_val=? WHERE setting_key=?")->execute([$val, $k]); } flash('success','Settings saved!'); header('Location: /admin/index.php'); exit; } // Handle user action if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['user_action'])) { verifyCsrf(); $uid2 = (int)$_POST['user_id']; $uact = $_POST['user_action']; if ($uact === 'approve') db()->prepare("UPDATE users SET status='active' WHERE id=?")->execute([$uid2]); if ($uact === 'suspend') db()->prepare("UPDATE users SET status='suspended' WHERE id=?")->execute([$uid2]); if ($uact === 'delete') db()->prepare("DELETE FROM users WHERE id=? AND role!='admin'")->execute([$uid2]); if ($uact === 'make_primary') db()->prepare("UPDATE users SET role='primary' WHERE id=?")->execute([$uid2]); if ($uact === 'make_member') db()->prepare("UPDATE users SET role='member' WHERE id=?")->execute([$uid2]); flash('success','User updated!'); header('Location: /admin/index.php#users'); exit; } // Load data $allUsers = db()->query("SELECT * FROM users ORDER BY role DESC, name ASC")->fetchAll(); $pendingCount = count(array_filter($allUsers, fn($u) => $u['status'] === 'pending')); $taskStats = db()->query("SELECT COUNT(*) as total, SUM(status='done') as done, SUM(status='inprogress') as inprog FROM tasks")->fetch(); $settings = []; $sRows = db()->query("SELECT setting_key,setting_val FROM site_settings")->fetchAll(); foreach ($sRows as $r) $settings[$r['setting_key']] = $r['setting_val']; ?>
Manage users, settings and permissions
| Name | Role | Status | Last Seen | Actions |
|---|---|---|---|---|
|
= strtoupper(substr($u2['name'],0,2)) ?>
= e($u2['name']) ?>
= e($u2['email']) ?>
|
= ucfirst($u2['role']) ?> | = ucfirst($u2['status']) ?> | = $u2['last_seen'] ? date('M j, g:i A', strtotime($u2['last_seen'])) : 'Never' ?> | You |
| User (granter) | = e(explode(' ',$grantee['name'])[0]) ?> |
|---|---|
| = e($granter['name']) ?> | 👤 |