2013-01-18 59 views
1

你知道,你開始創建一個名爲something.good分佈,它定義了一個permissions.zcml的東西,如:如何幹淨地刪除Plone自定義權限?

<configure xmlns="http://namespaces.zope.org/zope"> 

    <permission 
    id="something.good.reset" 
    title="something.good: reset entries" 
    /> 

</configure> 

不過,一旦分佈安裝在服務器上,你就會意識到,權限並不好足夠並且必須被完全重構爲something.else

plone_quickinstaller上卸載something.good不會刪除權限。去ZMI內的任何安全標籤,你仍然可以看到它。

我環顧四周尋找文檔,瀏覽代碼AccessControlProducts.GenericSetup但找不到任何東西。

有關如何刪除它的任何想法?

回答

1

好的,所以Plone很容易,別介意別人會告訴你什麼。

所以,你(實際上我)想要刪除權限定義? 只要做到這一點!

這樣的事情的清單來檢查正常刪除的權限是:

  • permissions.zcml
    • 刪除的權限,如果沒有權限離開刪除任何引用該文件(也許你的configure.zcml
  • 去除profiles/default/rolemap.xml
  • 的權限的所有引用
  • 掃描所有configure.zcml或Python文件(如果使用神交樣的權限)來引用該權限

就是這樣!

重新啓動實例後,該權限將不再顯示在ZMI的安全選項卡上。

似乎權限是在啓動時即時創建的嗎?對我來說似乎如此。儘管證明我錯了!

+1

你是對的;請注意*權限的賦值*存儲在ZODB中(持久化)。再次向Zope添加權限,神奇的權限分配會重新出現。 –

+0

感謝馬丁的筆記。任何代碼指針如何也清理這個? – gforcada

+0

你的意思是刪除持續的assigment信息? –