Estou usando o módulo Visualizações para criar uma exibição que somente usuários específicos devem poder acessar. Sei que o Views inclui controle de acesso por função ou permissões, mas preciso de algo mais refinado: Basicamente, quero poder dizer que apenas o usuário "x" e o usuário "y" podem acessar uma exibição específica (ou alguém com uma função de administrador do site). Portanto, isso funcionaria muito semelhante ao modo como o módulo ACL atua para nós individuais.
A melhor abordagem é criar um plug-in de acesso a visualizações personalizadas? Eu não tenho muita experiência com isso.
Além disso, estou pensando em usar um argumento com alguma validação para fazer isso (para que não precise criar dezenas de visualizações separadas). Por exemplo, como essa visualização será uma guia em um caminho de nó específico, estou pensando em configurar um campo de referência de usuário nesse nó que especifique quem poderá ver a visualização. Eu só precisaria de uma maneira para a exibição validar apenas se o usuário atual for igual a um usuário especificado no campo de referência do usuário.
Alguma ideia? Ou estou tornando isso mais complicado do que precisa ser?
Obrigado Ben
Respostas:
Em vez de limitar as permissões na exibição, você pode limitar as permissões no item de menu que leva a essa exibição (seja uma guia em um nó ou um retorno de chamada do menu). Você pode criar sua exibição com apenas uma exibição "Padrões" e nenhuma exibição de página (para que os usuários não possam apenas descobrir o caminho para ela). Em seu
page callback
item de menu, basta ligarviews_embed_view
para exibir a exibição. Parece que lidar com permissões em um item de menu pode ser mais fácil do que escrever um novo plug-in para Views (embora um plug-in possa ser útil para outros).fonte
Experimente o módulo Views Access Callback .
fonte
Devo estar faltando alguma coisa, mas parece que você criaria uma nova função e adicionaria esses usuários. Em seguida, use o recurso Acesso às exibições: função.
Se você precisar vincular os direitos de acesso a algo no conteúdo, eu usaria um acesso personalizado ao Views, que achei difícil configurar na primeira vez, mas aprecio a flexibilidade depois de trabalhar. Se a tela estiver gerando o item de menu, ela não aparecerá se a tela não passar na função de acesso.
Se você está apenas ocultando um item de menu, parece-me que a exibição ainda será executada e um Usuário poderá ajustar um URI para exibir os dados.
Jerry
fonte
Que tal usar o módulo Permissões Personalizadas para criar algumas novas permissões especificamente para seu objetivo e usar o módulo Permissões do Usuário para atribuir essas novas permissões a usuários individuais?
O módulo de permissões personalizadas é muito leve. No entanto, não tenho tanta certeza sobre o módulo de permissões de usuário, pois ele cria uma nova função para cada usuário nos bastidores (essas funções não são visíveis na página principal de permissões). Se você tem muitos usuários, isso pode aumentar um pouco o tamanho das suas funções e das tabelas user_roles.
fonte
Certo, isso faz mais sentido. Eu acho que você poderia (possivelmente, não 100% de certeza) usar uma View e um argumento. Defina o argumento como um ID de usuário obtido do usuário conectado no momento e faça com que o argumento padrão não exiba nada. Isso deve ser capaz, embora eu não saiba o quão seguro seria ser justo. Se você tentar, poste de volta e deixe-me saber seu progresso.
fonte
Se você deseja combinar plug-ins de acesso diferentes no Views, consulte o módulo Access access many .
fonte