diff --git a/lib/shop.lib.php b/lib/shop.lib.php index 8ad6a79e4..9eed841b5 100644 --- a/lib/shop.lib.php +++ b/lib/shop.lib.php @@ -30,7 +30,7 @@ function get_shop_uid($type, $id, $time, $ip) * 현금영수증 발급 또는 조회에 대한 검증 * * 다음 셋 중 하나여야 접근 허용: - * 1. 관리자 + * 1. 최고관리자 (게시판/그룹 관리자 권한은 제외) * 2. 본인 주문/개인결제 (로그인 회원이고 mb_id 일치) * 3. 비회원이지만 정당한 세션 uid 보유 (orderinquiry.php에서 비밀번호 검증 통과 후 * 또는 주문 완료 직후 세션에 저장된 ss_orderview_uid / ss_personalpay_uid가 @@ -48,8 +48,9 @@ function is_shop_order_owner($od, $type = 'order') return false; } - // 관리자 - if ($is_admin) { + // 최고관리자만 전체 주문/개인결제 접근 허용 + // (요청 bo_table 로 좌우되는 게시판/그룹 관리자 문맥은 인정하지 않음) + if ($is_admin === 'super') { return true; } diff --git a/shop/orderinquiryview.php b/shop/orderinquiryview.php index ad4fc510b..675e0dbfe 100644 --- a/shop/orderinquiryview.php +++ b/shop/orderinquiryview.php @@ -19,7 +19,8 @@ if (!$is_member) { $tot_point = 0; $sql = "select * from {$g5['g5_shop_order_table']} where od_id = '$od_id' "; -if($is_member && !$is_admin) +// 최고관리자가 아니면 로그인 회원 본인 주문만 조회 (게시판/그룹 관리자 문맥으로 우회 불가) +if($is_member && $is_admin !== 'super') $sql .= " and mb_id = '{$member['mb_id']}' "; $od = sql_fetch($sql); diff --git a/shop/taxsave.php b/shop/taxsave.php index 916e25351..bf40c7c05 100644 --- a/shop/taxsave.php +++ b/shop/taxsave.php @@ -42,7 +42,7 @@ if($tx == 'personalpay') { alert('해당 주문 정보에 접근 권한이 없습니다.', G5_SHOP_URL); } - if ( ! $is_admin && ! (shop_is_taxsave($od)) ){ + if ( $is_admin !== 'super' && ! (shop_is_taxsave($od)) ){ die('해당 주문은 현금영수증을 발급할수 없습니다.'); }