FastComments.com

O que é Controle de Acesso? Internal Link

Com o Controle de Acesso SSO do FastComments, às vezes chamado de RBAC, usuários podem ser restritos a acessar apenas certas páginas ou threads de comentários. Além disso, os usuários só podem @mention uns aos outros no mesmo grupo.

Em Detalhe

Podemos colocar Users e, opcionalmente, Pages em grupos.

Quando Users são colocados em grupos, e Limit Comments by SSO User Groups está ativado em Configurações do Widget, então os usuários verão apenas comentários de usuários em seus mesmos grupos e só poderão @mention usuários nos mesmos grupos.

Além disso, Pages podem ser colocadas em grupos, e então os usuários só poderão acessar comentários de páginas às quais eles têm acesso.

Chamamos isso de grupos "User-Level" versus grupos "Page-Level".

Então, qual é o certo para você?

Use Grupos no nível do usuário se...

  • Você quer usar o mesmo urlId (URL da página ou ID do artigo), mas restringir comentários por grupo.
  • Por exemplo, você quer ter grupos "Novo Usuário" e "Usuário Veterano", e eles nunca devem ver os comentários uns dos outros nas mesmas páginas.

Use Grupos no nível da página se...

  • Seus grupos têm páginas específicas.
  • Por exemplo, usuários no grupo "Páginas Públicas" nunca devem ver artigos "Top Secret".

Como Funciona Internal Link

FastComments Controle de Acesso funciona atribuindo Pages e Users aos grupos desejados.

Um grupo é simplesmente um identificador de string, como GREEN ou abc-123.

Users e Pages não estão limitados a um único grupo. Eles são limitados a 100 e 1000 grupos, respectivamente.

Acesso a Páginas Não Autorizadas

Se um usuário tentar acessar uma página à qual não tem acesso, verá uma mensagem de erro, como abaixo:

Exemplo de Falha de Autorização
Authorization Failure Example

O texto da mensagem pode ser personalizado.


A Especificação Internal Link

Definir como vários usuários interagem e testá-lo é complicado. Aqui está a especificação que seguimos para controle de acesso, que você pode usar para testar sua implementação:

Página com IDs de grupo null, usuário com IDs de grupo null - deve ter acesso.
Página com IDs de grupo null, usuário com IDs de grupo definidos - deve ter acesso.
Página com IDs de grupo, usuário com IDs de grupo null - deve ter acesso.
Página com IDs de grupo, usuário com lista vazia - NÃO deve ter acesso.
Página com IDs de grupo, usuário com IDs de grupo - interseção existe - deve ter acesso.
Página com IDs de grupo, usuário com IDs de grupo - interseção não existe - NÃO deve ter acesso.
Página com lista vazia de IDs de grupo (ninguém tem acesso), usuário com null - NÃO deve ter acesso.

SSO User A = Nenhum ID de grupo definido (null = acesso total).
SSO User B = Nenhum ID de grupo definido (null = acesso total).
A pode @B.

SSO User A = Nenhum ID de grupo definido (null = acesso total).
SSO User B = IDs de grupo definidos.
A pode @B.

SSO User A = IDs de grupo definidos.
SSO User B = Nenhum ID de grupo definido (null = acesso total).
A pode @B.

SSO User A = IDs de grupo = [a].
SSO User B = IDs de grupo = [b].
A NÃO pode @B.

SSO User A = IDs de grupo = [a].
SSO User B = IDs de grupo = [a, b].
A pode @B.

Implementação Internal Link

Mencionando Usuários em Outros Grupos

Se dois usuários pertencem a dois conjuntos diferentes de grupos, e não há interseção, eles não poderão @mention um ao outro.

Se um usuário digitar manualmente um @mention e enviar seu comentário, ele permanecerá como texto simples. O outro usuário não será marcado.

Maintaining the Groups

Groups are defined using the Pages and SSOUsers API resources, respectively.

The Pages API can be invoked to define the set of groups allowed to access the page. By default, all groups, and users that do not belong to a group, have access.

Similarly, the SSOUsers API can be invoked to define the groups associated with each user.

For both resources, there are no limitations as to when the groups can be set or updated.

If it's only desired to limit users from @mention'ing each other, then Pages do not have to be taken into consideration.

Observação!

Definir e atualizar os grupos de usuários SSO não requer o uso da API, e pode ser atualizado automaticamente ao definir o group ids no payload SSO passado para o widget de comentários. No entanto, para listas grandes de grupos, isso não é recomendado, pois o usuário teria que enviar esse payload a cada carregamento de página.