Cloudwiki/기능/편집 요청
정보: ACL 조건을 충족하지 못하는 사용자의 편집을 즉시 반영하지 않고 **편집 요청** 으로 보류했다가, 검토자가 문서 화면에서 승인·반려하는 기능을 설명합니다. 활성화 여부는 배포 설정으로 정해지며, 켜져 있을 때만 동작합니다. # 개요 **편집 요청** 은 문서의 편집 ACL([[Cloudwiki/기능/ACL]]) 조건을 충족하지 못하는 사용자도 편집을 **제안** 할 수 있게 하되, 그 편집을 즉시 공개 문서에 반영하지 않고 검토 대기 상태로 보류하는 기능입니다. 보류된 편집은 검토 권한이 있는 사용자(관리자 또는 신뢰 사용자)가 문서 화면에서 **승인** 하거나 **반려** 합니다. | 상태 | 의미 | | --- | --- | | 제출 | ACL 미달 사용자가 편집을 저장하면 리비전 대신 편집 요청으로 보류됨 | | 승인 | 검토자가 승인하면 **요청자 명의** 의 정식 리비전으로 반영됨 | | 반려 | 검토자가 사유와 함께 폐기하며, 요청자에게 알림이 감 | 승인 전까지 공개 문서에는 마지막으로 승인된 본문만 표시되므로, 편집 요청이 쌓여도 문서가 훼손되지 않습니다. # 활성화 조건 편집 요청은 **배포 설정** 으로 켜고 끄며, 관리자 페이지에서 토글할 수 없습니다. 두 조건이 모두 충족돼야 동작합니다. - 배포 설정 `EDIT_REQUEST_ENABLED` 이 `"true"` 일 것 (`wrangler.toml`) - 전역 설정 **가입 N일 이상** 기준일(`edit_acl_min_age_days`)이 0보다 클 것 기준일이 0이면 모든 사용자가 가입 즉시 `aged`(신뢰 사용자)로 통과해 보류가 발생하지 않습니다. 따라서 편집 요청을 쓰려면 관리자 설정에서 이 값을 1 이상으로 두어야 합니다. # 편집 요청 제출 (요청자) 편집 요청이 켜져 있으면, ACL 조건을 충족하지 못하는 로그인 사용자도 문서 보기 화면의 **편집** 버튼을 그대로 사용할 수 있습니다. 단, **관리자 전용 잠금**(`admin_only`) 또는 **비공개** 문서는 제외됩니다. 평소처럼 편집하고 저장하면 곧바로 리비전이 생성되는 대신 **편집 요청이 제출되었습니다** 안내가 표시되고, 문서 보기 화면(마지막 승인본)으로 돌아갑니다. 제출된 편집은 검토자가 승인하기 전까지 공개 문서에 나타나지 않습니다. > 한 사용자는 같은 문서에 하나의 편집 요청만 가질 수 있습니다. 다시 제출하면 이전 요청이 최신 내용으로 교체됩니다. # 검토 (검토자) ## 누가 검토하나 - **관리자** — 모든 문서의 편집 요청 - **가입 N일 이상(aged) 사용자** — 모든 문서의 편집 요청 - 그 외 신뢰 사용자 — 자신이 이전에 **편집한 적 있는 문서** 의 편집 요청 자신이 올린 편집 요청은 본인이 검토할 수 없습니다. ## 검토 진입점 검토 가능한 편집 요청이 있는 문서를 열면 다음 위치에 표시됩니다. - 편집 버튼이 **드롭다운** 으로 바뀌며 하늘색 배지(건수)가 붙습니다. 드롭다운에서 **문서 편집하기** / **편집 요청 확인하기** 를 고를 수 있습니다. - 본문 상단에 **검토 대기 중인 편집 요청이 N건 있습니다** 배너가 함께 표시됩니다. - 아직 만들어지지 않은 새 문서 요청은 **문서 없음** 화면에서, 삭제된 문서로 인한 요청은 **삭제됨** 화면에서 같은 배너로 노출됩니다. **편집 요청 확인하기** 를 누르면 변경 내용을 **diff(비교)** 로 보여주는 검토 창이 열립니다. 한 문서에 여러 요청이 있으면 작성자를 먼저 고릅니다. ## 검토 동작 검토 창에서는 세 가지 동작을 할 수 있습니다. | 동작 | 결과 | | --- | --- | | 승인 | 요청 내용을 **요청자 명의** 리비전으로 반영 | | 반려 | 사유와 함께 요청을 폐기하고 요청자에게 알림 | | 에디터에서 편집 | 요청 내용을 에디터로 불러와 **추가 편집·병합** 후 승인 | # 승인 결과 승인하면 편집 요청은 **원래 요청자 명의** 의 정식 리비전이 되어 공개됩니다. 편집 요약 끝에는 누가 승인했는지 `(요청 승인 : [닉네임|id])` 형태로 자동으로 박제됩니다. 검토자가 **에디터에서 편집** 으로 요청 내용을 추가로 손본 뒤 승인하면 리비전이 **두 개** 만들어집니다. 1. 원래 요청분 — **요청자** 명의 (요약에 `요청 승인` 박제) 2. 검토자가 추가한 편집분 — **검토자** 명의 이렇게 하면 요청자의 기여와 검토자의 보완이 편집 이력에 각각 남습니다. # 반려 반려할 때는 **반려 사유** 를 입력할 수 있으며(선택), 사유는 요청자에게 가는 알림에 함께 전달됩니다. 반려된 요청은 폐기되어 복구되지 않습니다. # 충돌 처리 검토자가 검토를 시작한 뒤 다른 사람이 같은 문서를 수정하면, 그대로 승인할 경우 그 편집이 사라질 수 있습니다. 이를 막기 위해 다음과 같이 동작합니다. - **직접 승인** 시 충돌이 감지되면 승인이 막히고, **에디터에서 편집** 으로 최신 본문에 병합하도록 안내합니다. - 에디터에서 병합하는 도중 다시 다른 편집이 끼어들면 문서를 승인 직전 상태로 되돌리고 **다시 병합** 하도록 안내합니다. # 알림 - 편집 요청이 제출되면 관리자에게 인앱·푸시 알림이 갑니다. - 승인·반려 결과는 요청자에게 알림으로 전달됩니다(반려 시 사유 포함). # 주의 사항 - 편집 요청은 ACL을 **대체** 하지 않습니다. 관리자 전용 잠금·비공개 문서에는 적용되지 않으며, 이런 문서는 여전히 권한 있는 사용자만 편집·열람할 수 있습니다([[Cloudwiki/기능/ACL]]). - 기능이 꺼지면(`EDIT_REQUEST_ENABLED` 미설정 또는 `"false"`) 남아 있던 편집 요청도 목록·검토에서 보이지 않으며 승인·반려할 수 없습니다. - 누가 신뢰 사용자로 통과하는지는 **가입 N일 이상** 기준일과 문서 편집 이력으로 정해집니다(자세한 조건은 [[Cloudwiki/기능/ACL]] 참고).