[Zope] Folderish object -API

Petr Knapek knapek@knapek.pvt.net
06 Nov 2000 13:46:19 +0100


Hi Zopists,
I try to create ISNGFolder class which is subclassed from Zope Folder
class. During instantiation of this ISNGFolder class I also try to set
permissions ['View', 'Access contents information'] for role 'Content'
by calling manage_role('Content', ['View', 'Access contents
information']) function of this object. But some error occurs and I
don't know python API very well for folderish objects. Can somebody help
me, please??

I use Zope 2.1.6 on Linux Debian



Below you can see part of my python product for folderish object and
error output of Zope.


Begin of code:

manage_addISNGFolderForm=HTMLFile('addFolder', globals())

def manage_addISNGFolder(self, cz_id, title='', key_words=[], header='', footer='',
                         createPublic=0,
                         createUserF=0,
                         REQUEST=None):
    """Add a new 'ISNG Folder' object with id *id*."""
    
    author = repr(REQUEST.AUTHENTICATED_USER)
    id = cz_id2id(cz_id)
    ob=ISNGFolder()
    ob.id = id
    ob.cz_id = cz_id
    ob.title = title
    ob.creation = DateTime.DateTime(time.time())
    ob.author = author
    ob.modifier = author
    ob.key_words = key_words
    ob.header = header
    ob.footer = footer
    self._setObject(id, ob)
    ob.manage_role('Content', ['Access contents information', 'View'])
    if REQUEST is not None:    
        return MessageDialog(
            title = 'Add ISNGFolder',
            message = 'New ISNGFolder %s was added.' % ob.getProperty('cz_id'),
            action = './addFolder'
            )



class ISNGFolder(Folder):
    """ISNGFolder class.

    Is created by inheritance from Folder Zope object."""


    meta_type = 'ISNG Folder'

    __ac_permissions__ = (
        ('View', ('manage_infoISNGForm',)),
        )

    _properties = (
        {'id':'title', 'type':'string', 'mode':'w'},
        {'id':'cz_id', 'type':'string', 'mode':'w'},
        {'id':'author', 'type':'string', 'mode':'w'},
        {'id':'modifier', 'type':'string', 'mode':'w'},
        {'id':'key_words', 'type':'lines', 'mode':'w'},
        {'id':'header', 'type':'text', 'mode':'w'},
        {'id':'footer', 'type':'text', 'mode':'w'}
        )

    _ManageOptions = (
        {'label':'Edit ISNG', 'action':'manage_editISNGForm'},
        {'label':'Info ISNG', 'action':'manage_infoISNGForm'},
        {'label':'Header ISNG', 'action':'manage_editHeaderISNGForm'},
        {'label':'Footer ISNG', 'action':'manage_editFooterISNGForm'},
        {'label':'Permissions ISNG', 'action':'manage_permissionsFrameISNGForm'},
        )



Error output of Zope:


          Zope Error

          Zope has encountered an error while publishing this resource. 

          Error Type: AttributeError
          Error Value: aq_acquire



          Troubleshooting Suggestions

              The URL may be incorrect. 
              The parameters passed to this resource may be incorrect. 
              A resource that this resource relies on may be encountering an error. 

          For more detailed information about the error, please refer to the HTML source for this page. 

          If the error persists please contact the site maintainer. Thank you for your patience. 




Traceback (innermost last):
  File /usr/local/www/Zope-2.1.6/lib/python/ZPublisher/Publish.py, line 214, in publish_module
  File /usr/local/www/Zope-2.1.6/lib/python/ZPublisher/Publish.py, line 179, in publish
  File /usr/local/www/Zope-2.1.6/lib/python/Zope/__init__.py, line 202, in zpublisher_exception_hook
  File /usr/local/www/Zope-2.1.6/lib/python/ZPublisher/Publish.py, line 165, in publish
  File /usr/local/www/Zope-2.1.6/lib/python/ZPublisher/mapply.py, line 160, in mapply
    (Object: manage_addISNGFolder)
  File /usr/local/www/Zope-2.1.6/lib/python/ZPublisher/Publish.py, line 102, in call_object
    (Object: manage_addISNGFolder)
  File /usr/local/www/Zope-2.1.6/lib/python/Products/ISNG/ISNG.py, line 810, in manage_addISNGFolder
  File /usr/local/www/Zope-2.1.6/lib/python/AccessControl/Role.py, line 179, in manage_role
    (Object: ElementWithAttributes)
  File /usr/local/www/Zope-2.1.6/lib/python/AccessControl/Role.py, line 137, in ac_inherited_permissions
    (Object: ElementWithAttributes)
  File /usr/local/www/Zope-2.1.6/lib/python/OFS/ObjectManager.py, line 173, in _subobject_permissions
    (Object: ElementWithAttributes)
AttributeError: (see above)

-- 
Petr Knápek
NEXTRA Czech Republic, s.r.o., Hlinky 114, 603 00 Brno, Czech Republic
e-mail: mailto:petr.knapek@nextra.cz
tel:+420-5-43 554 150
FAX:+420-5-43 554 214

"Perl is worse than Python because people wanted it worse."
Larry Wall, 14 Oct 1998