{
  "issueId": "4366",
  "environment": "dev",
  "source": "Redmine #4366 + user-provided QA checklist 2026-10-23",
  "sourceText": "[1] QA 요청 배경\n* https://itsm.bix.bz/issues/4366\n\n[2] 사전 데이터\n* 비스킷링크 BO 계정\n\n[3] 사전 작업\n* 비스킷링크 BO 계정 로그인\n\n[4] 권한별 테스트\n* ADMIN,TA,CO,BO\n\n[5] 검증 대상\n* 업체관리 > 가맹점 관리\n\n[6] 체크리스트\n* ADMIN 계정으로 기능권한 > 가맹점 관리 > MID 별칭 조회 권한을 BO 에게 부여시 BO 계정의 가맹점관리에서 MID 별칭 컬럼 ,MID 검색 필터 확인 및 동작 확인",
  "scope": "개발계 비스킷링크 업체관리 > 가맹점 관리에서 ADMIN이 BO 사용자 프리셋에 기능권한 > 가맹점관리 > MID 별칭 조회(READ_VENDOR_MID_ALIAS)를 부여하면 BO 계정에 MID 별칭 컬럼과 검색 필터가 노출되고 자기 조회 범위 안에서 검색이 동작하는지 검증한다. 권한 미부여 BO는 미노출, ADMIN/TA/CO는 추가 권한 없이 기존 노출 유지, QA 후 프리셋 권한 원복과 BO 미노출 복귀까지 확인한다. BO 기본 계정의 조회 범위(가맹점 1곳)에는 MID 별칭 데이터가 없어, 검색 동작은 다른 가맹점 별칭으로 검색 시 결과 0건(조회 범위 제한)과 초기화 후 목록 복구로 확인한다(요청자 승인, 데이터 변경 없음).",
  "checklist": [
    "ADMIN 계정으로 기능권한 > 가맹점 관리 > MID 별칭 조회 권한을 BO 에게 부여시 BO 계정의 가맹점관리에서 MID 별칭 컬럼, MID 검색 필터 확인 및 동작 확인",
    "권한 미부여 BO 계정은 가맹점관리에서 MID 별칭 컬럼과 MID 별칭 검색 필터가 노출되지 않는지 확인",
    "ADMIN, TA, CO 계정은 추가 권한 설정 없이 가맹점관리에서 MID 별칭 컬럼과 검색 필터가 계속 노출되고 동작하는지 확인",
    "QA 후 BO 프리셋 권한을 원래대로 복구하고 BO 계정에서 MID 별칭이 다시 노출되지 않는지 확인"
  ],
  "roles": [
    "ADMIN",
    "TA",
    "CO",
    "BO"
  ],
  "routeCandidates": "../../../../qa-results/issues/4366/dev/route-candidates.json",
  "setupSteps": [
    {
      "name": "BO 사용자 프리셋에 MID 별칭 조회 기능권한 임시 부여",
      "kind": "permission-toggle",
      "role": "ADMIN",
      "application": "admin",
      "targetRoles": [
        "BO"
      ],
      "description": "BO 기본 계정이 쓰는 사용자 프리셋(ㅇㅇ, 개발계 BO 25명 공유)에 기능권한 > 가맹점관리 > MID 별칭 조회를 임시로 추가한다. 공유 프리셋 임시 변경은 요청자(송인준) 승인 하에 진행한다.",
      "required": true,
      "mutation": "temporary",
      "guardEnv": "QA_ALLOW_PERMISSION_MUTATION",
      "navigation": {
        "name": "사용자 프리셋 관리",
        "path": "/admin/member-preset"
      },
      "target": {
        "type": "role-preset",
        "role": "BO",
        "userEnvKey": "BIX_ADMIN_DEV_BO_USERNAME",
        "avoidSharedPreset": false
      },
      "actions": [
        {
          "name": "MID 별칭 조회 권한 부여",
          "intent": "set-checkbox",
          "label": "MID 별칭 조회",
          "checked": true
        }
      ],
      "restore": {
        "required": true,
        "description": "BO 확인 직후 프리셋 권한 목록을 변경 전 원본과 동일하게 복구하고, 실패 시 afterAll에서 다시 복구한다."
      }
    }
  ],
  "pages": [
    {
      "name": "가맹점 관리",
      "application": "admin",
      "path": "/business/vendor-manage",
      "tenantParam": "tenantId",
      "roles": [
        "ADMIN",
        "TA",
        "CO",
        "BO"
      ],
      "targetRole": "BO",
      "presetName": "ㅇㅇ",
      "permissionId": "READ_VENDOR_MID_ALIAS",
      "permissionLabel": "MID 별칭 조회",
      "dataRequestUrlPattern": "/api/v2/vendors/manage",
      "filters": [
        {
          "name": "MID 별칭",
          "label": "MID 별칭",
          "type": "textbox",
          "value": "권한별 조회 데이터에서 동적 선택",
          "queryParamCandidates": [
            "note"
          ]
        }
      ]
    }
  ],
  "scenario": "vendor-mid-alias-permission",
  "subjectAccounts": [
    {
      "role": "ADMIN",
      "label": "ADMIN 개발계 기본 계정",
      "envRole": "ADMIN"
    },
    {
      "role": "TA",
      "label": "TA 개발계 기본 계정",
      "envRole": "TA"
    },
    {
      "role": "CO",
      "label": "CO 개발계 기본 계정",
      "envRole": "CO"
    },
    {
      "role": "BO",
      "label": "BO 개발계 기본 계정",
      "envRole": "BO"
    }
  ]
}
