Pregunta

Estoy ejecutando Plone 3.2.3 y he instalado Humainemailman para que los usuarios en el sitio web puedan suscribirse y darse de baja de nuestras diversas listas de correo. Humainemailman funciona muy simple. Hay una URL/acción especial que le brinda una lista de texto sin formato de todas las direcciones de correo electrónico que se suscriben en una lista. Por ejemplo:

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

Se supone que simplemente debes tener esa URL y alimentar la lista de texto sin formato en Sync_Members de Mailman. Fácil.

El problema es que Plone no me permite acceder a esa URL de forma anónima. Cuando estoy conectado como administrador, puedo acceder a la URL en mi navegador y ver la lista de direcciones de correo electrónico. Pero cuando no estoy conectado (y al recuperar esa URL usando wget), Plone me redirige a la página de inicio de sesión.

¿Cómo le digo a Plone que quiero permitir el acceso anónimo a esa URL/acción? La acción en sí (en código) se define en productos/humainemailman/skins/mailman_autolist_update.py.

¡Gracias por adelantado!

¿Fue útil?

Solución 3

Humainemailman necesita permisos gestionarios. Esos son demasiado para dar a Anónimo, por lo que la respuesta de Lennarts no me lo resolvió. En cambio, edité Humainemailman y redeclaré las llamadas de la función respectiva como públicas. Sin embargo, este es un ligero riesgo de seguridad. Mi plone está detrás de un proxy Apache, por lo que compensé solo permitiendo el acceso a la lista de miembros desde Localhost (donde el script de sincronización WGET y el propio Mailman también se están ejecutando).

Otros consejos

Hay un par de maneras de abordar esto sin Apache o Redeclaring Security (lo que también me pondría nervioso)

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"

Con frecuencia uso este truco en scripts con un usuario especial solo "servicios". También hay un truco de autenticación HTTP que se parece a http: // ** username: contraseña@**www.example.org/mailman_autolist_update? List=mylist@example.org&password=secret que puede o no ser compatible con su cliente dependiendo de su cliente su cliente. Lib.

Alternativamente, si ese código se está ejecutando en un Python (script), puede agregar un archivo de metadatos (myscript.py.metadatos) y darle a ese script un permiso proxy de gerente.ie

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

Averigüe qué permiso está protegiendo esa página y da ese permiso al papel anónimo en la raíz del plone.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top