129 lines
3.9 KiB
PHP
129 lines
3.9 KiB
PHP
<?php
|
|
// header("Content-Type: application/json; charset=utf-8");
|
|
|
|
// // require_once __DIR__ . '/upload_common.php';
|
|
// // require_once $_SERVER['DOCUMENT_ROOT'].'/egbim/bbs/admin_guard.php';
|
|
|
|
// $conn = new mysqli('localhost', 'egbim', 'baron3840!!', 'egbim');
|
|
// if ($conn->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();
|
|
?>
|
|
<?php
|
|
header("Content-Type: application/json; charset=utf-8");
|
|
|
|
// ✅ 1) Descope 세션 복원 (JWT → $_SESSION['user'])
|
|
require_once $_SERVER['DOCUMENT_ROOT'].'/egbim/skin/member/basic/descope_session.php';
|
|
|
|
// ✅ 2) 관리자 권한 체크
|
|
require_once $_SERVER['DOCUMENT_ROOT'].'/egbim/bbs/upload_admin_guard.php';
|
|
// ✅ 관리자만 접근 가능. 일반 사용자는 403 Forbidden
|
|
|
|
$host = 'localhost';
|
|
$user = 'egbim';
|
|
$pass = 'baron3840!!';
|
|
$db = 'egbim';
|
|
|
|
$conn = new mysqli($host, $user, $pass, $db);
|
|
if ($conn->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();
|