제 포럼에는 그룹이 포함된 카테고리 아래에 잠금 처리된 비공개 주제가 많이 있을 예정입니다. 수업 환경이므로 익명 게시가 매우 중요합니다. 문제는 사용자가 익명으로 전환할 때 그룹이 이전되지 않는다는 점입니다(예상할 수 있는 일이긴 합니다).
저는 플러그인을 작성해 본 적이 없지만, 이 문제는 플러그인으로 해결하는 것이 가장 적합해 보입니다. 사용자가 익명으로 전환되면 계정이 생성되는데, 이때 해당 사용자의 현재 모든 그룹을 익명 계정에 할당하려고 합니다. 이렇게 하면 될까요? 저는 API를 사용하여 그룹을 할당하고 제거합니다. 익명 사용자에게도 이러한 변경 사항이 적용되도록 트리거를 설정할 수 있을까요?
Data Explorer 쿼리를 사용하여 특정 그룹의 멤버인 실제 사용자와 연결된 익명 사용자 이름 목록을 반환하는 방식으로 개념을 테스트해 볼 수 있습니다. 그런 다음 그룹에 사용자들을 추가하는 ‘Bulk Add to Group’ 기능을 사용할 수 있습니다.
아래는 특정 그룹의 멤버인 실제 사용자의 익명 사용자 이름을 반환하는 쿼리입니다. 쿼리를 실행하기 전에 group_name 매개변수 값을 지정해야 합니다.
--[params]
-- string :group_name
WITH target_users AS (
SELECT
user_id AS master_user_id
FROM group_users gu
JOIN groups g
ON g.id = gu.group_id
WHERE g.name = :group_name
)
SELECT
u.username
FROM target_users tu
JOIN anonymous_users au
ON au.master_user_id = tu.master_user_id
JOIN users u
ON u.id = au.user_id
그룹의 멤버 중 익명 모드를 활성화한 사용자가 있다면, 쿼리를 실행했을 때 다음과 같은 결과가 반환됩니다:
여기는 교실 환경입니다. 학생들이 아무런 부담 없이(예: 어리석은 질문이라고 생각할 수 있는 것들 포함) 자유롭게 의견을 개진할 수 있기를 바랍니다. 익명 게시는 공개 포럼에서는 잘 작동한다고 생각하지만, 대부분의 토론은 특정 그룹으로 제한될 예정입니다.
우리는 이 기능을 단기적으로 달성하려는 목표에서 제외했습니다.
매번 수동으로 처리해야 하는 방식은 원하지 않습니다. 만약 이 과정을 자동화하려면 플러그인을 작성해야 하는 건가요? 사용자가 생성될 때 해당 사용자의 그룹을 가져와 익명 계정에 자동으로 연결해 주는 트리거를 만들 수 있을까요? 해당 익명 계정은 일정 시간 후 삭제되므로, 익명 계정에서 그룹을 해제하는 과정은 걱정하지 않아도 될 것 같습니다.