안녕하세요. 제 사이트에는 구매/판매/거래 카테고리가 있는데, 회원들이 규칙 토픽을 '좋아요’하도록 한 후에만 게시글 작성 권한을 부여하고 싶습니다. AI 봇에게 물어보니 몇 가지 안내를 받았지만, 호스팅 플랜에서만 사용할 수 있는 Discourse Automation 기능이 필요하다고 합니다.
자체 호스팅 플랫폼에서 이 기능을 사용할 수 있는 방법이 있을까요?
안녕하세요. 제 사이트에는 구매/판매/거래 카테고리가 있는데, 회원들이 규칙 토픽을 '좋아요’하도록 한 후에만 게시글 작성 권한을 부여하고 싶습니다. AI 봇에게 물어보니 몇 가지 안내를 받았지만, 호스팅 플랜에서만 사용할 수 있는 Discourse Automation 기능이 필요하다고 합니다.
자체 호스팅 플랫폼에서 이 기능을 사용할 수 있는 방법이 있을까요?
안녕하세요, 실제로 커뮤니티 에디션에 무료로 포함되어 있습니다. 플러그인 탭에서 활성화할 수 있습니다.
아니면 됐어. 디스코드 자동화 플러그인을 수동으로 추가할 수 있다는 걸 알아냈어…
음, https://meta.discourse.org/t/discourse-policy/88557와 그룹 권한을 함께 사용하면 될까요?
- add-users-to-group: 단일 그룹을 입력으로 받습니다. 정책을 수락한 사용자는 해당 그룹에 자동으로 추가됩니다(정책이 수동으로 취소되거나 정책 버전이 업데이트되면 사용자는 그룹에서 제거됨)
해결했습니다 (ask.discourse.org의 도움으로).
badge sql을 활성화한 후, 특정 게시물을 좋아하면 배지가 부여되도록 배지를 생성해야 했습니다. 그런 다음 Discord Automation이 해당 배지를 가진 사용자에게 자동으로 할당하는 그룹을 만들었습니다. “everyone” 그룹에는 카테고리 읽기 전용 접근 권한만 부여하여 이모지 반응만 가능하게 했고, 커스텀 그룹에는 전체 접근 권한을 부여했습니다.
좋아요 – 자세한 내용을 공유해 주셔서 감사합니다!
이제 여러분의 게시물을 해결책으로 표시할 수 있습니다. ![]()
집에 가서 제가 정확히 어떤 조치를 취했는지 자세히 정리해서 올리겠습니다. 혹시 다른 분들도 궁금해하실 수 있으니까요. 그리고 그 답변을 해결책으로 표시하겠습니다.
혹시 다른 분들도 이걸 해보고 싶으시다면, 제가 어떻게 했는지 간단히 정리해 보겠습니다:
./launcher enter app
rails c
SiteSetting.enable_badge_sql = true
![]()
SELECT DISTINCT ON (pa.user_id)
pa.user_id,
pa.post_id,
pa.created_at granted_at
FROM post_actions pa
JOIN posts p ON pa.post_id = p.id AND p.post_number = 1
WHERE pa.post_action_type_id = 2
AND p.topic_id = 117
AND (:backfill OR pa.post_id IN (:post_ids))
이것으로 끝입니다. 이제 카테고리에서 게시물을 작성하기 전에 멤버들이 해당 카테고리의 규칙에 동의했는지 확인하는 시스템이 갖춰졌습니다.
다음으로 탐구해 볼 것은, 해당 그룹에 속하지 않은 모든 사용자에게 규칙 토픽을 제외한 모든 토픽을 숨기는 방법이 있는지 보는 것입니다. 하지만 이 기본 시스템만으로도 지금은 충분합니다.
비공개 토픽 플러그인 관련 주제에서 대안 솔루션이 제안되었습니다. 해당 내용을 이곳으로 옮깁니다.
이 플러그인 감사합니다! 우리 커뮤니티에 기본적인 티켓 시스템을 제공하기 위한 방법을 찾고 있었거든요.
또한 이 플러그인을 구매/판매/거래 카테고리에 사용하려고도 하고 있습니다. 현재 모든 사용자가 주제를 읽을 수 있지만, 특정 그룹에 속한 사람만 답글을 달고 주제를 생성할 수 있도록 설정되어 있습니다. 현재 워크플로우는 다음과 같습니다: 회원이 게시글을 좋아요함으로써 규칙을 읽었음을 확인합니다. 게시글을 좋아요하면 사용자에 커스텀 배지가 부여됩니다. Discourse Automate는 배지를 기반으로 사용자를 해당 그룹에 추가합니다.
이 방식은 규칙을 수락하지 않은 사람이 카테고리에 게시하는 것을 막아줍니다. 하지만 여전히 모든 게시물을 보고 읽을 수는 있습니다.
그래서, 모든 사용자를 카테고리에서 제거하고 보안 탭에 해당 커스텀 그룹만 포함시켜도 될까요? 관리자 그룹의 게시물이 항상 표시되도록 설정해 두었다면, 커스텀 그룹에 속하지 않은 사용자도 규칙을 보고 좋아요를 누를 수 있을까요? 그런 다음 좋아요를 누르고 그룹에 추가되면 모든 것이 그들에게 열리게 될까요?
이 플러그인은 그렇게 사용되도록 설계된 것이 아닙니다.
귀하의 사용 사례는 이 플러그인 대신 정책을 수락한 사용자를 그룹에 추가할 수 있는 Discourse Policy 플러그인을 사용하여 구현할 수 있습니다.
그룹 멤버십을 현재처럼 할당하게 된 과정을 파고들기 전에, Policy 플러그인을 먼저 살펴보았습니다. 이 용도로 Policy를 선호하지 않는 이유는 그룹에 적용해야 하기 때문입니다. B/S/T에 참여하려는 모든 사람이 해당 내용을 볼 수 있도록 하려면 trust_level_1과 같은 대상에 적용해야 합니다. 하지만 B/S/T에 참여하려는 사람이 모두 있는 것은 아니죠. 관심이 없는 사람에게 또 다른 클릭을 강요하고 싶지 않습니다(빠른 작업이지만).
사람들은 "BST 지원자"에 가입하고 정책을 수락하면 "BST 멤버"가 됩니다. 다소 복잡하지만, 게시글을 좋아하기(Like)로 인해 복잡한 Rube Goldberg 기계가 작동하는 것보다는 덜 복잡한 방법입니다.
이 방법도 작동할 수 있습니다. 조사해 보겠습니다. 감사합니다!! 저는 Discourse를 처음 사용하므로 아직 배우는 중입니다.