Domanda

Sono in esecuzione Plone 3.2.3 e ho installato HumaineMailman in modo che il gli utenti del sito possono iscriversi e si sono rimosso dalle nostre varie mailing list. HumaineMailman funziona molto semplice. C'è uno speciale URL / azione che fornisce una lista di testo di tutti gli indirizzi di posta elettronica che vengono sottoscritte in un elenco. Ad esempio:

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

Si suppone che wget semplicemente che URL e alimentare la lista di testo normale nel sync_members di Mailman. Facile.

Il problema è che Plone non mi permette di accedere a quella URL anonimo. Quando sono entrato come amministratore posso accedere all'URL nel mio browser e vedere l'elenco degli indirizzi di posta elettronica. Ma quando non sto collegato (e durante il recupero che URL utilizzando wget) poi Plone mi reindirizza alla pagina di accesso.

Come faccio a dire di Plone che voglio consentire l'accesso anonimo a tale URL / azione? L'azione in sé (in codice) è definito in Prodotti / HumaineMailman / pelli / mailman_autolist_update.py.

Grazie in anticipo!

È stato utile?

Soluzione 3

HumaineMailman ha bisogno di autorizzazioni ManagePortal. Quelli sono troppo da dare al anonimi, in modo Lennarts risposta non ha risolto per me. Invece, ho modificato HumaineMailman e ridichiarato rispettive chiamate di funzione come pubblico. Questo è un lieve rischio per la sicurezza però. Il mio Plone è dietro un proxy Apache così ho compensato da consentire solo l'accesso al utenti da localhost (in cui lo script di sincronizzazione wget e postino si sono in esecuzione pure).

Altri suggerimenti

Ci sono un paio di modi per affrontare questo senza sicurezza apache o redeclaring (che renderebbe nervoso troppo)

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"

Mi capita spesso di usare questo trucco negli script con un utente speciale solo fa "servizi". C'è anche un HTTP Auth trucco che assomiglia a http: // ** NOME UTENTE:? PASSWORD@**www.example.org/mailman_autolist_update list=mylist@example.org&password=secret che può o non può essere supportato a seconda del client lib.

In alternativa, se il codice è in esecuzione in un (copione) Python poi si può aggiungere un file di metadati (myScript.py. metadati ) e dare lo script di un permesso di delega Manager.ie

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

Capire ciò che sta proteggendo il permesso quella pagina, e dare il permesso che al ruolo anonimo nella radice di Plone.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top