PDO::ERRMODE_EXCEPTION] ); // Handle actions if ($_POST['action']) { $response = ['success' => false, 'message' => '']; switch ($_POST['action']) { case 'update_user_status': $user_id = (int)$_POST['user_id']; $status = $_POST['status']; $stmt = $pdo->prepare("UPDATE db_accountuser SET usr_status = ? WHERE usr_id = ?"); if ($stmt->execute([$status, $user_id])) { $response = ['success' => true, 'message' => 'User status updated successfully']; } else { $response = ['success' => false, 'message' => 'Failed to update user status']; } break; case 'bulk_action': $user_ids = $_POST['user_ids']; $bulk_action = $_POST['bulk_action']; if (!empty($user_ids) && is_array($user_ids)) { $placeholders = str_repeat('?,', count($user_ids) - 1) . '?'; switch ($bulk_action) { case 'activate': $stmt = $pdo->prepare("UPDATE db_accountuser SET usr_status = 'active' WHERE usr_id IN ($placeholders)"); break; case 'deactivate': $stmt = $pdo->prepare("UPDATE db_accountuser SET usr_status = 'inactive' WHERE usr_id IN ($placeholders)"); break; case 'delete': $stmt = $pdo->prepare("UPDATE db_accountuser SET usr_status = 'deleted' WHERE usr_id IN ($placeholders)"); break; } if ($stmt->execute($user_ids)) { $response = ['success' => true, 'message' => 'Bulk action completed successfully']; } else { $response = ['success' => false, 'message' => 'Failed to complete bulk action']; } } break; } header('Content-Type: application/json'); echo json_encode($response); exit; } // Get filter parameters $search = $_GET['search'] ?? ''; $status_filter = $_GET['status'] ?? ''; $sort = $_GET['sort'] ?? 'usr_datereg'; $order = $_GET['order'] ?? 'DESC'; $page = max(1, (int)($_GET['page'] ?? 1)); $per_page = 20; $offset = ($page - 1) * $per_page; // Build query $where_conditions = ["usr_status != 'deleted'"]; $params = []; if ($search) { $where_conditions[] = "(usr_user LIKE ? OR usr_email LIKE ? OR usr_fname LIKE ? OR usr_lname LIKE ?)"; $search_param = "%$search%"; $params = array_merge($params, [$search_param, $search_param, $search_param, $search_param]); } if ($status_filter) { $where_conditions[] = "usr_status = ?"; $params[] = $status_filter; } $where_clause = implode(' AND ', $where_conditions); // Get total count $count_sql = "SELECT COUNT(*) FROM db_accountuser WHERE $where_clause"; $stmt = $pdo->prepare($count_sql); $stmt->execute($params); $total_users = $stmt->fetchColumn(); $total_pages = ceil($total_users / $per_page); // Get users $sql = "SELECT usr_id, usr_user, usr_email, usr_fname, usr_lname, usr_status, usr_datereg, (SELECT COUNT(*) FROM db_videofiles WHERE usr_id = db_accountuser.usr_id AND deleted = '0') as video_count, (SELECT COUNT(*) FROM db_livefiles WHERE usr_id = db_accountuser.usr_id AND deleted = '0') as stream_count FROM db_accountuser WHERE $where_clause ORDER BY $sort $order LIMIT $per_page OFFSET $offset"; $stmt = $pdo->prepare($sql); $stmt->execute($params); $users = $stmt->fetchAll(PDO::FETCH_ASSOC); // Get user statistics $stats_sql = "SELECT COUNT(*) as total, COUNT(CASE WHEN usr_status = 'active' THEN 1 END) as active, COUNT(CASE WHEN usr_status = 'inactive' THEN 1 END) as inactive, COUNT(CASE WHEN usr_status = 'suspended' THEN 1 END) as suspended, COUNT(CASE WHEN DATE(usr_datereg) = CURDATE() THEN 1 END) as today FROM db_accountuser WHERE usr_status != 'deleted'"; $stmt = $pdo->query($stats_sql); $user_stats = $stmt->fetch(PDO::FETCH_ASSOC); } catch (Exception $e) { $error = $e->getMessage(); } ?> EasyStream User Management

๐Ÿ‘ฅ User Management

๐Ÿ  Dashboard ๐Ÿšช Logout
Total Users
Active Users
Inactive Users
Suspended Users
New Today
๐Ÿ”„ Reset
0 users selected

Users ( total)

Username Email Name Status Videos Streams Registered Actions
No users found

ID:
1): ?>