Source of file AdvancedWorkflowActionController.php
Size: 1,644 Bytes - Last Modified: 2021-12-23T10:11:37+00:00
/var/www/docs.ssmods.com/process/src/code/controllers/AdvancedWorkflowActionController.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | <?php use SilverStripe\ORM\DataObject; use SilverStripe\Security\Member; use SilverStripe\Security\Security; /** * Handles actions triggered from external sources, eg emails or web frontend * * @author marcus@silverstripe.com.au * @license BSD License http://silverstripe.org/bsd-license/ */ class AdvancedWorkflowActionController extends Controller { public function transition($request) { if (!Member::currentUserID()) { return Security::permissionFailure($this, _t( 'AdvancedWorkflowActionController.ACTION_ERROR', "You must be logged in" ) ); } $id = $this->request->requestVar('id'); $transition = $this->request->requestVar('transition'); $instance = DataObject::get_by_id('WorkflowInstance', (int) $id); if ($instance && $instance->canEdit()) { $transition = DataObject::get_by_id('WorkflowTransition', (int) $transition); if ($transition) { if ($this->request->requestVar('comments')) { $action = $instance->CurrentAction(); $action->Comment = $this->request->requestVar('comments'); $action->write(); } singleton('WorkflowService')->executeTransition($instance->getTarget(), $transition->ID); $result = array( 'success' => true, 'link' => $instance->getTarget()->AbsoluteLink() ); if (Director::is_ajax()) { return Convert::raw2json($result); } else { return $this->redirect($instance->getTarget()->Link()); } } } if (Director::is_ajax()) { $result = array( 'success' => false, ); return Convert::raw2json($result); } else { $this->redirect($instance->getTarget()->Link()); } } } |