Rechteproblem im workflow nach doActionFor

Nicolas Höning <[email protected]>
Newsgroups gmane.comp.web.zope.german
Message-ID <[email protected]>
Hallo

Ich hoffe, ich schaffe es, mein Problem verständlich zu machen:

Kurzzusammenfassung meines Problems:
In einem IActionSucceededEvent-adapter, setze ich den workflow
automatisch, per code, einen Schritt weiter. Wenn dieser automatisch
generierte state-change verarbeitet wird, tritt ein Rechtefehler auf
(anders, als wenn der Workflow "klassisch", per-klick durchgezogen
wird)


Lange Zusammenfassung:
Mein ATFolder-Typ namens ContentFolderA hat die workflow-states
initial, conf und processed.

Wenn der User ein TypA-Objekt aus initial nach conf klickt, sieht er
nur den conf - view, wenn er ein Häkchen gesetzt hat. Ansonsten wird
mein Code die Default-Konfiguration vornehmen und das Objekt
automatisch prozessieren (der gesamte workflow ist dann also für den
user nur ein Schritt).

Zur Konfiguration gehört es, Objekte vom TypB and das TypA-Objekt zu hängen.
Wenn ich prozessiere, schneide ich sie aus (und füge sie woanders ein,
aber das ist nicht mehr wichtig hier). Letzteres wird mir verboten,
wenn der Code den workflow automatisch weitersetzt.

Hier ist relevanter Code:

@adapter(IContentFolderA, IActionSucceededEvent)
 def afolder_state_changed(afolder, event):
     wft = getToolByName(afolder, 'portal_workflow')
     if event.action == 'configure':
                     bid = ufolder.generateUniqueId(type_name='ContentTypB')
                     bid = ufolder.invokeFactory(id=bid,
type_name='ContentTypB')
                     b = getattr(ufolder, bid)
             if not afolder.REQUEST.has_key('custom_conf'):
                 # skip custom conf
                 wft.doActionFor(afolder, 'process', wf_id="my_workflow")
     if event.action == 'process':
         for bid in mybs:
             cb_cut_data = afolder.manage_cutObjects([bid])


Die letzte Zeile schlägt fehl, wenn "custom_conf" nicht gewünscht
wurde, also wenn wft.doActionFor im code ausgeführt wird. Sie
funktioniert, wenn der user "custom conf" wünscht, also im conf -
status bleibt und da auf "Process" klickt (also die URL
?ontent_status_modify?workflow_action=process besucht).

Die Fehlermeldung:

(...)
  Module OFS.CopySupport, line 105, in manage_cutObjects
Copy Error:
<HTML>
(...)
  <CENTER>
  The action against the <em>ContentTypB.2009-02-16.9419663933</em>
object could not be carried out. One of the following constraints
caused the problem: <br><br>The object does not support this
operation.<br><br>-- OR --<br><br>The currently logged-in user does
not have the <b>Copy or Move</b> permission respective to the object.


Ich habe schon debuggt, dass ich durchaus der Besitzer des Folders
bin, wenn der Code fehlschlägt, also tue ich mich mit der
Interpretation des Fehlers recht schwer.

Was könnte ich tun, um dem Problem näher zu kommen?

Vielen Dank,

-Nicolas


_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.