Re: Rechteproblem im workflow nach doActionFor
Nicolas Höning <[email protected]>
| Newsgroups | gmane.comp.web.zope.german |
|---|---|
| Message-ID | <[email protected]> |
2009/2/16 Nicolas Höning <[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 > Hallo Ich hab beim vereinfachen des Codesnippets etwas übersehen: "ufolder" sollte überall "afolder" heissen. Ausserdem habe ich noch Zusatzinfo vergessen: Ich benutze Zope 2.10 und Plone 3.2. Sorry, -Nicolas _______________________________________________ zope mailing list [email protected] https://mail.dzug.org/mailman/listinfo/zope