Dexterity tabanlı bir öğenin içinde yer alan Dexterity tabanlı bir kapsayıcım var. Anonim kullanıcıların bu türdeki nesneleri kapsayıcıya eklemelerine izin vermeliyim.Anonim kullanıcıların Dexterity nesnelerini eklemesine izin ver
<?xml version="1.0"?>
<rolemap>
<permissions>
<permission name="my.package: Add My Type" acquire="True">
<role name="Anonymous"/>
</permission>
</permissions>
</rolemap>
Ben configure.zcml
izni ilan:
rolemap.xml
dosyası oluşturduktan
<permission
id="my.package.AddMyType"
title="my.package: Add My Type"
/>
ve sonunda bunun gibi görünüm eklemek Özel bir ekledi:
class MyAddView(dexterity.AddForm):
grok.name('MyType')
grok.require('my.package.AddMyType')
form zaten bize anonim için gösteriliyor ers ancak kayıt düğmesine bastığımda giriş formuna yönlendirildim.
Ayrıca, giriş yapmış kullanıcılar da formu görebilir ve bunun gerçekleşmemesi gerekiyor.
Başka neler yapmalıyım?
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()
sen bakmak isteyebilirsiniz, daha iyi anlamak için: bana rehberlik David GIick'in için