500자 제한인 ‘거부 사유’는 너무 짧습니다

새로운 사용자가 내 포럼에 가입 신청을 할 때 검토를 요청하는 알림을 받고, ‘사용자 삭제’ 옵션을 사용하여 신청을 거부하는 과정에서, 신청이 불승인된 이유를 설명하는 이메일 메모를 포함하는 옵션을 선택하면, 이제 ‘422 Error’ 응답이 반환됩니다.

메모를 생략하면, 이전과 마찬가지로 사용자를 삭제할 수 있습니다.

포럼에서 가입한 사용자에게 보내는 이메일 알림은 여전히 정상적으로 작동합니다.

현재 설치된 Discourse 버전은 3.2.0.beta5-dev입니다.

해당 발생일(오늘)에 해당하는 포럼 오류 로그는 아래와 같습니다.

5
Deprecation notice: `SiteSetting.min_trust_to_edit_post` has been deprecated. Please use `SiteSetting.edit_post_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/app/models/co
1:19 pm
15
Deprecation notice: warning: the email parameter is deprecated. all POST requests to this route should be sent with a base64 strict encoded email_encoded parameter instead. email has been received and
1:37 pm
Email can not be processed: Email::Receiver::AutoGeneratedEmailError Received: from smtp-mx-server-8.servers.netregistry.net (unknown [202.124.241.69]) by nz-mail-receiver.localdomain (Postfix) with
1:37 pm
Email can not be processed: Email::Receiver::NoBodyDetectedError Received: from EUR04-VI1-obe.outbound.protection.outlook.com (unknown [104.47.14.50]) by nz-mail-receiver.localdomain (Postfix) with
1:39 pm
2
ActiveRecord::RecordInvalid (Validation failed: Reject reason is too long (maximum is 500 characters)) app/models/reviewable.rb:362:in `transition_to' app/models/reviewable.rb:335:in `block in perform
1:51 pm
2
Failed to handle exception in exception app middleware : ActiveRecord::RecordInvalid : Validation failed: Reject reason is too long (maximum is 500 characters)
1:51 pm
235
Sidekiq is consuming too much memory (using: 557.11M) for 'nzarchitecture.net.nz', restarting
1:54 pm
38
Deprecation notice: `SiteSetting.min_trust_to_create_tag` has been deprecated. Please use `SiteSetting.create_tag_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/guardia
2:06 pm
33
Deprecation notice: `SiteSetting.min_trust_to_edit_post` has been deprecated. Please use `SiteSetting.edit_post_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/guardian/
2:06 pm

이 문제가 처음 시작된 시점이나 Discourse 소프트웨어 버전이 무엇인지 확실하지 않습니다. 가입 신청이 많지 않고, 접수된 신청 중 거절해야 하는 경우도 적기 때문입니다. 하지만 확실히 이전에 이러한 문제는 없었고, 이전에도 지원자에게 보내는 거절 알림에 동일한 메시지를 붙여넣어 사용한 적이 있습니다.

'거절 사유가 너무 깁니다 (최대 500자)'라는 언급을 확인했고, 제 표준 거절 사유 텍스트는 실제로 500자를 초과합니다. 하지만 이전에는 이 방법으로 작동했습니다.

