Desculpe, é um post antigo, mas por que você não configura seu tema como um repositório no GitHub? Conceda permissão à sua equipe de design e UX para acessar e atualizar o tema no GitHub.
No Discourse, agora é possível configurar os temas para atualização automática após a reconstrução.
Seus administradores precisarão apenas reconstruir para incorporar quaisquer alterações feitas pela equipe de design e UX, e esta última não precisará de acesso administrativo em absoluto.
Ao lidar com questões de controle de acesso, em geral, essas verificações de RBAC devem ser realizadas no lado do servidor.
O código de RBAC em Javascript do lado do cliente pode ser manipulado pelo cliente.
Isso significa que, ao definir permissões básicas de RBAC para equipe, administradores e moderadores, isso deve ser feito (de modo geral) no Rails, e não no Javascript.
Aliás, é assim que o Discourse realiza o RBAC atualmente, usando o que o Discourse chama de “guardian”, uma classe Ruby chamada class Guardian, aqui:
Se um desenvolvedor for adicionar verificações de RBAC no código Javascript chamando a API do Discourse, lembre-se de que esse código pode ser comprometido, pois o código executado no navegador pode ser manipulado.
Minha recomendação é garantir que todo o código básico de RBAC seja executado no lado do servidor e não tente contornar isso no Javascript do lado do cliente.
Tenho um caso de uso semelhante: administro uma pequena comunidade sem fins lucrativos, onde um de nossos usuários é responsável pela manutenção dos temas e do design.
Não desejo conceder acesso a dados privados de usuários (como endereços de e-mail, etc.) a ninguém além de mim e do meu co-proprietário, mas tenho quatro moderadores.
Para que o designer possa trabalhar, precisei criar um site de cópia sem conteúdo, onde ele é administrador, e depois copio temas e componentes manualmente. No entanto, isso não é ideal, pois algumas alterações exigem conteúdo para serem validadas.
Então, deixe o desenvolvedor trabalhar no site de staging e envie os temas para o GitHub. Mas você ainda precisará atualizá-los manualmente. Você pode tentar fazer a atualização usando a API e, de alguma forma, permitir que o desenvolvedor a acione.
Estou trabalhando em uma ferramenta que pode ajudar com isso.
Se você não confia no designer para ver seus dados, que solução você imaginaria?
Você poderia dar a eles apenas uma chave de API que os permitiria usar o discourse_cli para enviar o tema para lá e, em seguida, desativá-la quando terminassem, talvez?
Não há absolutamente nenhuma razão para um designer ter acesso a 100 mil usuários, lol. Além disso, seria contra as regras do GDPR. É possível fornecer uma chave de CLI apenas para atualizações de temas?
Agora, ao contrário de quando esse tópico foi criado (o que parece ser o estado da minha mente quando escrevi minha resposta), temos chaves de API granulares. Não deve ser difícil adicionar um novo escopo apenas para o gerenciamento de temas.
Vale a pena criar um novo tópico em Contribute > Feature pedindo um escopo de chave de API para desenvolvedores de temas. Parece uma boa ideia.
Seria bom se @AV_C pudesse postar uma referência a este requisito. Embora eu possa apreciar fortemente por que um cliente gostaria de restringir o acesso à base de usuários e até mesmo a categorias privadas devido a uma variedade de razões. O administrador completo pode acessar os e-mails de inscrição dos membros e categorias privadas podem conter outro conteúdo sensível, dependendo do caso de uso do cliente.
Acho que @pfaffman tem uma boa ideia para garantir que esse tipo de lacuna possa ser coberto por meio de uma API de administrador restrita. Uma vez que o trabalho do designer seja concluído, a chave pode ser revogada até que seja necessária.
Isso também se encaixaria na ideia de Jay de não mostrar um usuário como administrador na página Sobre.