Example #1
0
 /**
  * @throws ProjectIDMissingException
  * @throws ProjectSecurityAccessDeniedException
  */
 public static function move()
 {
     global $project_security, $user;
     if ($_GET['project_id']) {
         $project = new Project($_GET['project_id']);
         if ($user->get_user_id() == $project->get_owner_id() or $project_security->is_access(7, false) == true) {
             if ($_GET['nextpage'] == 1) {
                 if (is_numeric($_POST['type'])) {
                     $page_1_passed = true;
                 } else {
                     $page_1_passed = false;
                     $error = "You must make a selection.";
                 }
             } elseif ($_GET['nextpage'] > 1) {
                 $page_1_passed = true;
             } else {
                 $page_1_passed = false;
                 $error = "";
             }
             if ($page_1_passed == false) {
                 $template = new HTMLTemplate("project/admin/move_page_1.html");
                 $paramquery = $_GET;
                 $paramquery['nextpage'] = "1";
                 $params = http_build_query($paramquery, '', '&');
                 $template->set_var("params", $params);
                 $template->set_var("error", $error);
                 $template->output();
             } else {
                 if ($_POST['type'] == 1) {
                     if ($_GET['nextpage'] == 2) {
                         if (is_numeric($_POST['ou'])) {
                             $page_2_passed = true;
                         } else {
                             $page_2_passed = false;
                             $error = "You must select an organisation unit.";
                         }
                     } elseif ($_GET['nextpage'] > 3) {
                         $page_2_passed = true;
                     } else {
                         $page_2_passed = false;
                         $error = "";
                     }
                     if ($page_2_passed == false) {
                         $template = new HTMLTemplate("project/admin/move_page_2_ou.html");
                         $paramquery = $_GET;
                         $paramquery['nextpage'] = "2";
                         $params = http_build_query($paramquery, '', '&');
                         $template->set_var("params", $params);
                         $template->set_var("error", $error);
                         $organisation_unit_array = OrganisationUnit::list_entries();
                         $result = array();
                         $counter = 0;
                         foreach ($organisation_unit_array as $key => $value) {
                             $organisation_unit = new OrganisationUnit($value);
                             $result[$counter]['value'] = $value;
                             $result[$counter]['content'] = $organisation_unit->get_name();
                             $counter++;
                         }
                         $template->set_var("option", $result);
                         $template->set_var("type", $_POST['type']);
                         $template->output();
                     } else {
                         $project = new Project($_GET['project_id']);
                         $paramquery = $_GET;
                         unset($paramquery['nextpage']);
                         $paramquery['run'] = "admin";
                         $params = http_build_query($paramquery);
                         if ($project->move_to_organisation_unit($_POST['ou'])) {
                             Common_IO::step_proceed($params, "Move Project", "Operation Successful", null);
                         } else {
                             Common_IO::step_proceed($params, "Move Project", "Operation Failed", null);
                         }
                     }
                 } else {
                     if ($_GET['nextpage'] == 2) {
                         if (is_numeric($_POST['project'])) {
                             $page_2_passed = true;
                         } else {
                             $page_2_passed = false;
                             $error = "You must select a project.";
                         }
                     } elseif ($_GET['nextpage'] > 3) {
                         $page_2_passed = true;
                     } else {
                         $page_2_passed = false;
                         $error = "";
                     }
                     if ($page_2_passed == false) {
                         $template = new HTMLTemplate("project/admin/move_page_2_project.html");
                         $paramquery = $_GET;
                         $paramquery['nextpage'] = "2";
                         $params = http_build_query($paramquery, '', '&');
                         $template->set_var("params", $params);
                         $template->set_var("error", $error);
                         $result = array();
                         $counter = 0;
                         $project = new Project(null);
                         $project_array = $project->get_project_tree();
                         foreach ($project_array as $key => $value) {
                             $project = new Project($value['id']);
                             for ($i = 1; $i <= $value['layer']; $i++) {
                                 $pre_content .= "&nbsp;";
                             }
                             $result[$counter]['value'] = $value['id'];
                             $result[$counter]['content'] = $pre_content . "" . $project->get_name();
                             $counter++;
                             unset($pre_content);
                         }
                         if (!$result) {
                             $result[$counter]['value'] = "0";
                             $result[$counter]['content'] = "NO PROJECT FOUND!";
                         }
                         $template->set_var("option", $result);
                         $template->set_var("type", $_POST['type']);
                         $template->output();
                     } else {
                         $project = new Project($_GET['project_id']);
                         $paramquery = $_GET;
                         unset($paramquery['nextpage']);
                         $paramquery['run'] = "admin";
                         $params = http_build_query($paramquery);
                         if ($project->move_to_project($_POST['project'])) {
                             Common_IO::step_proceed($params, "Move Project", "Operation Successful", null);
                         } else {
                             Common_IO::step_proceed($params, "Move Project", "Operation Failed", null);
                         }
                     }
                 }
             }
         } else {
             throw new ProjectSecurityAccessDeniedException();
         }
     } else {
         throw new ProjectIDMissingException();
     }
 }