Exemple #1
0
 public function process(Tracker_IDisplayTrackerLayout $layout, Codendi_Request $request, PFUser $current_user)
 {
     $transition = $request->get('transition');
     //TODO check that the transition belongs to the current tracker
     // Permissions
     $ugroups = $request->get('ugroups');
     permission_clear_all($this->tracker->group_id, 'PLUGIN_TRACKER_WORKFLOW_TRANSITION', $transition, false);
     if ($this->transition_factory->addPermissions($ugroups, $transition)) {
         $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('workflow_admin', 'permissions_updated'));
     } else {
         $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('workflow_admin', 'permissions_not_updated'));
     }
     //Conditions
     $condition_manager = new Transition_ConditionManager();
     $condition_manager->process($this->transition_factory->getTransition($transition), $request, $current_user);
     // Post actions
     $tpam = new Transition_PostActionManager();
     $tpam->process($this->transition_factory->getTransition($transition), $request, $current_user);
     $GLOBALS['Response']->redirect(TRACKER_BASE_URL . '/?' . http_build_query(array('tracker' => (int) $this->tracker->id, 'func' => Workflow::FUNC_ADMIN_TRANSITIONS, 'edit_transition' => $request->get('transition'))));
 }