connect_error) { // http_response_code(500); // echo json_encode(['message' => 'DB 연결 실패']); // exit; // } // mysqli_set_charset($conn, 'utf8mb4'); // // === 선택된 제품코드 파라미터 === // $product_code = $_GET['product_code'] ?? ''; // // TODO: 권한 부여는 추후 적용 // // $user_role = $_SESSION['user']['role'] ?? 'user'; // 예: admin, manager, user // // if ($user_role !== 'admin') { // // // 권한 체크 로직 들어갈 자리 // // } // $sql = "SELECT id, product_code, sw_version, version_type, // filename, filepath, filetype, // filesize, uploader, // DATE_FORMAT(upload_date, '%Y-%m-%d %H:%i:%s') as upload_date, // DATE_FORMAT(test_done_date, '%Y-%m-%d %H:%i:%s') as test_done_date, // tester, // DATE_FORMAT(release_date, '%Y-%m-%d %H:%i:%s') as release_date, // releaser, // deleted // FROM deploy_files // WHERE 1=1"; // // 제품코드가 지정된 경우만 필터 // if ($product_code !== '') { // $sql .= " AND product_code = '". $conn->real_escape_string($product_code) ."'"; // } // $sql .= " ORDER BY id DESC"; // $res = $conn->query($sql); // $files = []; // while ($row = $res->fetch_assoc()) { // $files[] = $row; // } // echo json_encode(['files' => $files], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); // $conn->close(); ?> connect_error) { http_response_code(500); echo json_encode(['status'=>'fail','message'=>'DB 연결 실패']); exit; } mysqli_set_charset($conn, 'utf8mb4'); // === 파라미터 === $product_code = $_GET['product_code'] ?? ''; $show_deleted = isset($_GET['show_deleted']) ? (int)$_GET['show_deleted'] : 0; if (!$product_code) { echo json_encode(['status'=>'fail','message'=>'제품코드 누락']); exit; } // === 삭제 여부 조건 === $whereDeleted = $show_deleted ? "1=1" : "deleted=0"; // === 쿼리 === $sql = " SELECT id, product_code, sw_version, filename, filetype, filesize, filepath, DATE_FORMAT(upload_date, '%Y-%m-%d %H:%i:%s') AS upload_date, uploader, tester, DATE_FORMAT(test_done_date, '%Y-%m-%d %H:%i:%s') AS test_done_date, releaser, DATE_FORMAT(release_date, '%Y-%m-%d %H:%i:%s') AS release_date, deleted FROM deploy_files WHERE product_code = ? AND $whereDeleted ORDER BY sw_version DESC, upload_date ASC "; $stmt = $conn->prepare($sql); $stmt->bind_param("s", $product_code); $stmt->execute(); $res = $stmt->get_result(); $files = []; while ($row = $res->fetch_assoc()) { $files[] = $row; } // ✅ 현재 로그인 관리자 정보 포함 echo json_encode([ 'status' => 'ok', 'files' => $files, 'current_user' => [ 'loginId' => $_SESSION['user']['loginIds'][0] ?? '', 'name' => get_upload_admin_display_name( $_SESSION['user']['loginIds'][0] ?? '', $_SESSION['user']['name'] ?? '알 수 없음' ) ] ], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); $stmt->close(); $conn->close();