방금 테스트해 보았는데, 테스트 중 문제가 있음을 발견한 것 같습니다:
허용된 그룹에 속하지 않은 사용자의 경우, user_in_copy_button_allowed_groups에 대한 새로운 체크가 결과를 반환하지 않습니다. 따라서 user_in_setting을 아직 처리할 수 없는 포럼을 위한 폴백 코드가 실행되지만 실패합니다:
[THEME 254 'Copy post button'] TypeError: Cannot read properties of undefined (reading 'split')
재현 방법:
- 구성 요소를 설치하고 테마에 추가합니다.
- allowed_groups를 관리자(admins)로 제한합니다.
- 비관리자 테스트 사용자로 임페르소네이트(impersonate)하고 브라우저 콘솔을 확인합니다.
문제는 여기 있는 것 같습니다:
if (Object.hasOwn(settings, "user_in_copy_button_allowed_groups")) {
if (settings.user_in_copy_button_allowed_groups) {
return true;
}
}
이 코드는 값이 true일 때만 조기 반환합니다. false인 경우 아래에 있는 폴백 코드가 실행되는데, 이 코드는 설정 값이 여전히 문자열로 존재한다고 기대합니다. 그러나 copy-post에서 폴백 패턴을 복사한 제 [1] 구성 요소로 테스트해 본 결과, user_in_X 지원이 활성화되면 값이 undefined가 됩니다. user_in_X 키가 아예 존재하지 않는 경우(오래된 코어)에만 폴백이 사용되고, 해석된 값이 false인 경우에는 폴백이 실행되지 않도록 해당 경우에도 false를 반환하는 것이 수정 방법이라고 추측합니다.
제 추측이 맞나요, 아니면 설정은 여전히 그룹을 문자열로 제공해야 하나요?
prefilled composer link ↩︎
