조기 권한 사용자를 삭제할 수 없는 이유에 잘못된 사유가 표시됩니다

FIX: Correct user deletion wording - Pull Request #34680 - discourse/discourse - GitHub 에서 사용자를 삭제할 수 없는 이유를 설명하는 노트에서 “and moderators”(및 모더레이터)가 제거되었습니다:

delete_forbidden_because_staff: “Admins and moderators can’t be deleted.”

모더레이터는 삭제할 수 있으므로 이 변경이 도움이 된다는 점은 이해합니다. 하지만 이 조정 과정에서 무언가 누락된 것 같다는 인상을 받았고, 오늘 그로 인해 혼란을 겪었습니다.
제 사용자는 모더레이터이지만 관리자가 아닌데도, 노트에는 “Admins can’t be deleted”(관리자는 삭제할 수 없음)이라고 표시되었습니다.



코드를 확인한 결과, 이 현상이 발생하는 이유를 찾은 것 같습니다. 사용자가 삭제되지 않을 경우, 가능한 이유는 두 가지입니다:

  1. 사용자가 관리자(admin)인 경우.
  2. 사용자가 설정된 기간보다 오래된 게시물을 가진 경우.

저의 모더레이터 사용자를 삭제할 수 없었던 실제 이유는 [2]였지만, 경고 문구에서 모더레이터가 제거되었음에도 불구하고 코드는 여전히 admin 대신 staff를 확인하고 있기 때문에 표시된 이유는 [1]이었습니다.

3개의 좋아요

네, 호스팅된 테스트 사이트에서도 이 문제를 재현할 수 있습니다. 테스트용 관리자 계정의 게시물을 삭제하면 "관리자는 삭제할 수 없습니다"라는 메시지가 삭제 버튼으로 대체됩니다. 보고해 주셔서 감사합니다, Moin :slight_smile:

1개의 좋아요

더 명확히 설명하자면, 모더레이터가 아닌 사용자는 삭제할 수 없으며, 그 이유는 아래에 나와 있습니다. 버그는 사용자가 모더레이터일 때 잘못된 이유가 표시된다는 것입니다.

게시물이 있는 사용자는 삭제할 수 없습니다. 사용자를 삭제하기 전에 모든 게시물을 삭제하십시오. (365일 이상 지난 게시물은 삭제할 수 없습니다.)

관리자도 잘못된 이유를 봅니다. 이는 사용자의 관리자 페이지를 누가 보는지와는 무관하며, 사용자가 현재 어떤 상태에 있는지와 관련이 있습니다.

네, 그게 제 의도였는데 문장 구조를 잘못 짰네요! :rofl: 이제 고쳤다고 생각해요.

이 모든 걸 감안하더라도, 왜 관리자를 삭제할 수 있는지 궁금하네요. 삭제 전에 사용자를 강등하는 게 더 합리적이라고 생각했고, 항상 그렇게 해왔으며 UI에 대해 의문을 품은 적도 없었습니다.

감사합니다. 제목이 문제를 꽤 잘 설명한다고 생각했지만, 여러분의 설명이 오해를 불러일으킬까 봐 걱정되었습니다.

1개의 좋아요

이로 인해 UI가 백엔드와 일관성을 갖추기를 바랍니다

3개의 좋아요