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']; ?>
Total Users
Pending Approval
Total Tasks
Done Tasks
'#ef4444','primary'=>'#0ea5e9','member'=>'#22c55e'][$u2['role']] ?? '#94a3b8'; $statusColor = ['active'=>'badge-done','pending'=>'badge-medium','suspended'=>'badge-cancelled'][$u2['status']] ?? 'badge-todo'; ?>
NameRoleStatusLast SeenActions
You
Site Settings
Task Visibility Permissions
Who can see whose tasks
query("SELECT id,name,role FROM users WHERE status='active' ORDER BY name")->fetchAll(); $perms = db()->query("SELECT granter_id,grantee_id,level FROM permissions")->fetchAll(); $permMap = []; foreach ($perms as $p) $permMap[$p['granter_id'].'-'.$p['grantee_id']] = $p['level']; ?>
User (granter)
👤