Atualmente, as entradas de eventos são sempre parte do elemento de interface do calendário, que pode ser adicionado a uma categoria. Não há como restringir um evento a um grupo de usuários específico. Se você tiver uma configuração do Discourse com múltiplas comunidades, todas as comunidades verão todos os eventos de todas as outras comunidades. Se você exibir os eventos do Discourse externamente em um site por meio de uma chamada de API como
Deveria haver uma opção para criar eventos “internos” que sejam exibidos apenas dentro de um grupo de usuários. Esses eventos não devem ser legíveis por meio da solicitação de API ICS “geral”. Em vez disso, eles devem estar disponíveis apenas com uma “chave de API de grupo” especial e adicional, ou com algum outro tipo de limitação segura. O caso de uso é uma seleção entre eventos “públicos” e eventos “privados”, que são visíveis e editáveis apenas dentro de um grupo de usuários específico.
Criar um usuário que pertença apenas ao grupo necessário e gerar a URL de assinatura do calendário a partir das preferências desse usuário funcionaria no seu caso? O feed incluiria apenas os eventos que esse usuário pode visualizar.
Hmmm, não tenho certeza. Parece uma solução alternativa, mas não exatamente uma “solução”
Todas as pessoas dentro de um grupo específico da Comunidade devem ser capazes de criar eventos. E também vê-los quando acessam a categoria “dele/dela” da comunidade. Isso já funciona bem em nossa configuração atual com 5 comunidades diferentes. Usamos as seguintes permissões de categoria:
uma categoria por grupo de comunidade. Esta tem “leitura global somente” e “leitura/criação/resposta da comunidade”. Esta categoria é federada via AP para permitir que pessoas sem contas no Discourse vejam os eventos e também para permitir a integração do calendário do Discourse em sistemas de terceiros (por exemplo, WordPress com plugin ICS)
um número variável de subcategorias internas. Essas subcategorias têm apenas permissões de “leitura/criação/resposta da comunidade”. Elas ficam invisíveis sem as permissões de grupo adequadas.
As únicas lacunas são
a solicitação ics atual apresenta TODOS os eventos
alguma maneira de solicitar apenas os eventos de uma comunidade específica através de ICS/API.
Existem dois níveis de usuário para as chaves de API: “usuário único” ou “todos os usuários”. As chaves de API que atualmente utilizamos para a solicitação ICS têm o nível “todos os usuários”.
Portanto, para resolver isso, provavelmente precisaríamos de chaves de API com o nível “usuário único”. E o usuário selecionado deveria ter apenas o grupo de permissões de comunidades, nada mais.
Vou verificar isso. Talvez isso possa resolver o problema …