제 파트너가 고대 그리스어와 고전 라틴어를 가르치는 교사인데, 몇 년째 수업에서 Discourse를 활용하고 있습니다. 주로 과제를 배포하고 나중에 토론하는 용도로 사용하고 있습니다. 다만, 지금까지는 수업 시간에 종이로 과제를 제출받았습니다.
하지만 코로나 사태로 학교가 휴교에 들어간 이후로는 100% 온라인 수업으로 전환했는데, 과제 제출도 포함됩니다. 그래서 현재 학생들은 모두 이메일로 과제를 보내고 있습니다. 이는 행정 업무가 많이 발생하여 매우 비효율적입니다(솔직히 말씀드리면, 파트너는 이런 행정적인 일에는 좀 약한 편이거든요 ;)).
몇 가지 옵션을 논의하던 중 파트너가 이렇게 말했습니다. “토론 주제(topic)에서 사람들이 제 게시물(즉, 주제 작성자의 게시물)과 자기 자신의 게시물만 볼 수 있게 하면 어떨까? 그러면 과제를 주제로 올리고, 각 학생이 아래에 답을 게시하되 다른 학생들의 답은 볼 수 없게 할 수 있겠네요. 그리고 모든 학생이 과제를 제출하고 토론할 때가 되면, 버튼을 한 번 눌러 '베일’을 걷어내어 주제 내의 모든 게시물을 모든 사람이 볼 수 있게 하고, 서로의 작업을 보고 토론하게 하고 싶습니다.”
정말 훌륭하죠! (그래서 제가 그분을 사랑하는 겁니다.)
이 기능을 위한 플러그인을 만들 생각인데, ‘마법 스위치’(주제가 해결(solved) 상태가 되는 순간 모든 것을 보이게 하는) 기능에는 solved 플러그인을 활용할 계획입니다. 하지만 시작하기 전에 여러분의 의견을 듣고 피드백을 얻고자 합니다. 이 기능을 더 좋게 만들 아이디어도 환영합니다.
이를 효율적으로 구현하는 방법에 대한 힌트나 조언도 매우 환영합니다. 주제를 가져오는 방법이 다양하기 때문에, 학생 한 명이라도 이 기능을 우회하는 방법을 찾으면 모든 것이 무의미해지거든요.
주제와 관련된 모든 것이 TopicView를 통해 처리되는 걸까요? username_filters를 활용할 수 있을까요? 아니면 유사한 것을 만들어야 할까요? 아니면 guardian이 더 나은 방법일까요?
업로드인 경우, 새로운 Secure Media Uploads를 사용하고, 사용자 다운로드를 위한 임시 URL 생성 방식을 변경하는 플러그인을 적용하여 스태프에게는 ‘적절한’ URL만 생성되도록 하면 작동할 수 있으며 최소한의 변경 사항이 될 수 있습니다. 주제가 해결/태그 지정/닫힌 후 임시 URL은 일반 상태로 복원되어 모든 사람이 모든 것을 볼 수 있게 됩니다.
음, 이 문제는 좀 까다롭네요. TopicView와 PostGuardian을 좀 손보고 있는데, /raw와 인용된 게시물의 번호를 편집하는 트릭을 포함해서 큰 노력 없이 80% 정도는 달성했습니다. 현재로서는 다음 경로들을 통해 보여서는 안 되는 게시물들을 여전히 볼 수 있습니다:
검색
사용자 활동
다이제스트 이메일
그래서 추가 패치가 필요합니다. 지금은 이 정도밖에 떠오르지 않습니다. 게시물에 접근할 수 있는 다른 방법들에 대한 제안은 환영합니다.
다른 모든 사용자는 주제 소유자, 스태프, 그리고 본인이 작성한 게시물만 볼 수 있습니다.
이러한 주제는 주제 상단에 표시되는 배너로 구별할 수 있습니다:
주제 소유자가 게시물을 공개하기로 결정하면, 주제 하단의 같은 버튼(이제는 'Public Replies’로 표시됨)을 사용하여 Private Replies 모드를 비활성화할 수 있습니다. 그러면 배너가 사라지고 모든 게시물이 모든 사람에게 표시되게 됩니다(물론 카테고리 보안 설정은 준수됩니다).
이 플러그인은 다음과 같은 게시물 내용 조회 방식을 비활성화합니다:
주제 보기 (즉, 게시물을 보는 일반적인 방법)
사용자 프로필 - 활동
검색
원본 (/raw/topic_id/post_id)
면책 조항 1:
이 플러그인은 누가 주제에 게시물을 올렸는지를 완전히 숨기지 않습니다. 주제 목록의 사용자 아바타는 그대로 유지되며, 주제도 사용자 프로필 - 요약에서 여전히 표시됩니다. 그러나 이 두 가지 모두 게시물 내용을 드러내지 않습니다.
면책 조항 2:
제가 놓쳤을 수 있는 게시물 내용 조회 방식이 있는지 알 수 없습니다. (예를 들어, 다이제스트가 정보를 노출하는지 여부는 아직 테스트해야 합니다.) 제 배우자가 앞으로 몇 주 동안 이 부분을 테스트할 예정이며, 그녀의 학생들이 몇 가지 교묘한 우회 방법을 찾아낼 수 있을 것이라고 의심하지 않습니다. 그런 방법을 알게 되는 대로 즉시 막을 것입니다. 힌트와 팁은 환영합니다!
이번 주 안에 플러그인 카테고리 게시글과 좋은 README.md를 작성할 예정입니다. 그 때까지 여러분의 피드백을 듣고 싶습니다!