Pergunta

Estou executando o Plone 3.2.3 e instalei Humainemailman para que os usuários do site possam se inscrever e cancelar a inscrição de nossas várias listas de mala direta. Humainemailman funciona muito simples. Existe um URL/ação especial que fornece uma lista de texto simples de todos os endereços de e-mail que são inscritos em uma lista. Por exemplo:

http://www.example.org/mailman_autolist_update?list=mylist@example.org&password=secret

Você deveria simplesmente acertar esse URL e alimentar a lista de texto sem formatação nos sync_members do Mailman. Fácil.

O problema é que Plone não me permite acessar esse URL anonimamente. Quando estou conectado como administrador, posso acessar o URL no meu navegador e ver a lista de endereços de e-mail. Mas quando não estou conectado (e ao recuperar esse URL usando o WGE), o Plone me redireciona para a página de login.

Como digo a Plone que quero permitir acesso anônimo a esse URL/ação? A ação em si (em código) é definida em produtos/humainemailman/skins/mailman_autolist_update.py.

Desde já, obrigado!

Foi útil?

Solução 3

Humainemailman precisa gerenciar permissões portal. Esses são demais para dar ao anônimo, então a resposta dos lennarts não resolveu isso para mim. Em vez disso, editei Humainemailman e redeclarei as respectivas chamadas de função como públicas. Este é um pequeno risco de segurança. Meu Plone está por trás de um proxy do Apache, por isso compensei apenas o acesso à lista de membros da localhost (onde o script de sincronização do WGA e o próprio Mailman também estão em execução).

Outras dicas

Existem algumas maneiras de abordar isso sem a segurança do Apache ou Redeclaring (o que me deixaria nervoso também)

http://www.example.org:8080/mailman_autolist_update?list=mylist@example.org&password=secret&__ac_name=**USERNAME**&__ac_password=**PASSWORD**&pwd_empty=0&cookies_enabled=1&js_enabled=0&form.submitted=1"

Frequentemente, uso esse truque em scripts com um usuário especial apenas "serviços". Há também um truque de autenticação http que se parece com http: // ** nome de usuário: massword@**www.example.org/mailman_autolist_update? List=mylist@example.org&password=secret que pode ou não ser suportado dependendo do seu cliente lib.

Como alternativa, se esse código estiver em execução em um python (script), você poderá adicionar um arquivo de metadados (myscript.py.metadados) e dê a esse script uma permissão de proxy do gerente.ie

[default]
title = Do something useful in the c/py that requires elevated privs
proxy = Manager

Descubra qual a permissão é proteger essa página e dar essa permissão para o papel anônimo na raiz do plano.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top