Il 16/11/2011 17.44, Fabrizio Reale ha scritto:
Ciao Giacomo,


Guarda il sorgente dell'oggetto Python Script, dovrebbe trovarsi facilmente 
l'elenco delle classi autorizzate.

A presto,
Fabrizio
ok, per il momento, seguendo la strada da te indicata, sono arrivato ad una soluzione (forse non perfetta). Ho scoperto che esiste una funzione allow_class() per aggiungere una classe a quelle permesse.

l'external method che richiamo adesso aggiunge MyClass alle classi permesse nei PythonScript, prima di restituirne una istanza ed è così definito:

def getMyClass():
        from AccessControl import allow_class
        allow_class(getMyClass)
        return getMyClass()


...e nel mio PythonScript, posso mettere istruzioni come queste:
istanza1 = getInstanceOfMyClass()
istanza1.faiQualcosa() <--- questa istruzione non causa piu' un errore di sicurezza



DOMANDA: SE allow_class(getMyClass) viene richiamato piu' di una volta, ci sono controindicazioni? (liste immense di classi permesse, rallentamenti, memoria occupata che cresce ad ogni chiamata...)


Giacomo


Nota:
Ho verificato che una volta eseguito allow_class(), non sarebbe necessario richiamarlo piu' fino al successivo riavvio del server. (insomma, come è logico, una volta aggiunto non serve aggiungerlo di nuovo... ma non mi sembra esista una funzione isAllowed(nome_classe) per verificare la cosa.


_______________________________________________
Plone-IT mailing list
[email protected]
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html

Rispondere a