2014-04-22 8 views
5

जोड़ने की अनुमति दें मेरे पास एक निपुणता-आधारित कंटेनर है जो एक निपुणता-आधारित आइटम के अंदर है। मुझे बेनामी उपयोगकर्ताओं को कंटेनर के अंदर इस प्रकार की वस्तुओं को जोड़ने की जरूरत है।बेनामी उपयोगकर्ताओं को निपुणता ऑब्जेक्ट्स

<?xml version="1.0"?> 
<rolemap> 
    <permissions> 
    <permission name="my.package: Add My Type" acquire="True"> 
     <role name="Anonymous"/> 
    </permission> 
    </permissions> 
</rolemap> 

मैं configure.zcml पर अनुमति की घोषणा की::

मैं पहले से ही निम्नलिखित के साथ एक rolemap.xml फ़ाइल बनाई

<permission 
    id="my.package.AddMyType" 
    title="my.package: Add My Type" 
    /> 

और अंत में मैं इस तरह दृश्य जोड़ने के लिए एक कस्टम कहा:

class MyAddView(dexterity.AddForm): 
    grok.name('MyType') 
    grok.require('my.package.AddMyType') 

फ़ॉर्म पहले से ही अज्ञात के लिए दिखा रहा है ers लेकिन, जब मैं सेव बटन दबाता हूं तो मुझे लॉगिन फॉर्म पर रीडायरेक्ट किया जाता है।

भी, उपयोगकर्ताओं में लॉग इन भी फॉर्म देखने में सक्षम हैं और ऐसा नहीं होना चाहिए।

मुझे और क्या करना है?

class MyAddView(dexterity.AddForm): 
    grok.name('MyType') 
    grok.require('my.package.AddMyType') 

    def update(self): 
     # check here if the user is anonymous and raise exception if not 
     super(AddView, self).update() 

    def add(self, object): 
     container = aq_inner(self.context) 
     addContentToContainer(container, object, checkConstraints=False) 
     self.immediate_view = container.absolute_url() 

यह बेहतर समझने के लिए, आप पर एक नज़र लेने के लिए चाहते हो सकता है: डेविड ग्लिक, जो मुझे निर्देशित करने के लिए

उत्तर

5

धन्यवाद, मैं एक बहुत ही सरल AddForm वर्ग के add विधि से जुड़े समाधान के साथ समाप्त हो गया original code in plone.dexterity

एक महत्वपूर्ण बात यह है कि आप यह भी ध्यान रखें कि हो सकता है कि आप शायद अपने कार्यप्रवाह अनुमतियाँ ठीक करने के लिए उनमें से कुछ से मालिक भूमिका को हटाने की जरूरत है, या आप सामग्री गुमनाम उपयोगकर्ताओं भी व्यक्ति संपादित के साथ समाप्त कर सकते हैं।

संबंधित मुद्दे