fix: enforce private feedback access across list and detail
Deploy EG-BIM QA Gateway / deploy (push) Successful in 50s
Deploy EG-BIM QA Gateway / deploy (push) Successful in 50s
This commit is contained in:
1 parent
e2e70c13ac
commit
a5a5f24f92
10 files changed
+379
-24
No files matched your search
@@ -35,7 +35,9 @@ python3 -m http.server 4173
|
||||
|
||||
상세 페이지에는 공개 댓글 입력 UI가 있으며, 댓글은 같은 Worker를 통해 ABC의 `feedback_comments`에 저장하고 `is_internal=false`인 공개 댓글만 조회합니다. 댓글 이미지가 있으면 `attachments` multipart 필드로 Worker가 ABC에 전달하며, 응답으로 받은 이미지 URL을 썸네일로 표시합니다. 목록·상세 진입 시에는 ABC의 `feedback_status`를 다시 조회해 관리페이지에서 변경된 상태를 반영합니다.
|
||||
|
||||
게시글과 댓글의 수정·삭제 버튼은 로그인 사용자의 기본 requester UUID와 작성자 ID가 일치할 때만 표시합니다. 이름·이메일이 같다는 이유로 표시하지 않으며, 작성자 ID가 없거나 로그인 확인 중·만료·조회 실패 상태이면 숨깁니다. 다른 사람의 게시글에서도 본인이 작성한 댓글의 버튼은 표시합니다. 공통 버튼 CSS는 `hidden` 속성을 덮어쓰지 않습니다.
|
||||
게시글과 댓글의 수정·삭제 버튼은 로그인 사용자의 기본 requester UUID와 작성자 ID가 일치할 때만 표시합니다. 이름·이메일이 같다는 이유로 표시하지 않으며, 작성자 ID가 없거나 로그인 확인 중·만료·조회 실패 상태이면 숨깁니다. 조회 가능한 다른 사람의 공개 게시글에서도 본인이 작성한 댓글의 버튼은 표시합니다. 공통 버튼 CSS는 `hidden` 속성을 덮어쓰지 않습니다.
|
||||
|
||||
Q&A 화면의 비밀글은 작성자 본인만 조회합니다. Worker는 공용 ABC API Key로 받은 응답을 다시 검사하며, 다른 작성자의 비밀글은 목록에 `비밀글입니다.`와 분류·등록일·상태만 전달합니다. 제목·본문·작성자 정보·첨부 URL은 전달하지 않으며, 상세·댓글 조회와 관련 변경 요청도 차단합니다. 같은 회사·이름·이메일이나 일반 SSO 역할 문자열로 조회 권한을 부여하지 않습니다. 관리페이지의 담당자 권한은 관리페이지에서 별도로 처리합니다. 검색은 이렇게 제한된 목록에서 실행하며, 공용 API Key로 임의 필드를 검색해 비밀글 내용을 추측하는 요청은 허용하지 않습니다. 이전 브라우저 캐시는 진입 시 지우고, 조회가 거절되거나 실패해도 저장된 본문·댓글로 대체하지 않습니다. 비밀글 본문과 댓글은 새로 브라우저 저장소에 저장하지 않습니다.
|
||||
|
||||
목록 검색은 제목·내용·회사·부서·작성자를 대상으로 오타, 띄어쓰기·대소문자 차이, 두 글자 이상의 한글 초성을 처리합니다. 예를 들어 `로그임`, `ㄹㄱㅇ`으로 `로그인`을, `파일첨부`로 `파일 첨부`를 찾을 수 있습니다. 검색 버튼이나 Enter로 실행하며, 여러 단어를 입력하면 각 단어가 모두 일치해야 합니다. 정확한 제목 일치를 우선하고 같은 점수는 기존 목록 순서를 유지합니다. 분류와 `내가 작성한 글` 조건도 함께 적용합니다.
|
||||
|
||||
|
||||
Reference in new issue
Block a user