Configuramos um site no Drupal 7 no qual gostaríamos que certos usuários tivessem acesso à página de gerenciamento de usuários e pudéssemos criar novos usuários, atribuir funções etc., mas não queremos dar a eles acesso ao Páginas Funções e Permissões.
Atualmente, o Drupal possui apenas 2 permissões Administer Permissions
e Administer users
.
Com a Administer users
permissão, o usuário tem acesso à página Gerenciamento de usuários e pode criar novos usuários, mas não pode atribuir funções aos usuários.
Se o usuário tiver a Administer permissions
permissão, ele poderá atribuir funções aos usuários e também acessar as páginas de permissão e gerenciamento de funções.
Como você concederia a um usuário o direito de atribuir funções a ele, mas impediria que ele acessasse a página de permissão?
Hummm ... Interessante que não parece haver uma maneira clara de fazer isso. Parece que isso pode ser um recurso comum para as pessoas. Encontrei algumas soluções:
http://drupal.org/project/protect_permissions - No entanto, isso ainda não está pronto para uso em produção.
No entanto, acho que você pode conseguir o que deseja com: http://drupal.org/project/permissions_lock
Você também precisará de: http://drupal.org/project/user_permissions
O último parece fazer o oposto do que você quer, mas o primeiro parece fazer exatamente o que você quer. Eu não testei nenhum deles no meu site de desenvolvimento para garantir 100%, é o que funcionará para você. Se eu encontrar alguma outra coisa, atualizarei esta resposta.
fonte
A delegação de funções deixa uma brecha na segurança. Você precisa atribuir às pessoas os usuários administrativos para que eles possam usar a página de administração e as ferramentas que ela possui.
Mas se você fizer isso, essa função poderá editar até superadmin. Verifique a permissão de Cuidado com o administrador do Drupal para obter uma descrição completa.
Minha solução é delegação de funções + este gancho
fonte
Ultimamente, estamos usando o módulo de transferência automática , que faz exatamente o que você está pedindo. É fundamentalmente idêntico ao módulo role_delegation, mas pode ser uma alternativa se você precisar de algo um pouco diferente.
Uma diferença importante é como você decide quais funções estão disponíveis para serem atribuídas. Com a roleassign, você apenas seleciona quais deseja disponibilizar e adiciona apenas uma nova permissão para atribuir essas funções:
O módulo role_delegation parece conceder uma nova permissão para cada função existente no site:
O módulo role_delegation também parece ter quase o triplo do número de instalações e uma versão "recomendada" do Drupal 8. A fila de problemas também parece estar em melhor forma, portanto é provavelmente a melhor opção?
fonte