2013-08-22 24 views
1

我有一個控制器頁面模板和一個處理動作的控制器Python腳本。能夠通過網絡添加這個表單和動作腳本真是太好了,所以我不必每次修改和重新啓動Plone實例就可以對代碼進行細微的更改。問題是我的python腳本應該以數組的形式構建一個內容對象列表,然後通過發送JSON數組作爲發送到遠程服務器的REQUEST主體來與另一個服務器共享這些對象。我有我的數組叫arrayOfObjects應該看起來像「[{'param1':val1,'param2':val2},{'param1':val3,'param2':val4}]」。如何允許通過Web控制器Python腳本導入受限制的模塊? Plone4

import json 

...other stuff... 

sJSON = json.dumps(arrayOfObjects) 

上面的代碼將在一個標準的Python解釋工作,但Plone的限制對於在ZMI管理直通網Python腳本中使用許多模塊。這是一個很好的安全功能,但是我希望繼續通過網絡開發腳本,並在完成所有工作後將其轉移到附加產品中的文件系統存儲中。我聽說AccessControl軟件包的allow_module功能應該啓用導入,但聽起來好像您仍然可能需要在文件系統中生效。是否有任何方法可以通過Web腳本編輯Python腳本和JSON模塊,這對我正在構建的功能至關重要?提前感謝任何信息!

PS-的權限不足屏幕是我所看到的,當我導入json模塊(預期的行爲,而不是錯誤的)

回答

4

某處,在常規的Python代碼,添加以下內容:

from AccessControl import allow_module 
allow_module('json') 

到將模塊列入白名單。是的,出於明顯的安全原因,此將從基於文件系統的Python運行。

+0

我在__init__.py文件中將代碼添加到附加產品包的頂部,並且它的工作方式類似於魅力。最終我也會將腳本移到產品包中。這很有幫助:D – user1075722

相關問題