이 문제는 해결해야 한다고 생각합니다. 특히 신청이 악의적으로 동기화된 것이 명확하지 않은 경우(예: 의도된 회원 자격 기준에 부합하지 않지만, 명백한 봇, 마케팅 담당자 또는 기타 '악성 행위자’가 아닌 경우), 거절에 대해 완전하고 만족스러운 설명을 제공하는 것은 잠재적 지원자에 대한 기본적인 예의입니다.

재신청을 원할 수 있는 사람들에게 조언을 제공하려는 경우, 500자 이내에 이를 수행하는 것은 어렵습니다. 필요하다면, 문자 제한을 늘릴 수 있는 방법이 있을까요?

이것은 다른 곳에서 요청된 바 있지만, 수정 가능한 표준 ‘거절 사유’ 드롭다운 목록을 선택할 수 있도록 해달라는 요청을 다시 한 번 강조하고 싶습니다(개발자분들이 이 내용을 보신다면).

3개의 좋아요

최근 일부 텍스트 필드에 제한이 추가되었는데, 어떤 경우에는 합리적이라고 판단한 값으로 추정하여 설정한 것입니다. 이 항목의 제한을 더 높게 올릴 수 있는지 확인해 보겠습니다. 몇 자 정도가 필요할 것 같으신가요?

기존 주제에 의견을 추가해 주시면 해당 요청이 인기 있다는 점을 보여줄 수 있으며, 이는 우선순위 목록에서 순위를 높이는 데 도움이 될 수 있습니다. :+1:

3개의 좋아요

안녕하세요, @JammyDodger 감사합니다. 현재 제가 작성 중인 거절 사유 텍스트는 2,211자 길이에 달합니다. 몇 가지 시나리오에 대한 조언을 포함하고 있는데, 이 부분은 다소 미묘한 뉘앙스를 필요로 하기 때문입니다(이것은 꽤 전문적인 포럼이거든요).

일단 드롭다운 사유 목록 아이디어는 제쳐두고, 이 사유가 기본적으로 빈 필드로 설정되는 대신, 미리 정의된 텍스트 문자열을 기본값으로 사용하는 것은 어떻게 될까요? 필요할 경우에만 빈 필드를 대체용 사용자 정의 텍스트 옵션으로 사용할 수 있도록 체크박스를 제공하는 방식입니다.

해당 별도 요청 스레드를 찾아보겠습니다.

1개의 좋아요

네, 맞습니다. 약 9개월 전 데이터베이스 레벨에서 이 제한을 추가했습니다: DEV: Set limits for text fields in reviewables · discourse/discourse@783c935 · GitHub

현재 인스턴스별로 이 제한을 오버라이드할 수 있는 방법이 없습니다. 한도를 조금 더 늘리는 것, 예를 들어 2000자로 변경하는 것에는 열려 있지만, 먼저 실제 환경에서 이 문제가 되는 사례가 더 있는지 확인하고 싶습니다. 당분간은 해당 메시지를 줄이고(나머지 내용은 토픽 링크를 통해 안내하는 방식) 그렇게 하는 것이 합리적이라고 생각합니다.

한도를 초과하는 텍스트를 입력하는 사용자에게 오류 메시지가 표시되도록 이 부분의 UI를 개선해야 한다고 생각합니다.

사이트가 로그인 필수로 설정되어 있다면 게시된 페이지가 꽤 잘 맞을 수 있습니다. 로그인 필수로 설정되어 있더라도 익명 사용자에게도 표시되도록 설정할 수 있습니다.

2개의 좋아요

고맙습니다. 말씀하신 대로 처리했지만, 이미 조금 불쾌한 기분을 느끼고 있는 신청자들에게 불필요한 단계를 더 요구하는 것은 피하고 싶습니다. 특히 이메일 앱은 기본적으로 수신된 이메일 내 URL 열기를 차단하는 경우가 많기 때문이죠.

나중에 잠재적으로 포럼 사용자가 될 수 있는 사람들을 불필요하게 짜증나게 하거나 소외시키는 것은 원치 않습니다.

또한 이 메시지를 매번 수동으로 복사해서 붙여넣는 것도 피하고 싶습니다.

1개의 좋아요

개인적으로 그렇게 하는 이메일 앱을 본 적이 없어서, 다소奇怪的한 기본 설정인 것 같습니다.

제 Microsoft Outlook 앱이 바로 그런 사례입니다. 이 동작은 수신된 메시지에 대해 앱이 부여하는 신뢰 수준에 의해 영향을 받는 것 같습니다.
새로운 사용자 또는 지원자는 자동화된 이메일 응답을 트리거하게 되는데, 사용자가 이미 발신 도메인을 신뢰할 수 있는 발신자 목록에 추가하지 않았다면 이 응답이 다소 스팸처럼 보일 수 있습니다. 특히 사용자가 아직 공식적으로 승인받지 못한 상태라면, 이 단계를 이미 완료했다고 기대하기는 다소 무리가 있습니다.

제 이메일 도메인의 평판을 극대화하기 위해 할 수 있는 모든 노력을 기울였지만, 포럼에서 보내는 일부 메시지는 여전히 일부 수신자의 스팸 메일 폴더로 분류되고 있습니다. 스팸 폴더에서도 메시지를 읽을 수는 있지만, 링크는 항상 비활성화되어 있습니다.

저도 같은 상황입니다. 링크와 연락처 정보를 넣으려면 최소 1200자 정도는 필요합니다. 이 부분은 좀 귀찮네요. 또한 문단 나누기 기능이 있으면 그렇게 기계적으로 보이지 않을 것 같습니다. 감사합니다.

1개의 좋아요

이 커밋에서 제한을 2000자로 늘리고 에러 메시지 표시를 수정했습니다 :slight_smile:

3개의 좋아요

@martin 감사합니다. 하지만 제 호스팅 계정에서는 아직 작동하지 않습니다. 여전히 오류가 발생합니다. 1100자 미만입니다. 감사합니다.

1개의 좋아요

아, 잠깐—흥미롭게도 오류가 발생했는데도 이메일은 정상적으로 발송되었습니다. 하지만 사용자는 삭제되지 않았습니다. 어제는 같은 사용자에게 약 20통의 이메일을 보낸 건가요?

2개의 좋아요

아, 죄송합니다. 귀하가 호스티드 고객이신 줄 몰랐습니다. 개인 메시지로 해당 사이트를 알려주시면 오늘 변경 사항을 배포하겠습니다.

이상하네요. 이 부분을 다시 확인해 보겠습니다. 어제 변경 사항을 작업할 때 중복 이메일을 발견하지 못했습니다.

3개의 좋아요

실제로 문자 수 제한 오류가 발생해도 이메일은 전송됩니다 :fearful: 지금 수정 작업 중입니다.

4개의 좋아요

수정이 완료되었습니다:

곧 사이트를 배포하겠습니다. 전달해 주셔서 감사합니다.

2개의 좋아요

이 주제는 3일 후 자동으로 닫혔습니다. 새로운 답글을 더 이상 작성할 수 없습니다.