우리는 자원봉사자가 운영하고 회원 기반인 조직을 위해 Discourse를 사용 중인데, 그룹 구성원 현황을 빠르게 보고할 수 있는 방법이 있는지 알고 싶습니다.
현재 이메일의 한계가 드러나는 그룹 토론 등에서 조직 운영을 돕기 위해 Discourse를 사용하고 있으며, 약 60명의 사용자와 20개의 그룹이 있습니다.
Discourse의 권한 인터페이스가 다소 제한적이라고 느끼는 부분이 있습니다. 저는 IT 시스템 관리자를 해온 경력이 있어 Active Directory와 같은 도구에서 그룹을 중첩하는 것에 익숙합니다. 다만 Discourse는 분명히 다른 시스템이므로, 제 경험을 너무 많이 투영하고 있지는 않은지 걱정됩니다.
카테고리 정리를 돕고 시간을 절약하기 위해, 누가 어떤 그룹에 속해 있는지 나열된 보고서를 쉽게 생성할 수 있기를 희망합니다.
그룹 구성원이 최신 상태로 유지되어야만 가능하다는 것을 알고 있으며, 이것이 제가 아는 최선의 방법입니다.
SELECT
g.name group_name,
user_count
FROM groups g
ORDER BY g.name ASC
그룹 및 구성원 목록
-- [params]
-- string :group_name
SELECT
g.name group_name,
u.username user_name,
gu.owner group_owner
FROM group_users gu
LEFT JOIN groups g ON gu.group_id = g.id
LEFT JOIN users u ON gu.user_id = u.id
WHERE user_id > 0
AND g.name LIKE '%'||:group_name||'%'
ORDER BY g.name ASC, gu.owner DESC
모든 그룹 및 구성원 목록
SELECT
g.name group_name,
u.username user_name,
gu.owner group_owner
FROM group_users gu
LEFT JOIN groups g ON gu.group_id = g.id
LEFT JOIN users u ON gu.user_id = u.id
WHERE user_id > 0
ORDER BY g.name ASC, gu.owner DESC