Segurança - direitos negativos (como?)

(por que explicado por último)

Temos direitos de Criar e Ver, etc. Eu precisaria de uma maneira fácil de implementar Ver para um grupo em todo o site, exceto em algumas áreas, basicamente um direito negativo que entra em vigor com prioridade mais alta.

Estou apenas pensando alto aqui, pois testar todas as possibilidades que consigo pensar levaria algum tempo. Estou meio que esperando que alguém diga: “por que você não faz assim…”

Eu acho que poderia criar um grupo que recebesse apenas direitos de Ver. Estou imaginando que o Discourse seria inteligente o suficiente para que, se alguém tivesse direitos de Ver e todos direitos de Escrever, essa área se tornasse apenas Ver para o grupo? Isso seria uma espécie de implementação automática de direito negativo (opção mais barata), embora não seja lógica. O problema é que, mesmo que funcionasse, passar por todas as áreas adicionando um grupo para usuários “maus, mas necessários” levaria algum tempo.

Não é possível remover um usuário de todos, uhum.

Criar um novo pseudo-todos com todos, exceto usuários que se comportam mal, seria um trabalho enorme (talvez não com um script, mas ainda assim).

Como eu disse, pensando alto tentando resolver o problema… esperando ter um momento de epifania mesmo :D.


O problema real é um usuário escrevendo suas postagens em qualquer área que ele esteja lendo no momento (geralmente a postagem mais recente de qualquer coisa). Não é um grande problema, exceto que as postagens são tão incoerentes que certamente perturbarão outros usuários. O problema é que ele é absolutamente necessário em uma área (100%, área de dinheiro), mas eu ficaria feliz em limitá-lo ao modo de visualização em todos os outros lugares.

A maior parte do fórum consiste em áreas bloqueadas, felizmente, mas as pessoas ainda recebem e-mails semanais ou o que for quando ele se espalha para uma das poucas áreas comuns.

3 curtidas

Acho que o mais próximo que você poderia chegar disso com o Discourse seria silenciar o usuário, o que permitiria que ele lesse/visse, mas não postasse:

https://meta.discourse.org/t/discourse-moderation-guide/63116#silence-the-user-26

Não é granular o suficiente para permitir que ele poste apenas em certas categorias.

Mas, como o guia de moderação menciona, uma opção é também tentar entrar em contato com o usuário primeiro, antes de recorrer aos recursos de silenciar/banir:

https://meta.discourse.org/t/discourse-moderation-guide/63116#the-difficult-user-22

1 curtida

Não, essas permissões são sempre aditivas.

4 curtidas

Sim, infelizmente isso não funciona, pois ele é dono de metade do fórum e 95% do tempo é necessário para decisões :slight_smile: . Ah, bem, é raro o suficiente e a limpeza não é muito trabalhosa (pulando as perguntas onde as postagens dele foram). Uma boa solução técnica poderia sempre contar com “dificuldades técnicas” como resposta :wink:

Acabei de conversar, aparentemente ele começa a fazer spam em tudo quando atinge algum nível máximo de 3 postagens. Mas talvez eu o tenha movido de volta para as mensagens até que ele se esqueça na próxima vez…

Hmm, travar o nível de confiança dele em 0 ou algo assim pode ser útil :smiley: .

1 curtida

Sempre afirmei que permissões negativas (geralmente) são resultado de um mau design. Fico surpreso por ter encontrado uma situação em que elas seriam realmente úteis.

É basicamente uma máscara de bits, afinal, primeiro aplique todas as permissões aditivas, todas as negativas por último.

Eu poderia ver isso sendo útil para pessoas idosas (exemplo não politicamente correto), permitindo que elas entrem apenas na área de como usar e, em seguida, em qualquer área de interesse de seu grupo específico.

Acho que tive sorte em manter quase todas as áreas isoladas, então, por padrão, as pessoas nunca são incomodadas por coisas que não lhes interessam. As pessoas que marcam uma área como “não assistindo” ou silenciadas é muito difícil para 99% dos usuários. Ou desativar resumos diários/semanais, é mais fácil mover tudo para o spam e depois reclamar que nunca receberam um aviso sobre algo :D.

1 curtida

Outro exemplo seria se você quisesse banir pessoas específicas, por exemplo, do Marketplace.

Tenho trabalhado em um plugin que permite grupos dinâmicos para que você possa fazer álgebra booleana como
groupA = groupB AND NOT groupC

e groupA será atualizado automaticamente se as pessoas entrarem ou saírem do groupB ou groupC. Meu plano é terminá-lo no próximo mês ou mais.

4 curtidas

Este conceito também foi discutido aqui antes:

Eu ainda sou a favor dele :smiling_face:

1 curtida

Legal, a pesquisa geralmente encontra coisas semelhantes, mas encontrar as palavras corretas aqui foi uma tarefa árdua :slight_smile: . Basicamente, um grupo de exclusão de direitos que sempre tem prioridade final/superior seria a maneira mais fácil (não múltiplos grupos ou nada muito sofisticado).

Ah, bem, não parece que isso aparecerá tão cedo, se é que aparecerá.

Escrevi dois sistemas de permissão herdados + exclusão em minha vida e, embora parecessem bastante difíceis de escrever, uma vez que você entende a lógica e a ordem corretas, eles funcionaram como um encanto (e com pouco código também). No entanto, poucas pessoas entenderam como eles funcionavam . 4 níveis de herança permitida e exclusão provavelmente exigem nível Mensa ou algo assim. Mesmo quando você tem casos de uso para todos os níveis.

1 curtida

Então o problema é que ele não pode postar onde você quer que ele poste, então ele começa a postar em outros lugares. [quote]
Número de posts consecutivos que um usuário pode fazer em um tópico antes de ser impedido de adicionar outra resposta. Este limite não se aplica ao proprietário do tópico, à equipe do site ou aos moderadores da categoria.
[/quote]

Então a solução é garantir que ele possa postar onde você quer que ele poste. É número máximo de respostas consecutivas que está causando o problema?

que ele está atingindo porque ele não edita posts e em vez disso continua respondendo a si mesmo? Talvez apenas mudar a configuração ou ensiná-lo a editar?

2 curtidas

Bem, o problema real, que foi vagamente implícito, é que o fórum não tem um bloqueio de álcool. Por outro lado, ele realmente não precisa se candidatar a um emprego, então detalhar isso não importa.

Então, mais uma questão de, as respostas aparecem depois do que ele leu por último. O treinamento não é muito útil depois da 15ª cerveja :D. Neste caso, mesmo o acesso restrito fora do horário comercial (9h às 17h) não ajudaria. Textos bastante esclarecedores, na verdade, o problema é que, assim que você menciona (qualquer) deus e sua existência ou inexistência, você está fadado a ofender metade do planeta…

Portanto, mesmo que isso interrompa a conversa (como parcialmente insolúvel :)), as partes técnicas que às vezes você gostaria de ter considerando usuários normais ainda são válidas.

3 curtidas

Esse é um problema difícil.

Basicamente, uma reformulação massiva de permissões no nível do código é necessária para fazer qualquer coisa nesse espaço.

1 curtida