Preface: I'm tryng to access an object via a browser view, the object normally is not accessible by the user.

What I did:

abstracts = self.portal_catalog.unrestrictedSearchResults(sessions=self.this_session)
        results = []
        for abs in abstracts:
         obj = self.context.unrestrictedTraverse(abs.getPath())
abs_data = {'title': abs.Title, 'abstract': obj.getAbstract(), 'autori': obj.autori_view(), 'url':obj.absolute_url(), 'posteroral': obj.getAbstract_type()}

this works.

What about the workflow status?

status_info = wftool.getStatusOf("rivista_elettronica_publication_workflow", obj)
         status_id = status_info['review_state'] <- error
status_title = wftool.getTitleForStateOnType(status_info['review_state'],'EEPArticleNG')
         abs_data['status'] = {'id': status_id, 'title': status_title}
         results.append(abs_data)

this does not work because th object seems not to be wrapped correctly (I think, I don't understand what this means exactly).

What I did (luckly, it is a custom content type) was to create a getme() call in my content type, which returns self.

so:

status_info = wftool.getStatusOf("rivista_elettronica_publication_workflow", obj.getme()) <- return myself really!
         status_id = status_info['review_state']

and this works!

So, the question is, why obj = self.context.unrestrictedTraverse(abs.getPath()) (abs is the brain) don't return the obejct in a "good" way, so the workflow tool can handle it? What is the right way to do pass the object to getStatusOf?

P.S: abs.getObject() does not to work because the user does not have access to that object (even if I'm on a browser view):

  Module Products.ZCatalog.CatalogBrains, line 86, in getObject
  Module OFS.Traversable, line 301, in restrictedTraverse
  Module OFS.Traversable, line 232, in unrestrictedTraverse
   - __traceback_info__: ([], 'lxyzw')
Unauthorized: You are not allowed to access 'lxyzw' in this context

_______________________________________________
Product-Developers mailing list
[email protected]
https://lists.plone.org/mailman/listinfo/plone-product-developers

Reply via email to