Criando relatório sobre associação de grupo?

  • Utilizamos o Discourse para nossa organização gerida por voluntários e baseada em membros, e gostaria de saber se existe uma maneira rápida de obter um relatório de associação a grupos.
  • Atualmente, temos cerca de 60 usuários e 20 grupos, pois usamos o Discourse para ajudar a gerenciar nossa organização, especialmente onde as limitações do e-mail surgem em discussões de grupo.

Encontro algumas das interfaces de permissões do Discourse um pouco limitantes às vezes. Vem de minha experiência como administrador de sistemas de TI, então estou acostumado a poder aninhar grupos em coisas como o Active Directory, mas espero não estar projetando isso demais no Discourse, pois são obviamente coisas muito diferentes.

  • Estou esperando produzir facilmente um relatório que tenha uma lista de quem está em qual grupo para ajudar a manter nossas categorias organizadas e consumir menos tempo.
    • Sei que isso só será possível se eu mantiver a associação aos grupos atualizada, mas essa é a melhor maneira que conheço.
  • Suponho que a aninhamento de grupos não seja possível?

  • Qual é a razão de ter o mecanismo que gera esse erro?
  • Entendo que você não gostaria que uma categoria filha fosse acessível quando a categoria pai não for (isso é aceitável para uma unidade de rede compartilhada, mas não faz sentido no Discourse).
  • Mas você poderia mudar isso para um alerta informando que o grupo em questão não é acessível pela categoria pai e, ao continuar com essa alteração, eles seriam adicionados com as permissões mínimas necessárias (ou um nível selecionável)?

Talvez exista uma consulta no Data Explorer que possa trazer essa informação para você? Uma lista de cada grupo e os membros de cada grupo? É isso que você está procurando?

@michebs talvez seja algo com o que você possa ajudar?

Se essas informações são o que você precisa, essas consultas podem ajudar.

LISTAR NOMES DOS GRUPOS
SELECT 
    g.name group_name,
    user_count
FROM groups g 
ORDER BY g.name ASC
LISTAR GRUPO E MEMBROS
-- [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
LISTAR TODOS OS GRUPOS E MEMBROS
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

Obrigado @codinghorror @michebs.

Eu nunca usei o Data Query Explorer antes. É algo que vou encontrar na CLI da minha instância?

Pelo que parece, ele é um pouco parecido com consultas SQL e Influx.

É um plugin. Veja Discourse Data Explorer

É SQL.