Grav-plugin-admin: Permissões para alterar e excluir páginas

Criado em 21 abr. 2016  ·  16Comentários  ·  Fonte: getgrav/grav-plugin-admin

Seria excelente se pudéssemos bloquear algumas páginas para que os usuários pudessem editar apenas páginas específicas, não todo o site. Talvez algo em cima de grupos de usuários?

Por exemplo, pode haver permissões padrão, talvez em user/config/admin/admin.yaml (ou talvez faça mais sentido em blueprints, o que permite definir essa configuração dependendo do modelo):

# Only admins can delete pages
permissions:
  pages:
    write: [admin, editor]
    delete: [admin]

E a configuração YAML em cada página pode substituir essas configurações padrão:

---
title: Awesome page
permissions:
  write: [admin] # Limit changes to the admin group in the admin plugin
  delete: [] # Protect this page from deletion from the admin plugin

---

Casos de uso para bloquear uma página

  • Se a estrutura do seu site se baseia em algumas páginas de "contêiner" (blog, seção1, seção2…) e você deseja evitar exclusões descuidadas de _todo o conteúdo_ de uma seção bloqueando as páginas de nível 1.
  • Se você deseja proteger a página de erro ou outras páginas "técnicas".
  • Um site de comunicação empresarial onde um editor ou grupo de editores deve ser capaz de criar novas postagens de blog, talvez modificar a página raiz do "blog", mas NÃO excluí-la, e não deve poder modificar (muito menos excluir) outras páginas em outras seções (ou a página inicial).

    Tipos de permissão

Acho que uma implementação simples pode ser limitada a 2 permissões:

  • escrever
  • excluir

Excluindo esses outros tipos de permissão comuns (menos úteis ou mais difíceis de gerenciar):

  • leia (a necessidade de ocultar conteúdo para usuários administradores parece baixa)
  • propriedade da página (gravar/excluir suas páginas "próprias") -> adiciona um grande nível de complexidade
  • addchild (controlando se um grupo de usuários pode adicionar uma página filha dentro de uma página) -> adiciona alguma complexidade também
1.10 enhancement fixed in repo

Comentários muito úteis

Algumas boas ideias aqui. Na verdade, eu já tinha uma nota com algumas ideias sobre como melhorar as permissões. Vou me certificar de que este bilhete também seja levado em consideração. Obrigado!

Todos 16 comentários

Algumas boas ideias aqui. Na verdade, eu já tinha uma nota com algumas ideias sobre como melhorar as permissões. Vou me certificar de que este bilhete também seja levado em consideração. Obrigado!

@rhukster Ei, só queria saber se há algum progresso nesse tópico que eu perdi?

Para um projeto específico, preciso de permissões de edição baseadas em grupo para determinadas páginas ou páginas de uma pasta. É o único requisito que poderia nos impedir de usar o Grav 😞

Seria muito útil, se você pudesse apontar na direção certa, pesquisando isso.
Muito obrigado antecipadamente por sua ajuda.

Recurso mais procurado!

ressalto

Tenho alunos que querem trabalhar no site da nossa escola. No momento eles estão apenas me passando as informações para postar no blog; seria útil poder dar-lhes acesso a páginas específicas para que eu não tenha que me preocupar com um aluno acidentalmente ou propositalmente editando a primeira página ou qualquer outra coisa importante.

Obrigado - espero que o progresso esteja sendo feito neste recurso!!

Quando podemos aspectar esse recurso. Espero que seja na próxima versão. :-))

@brianjschott Você pode fazer o checkout do Editable with SimpleMDE Plugin e testar se ele atende ou não ao seu propósito. A versão mais recente oferece suporte a permissões baseadas em página usando o sistema Grav de usuários e funções. Assim, você também pode criar grupos. A edição é limitada a páginas e apenas no frontend.

Eu tenho que dar acesso editorial a usuários não técnicos, isso definitivamente me ajudaria a dormir à noite! :+1:

Algum progresso nisso? Recurso mais procurado.

Atualmente estou trabalhando no suporte a Flex Pages e já tenho permissões para excluir páginas (embora agora sem suporte ao proprietário).

Algumas boas ideias aqui. Na verdade, eu já tinha uma nota com algumas ideias sobre como melhorar as permissões. Vou me certificar de que este bilhete também seja levado em consideração. Obrigado!

@rhukster mais de 3 anos se passaram desde o seu comentário. Alguns dos meus clientes realmente querem esse recurso, mas nós, como desenvolvedores amantes do Grav, ainda não temos informações sobre isso.

@mahagr O que são as Páginas Flex? É sobre CSS flexbox ou algo diferente? Por favor, dê mais informações 😉

Flex Pages são baseadas em Grav Flex Objects, que é apenas um nome legal para as classes (você pode encontrá-las em Grav\Framework\Flex . :)

Resumindo, o Flex Objects substituirá o plugin Flex Directory; as classes principais estão no próprio Grav, mas para o CRUD você precisará do plug-in Flex Objects, que fornecerá visualizações de listagem e edição que funcionarão tanto no administrador quanto no frontend Embora dito isso, não tenho certeza se ele será enviado com o funcionamento edição de frontend ou se você precisar fazer algumas classes/roteamentos personalizados para que funcione. De qualquer forma, este plugin é necessário apenas para tarefas administrativas, o próprio Flex roda sem ele.

Flex Pages na implementação das atuais Grav Pages, mas com base nessas novas classes Flex. O uso do Flex tem alguns benefícios em relação à solução antiga:

  • mantém um índice de todos os objetos e sabe quais objetos foram atualizados e quando
  • por causa do índice, os objetos estão sendo carregados apenas sob demanda
  • tem cache embutido para pesquisas de coleção, chamadas de método e até renderização
  • o cache é baseado em objeto, portanto, atualizar um único item não invalida o cache dos outros
  • as coleções são muito mais poderosas do que as páginas antigas; você pode pesquisar quase tudo
  • FlexPage é independente e muito mais fácil de usar do que Page
  • Flex permite que você personalize facilmente as páginas para suas necessidades
  • Ele permite que você crie sua própria seção de administração, por exemplo, para postagens de blog - separadas das outras páginas
  • ...

Existem ainda mais benefícios, mas já os usamos em alguns de nossos projetos e todos estão muito animados com isso. Obtemos facilmente um desempenho 10 vezes melhor em um site de 4.000 páginas. Podemos criar tipos personalizados, até mesmo páginas que são armazenadas separadamente das páginas normais e estão em uma seção separada dentro do admin. Os usuários podem criar suas próprias páginas preenchendo formulários simples etc...

Muito obrigado por compartilhar esta informação @mahagr 👍 De tudo o que você menciona (tudo parece ótimo!), coleções de páginas mais avançadas, personalização de página e seção Admin separada para diferentes tipos de página são de maior interesse para mim. Por favor, adicione meu voto para permissões de página mais finas, isso seria super valioso em cenários educacionais com o Grav!

Seguindo esta postagem. Preciso muito disso agora.

60153027-8420fb80-9815-11e9-831b-7a32f4f48f7b

Eu realmente apreciaria esta função também. Relacionado a este problema de aprimoramento aberto .

Isso já foi implementado no Grav 1.7 / Admin 1.10

Esta página foi útil?
0 / 5 - 0 avaliações