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();
     }
 }
Example #2
0
 /**
  * @param string $get_array
  * @return string
  * @throws ProjectSecurityAccessDeniedException
  * @throws ProjectIDMissingException
  */
 public static function get_project_admin_menu($get_array)
 {
     global $user;
     if ($get_array) {
         $_GET = unserialize($get_array);
     }
     if ($_GET['project_id']) {
         $project = new Project($_GET['project_id']);
         $project_security = new ProjectSecurity($_GET['project_id']);
         $project_owner = new User($project->get_owner_id());
         $organisation_unit_id = $project->get_organisation_unit_id();
         $parent_project_id = $project->get_project_toid();
         if ($user->get_user_id() == $project->get_owner_id() or $project_security->is_access(2, false) == true or $project_security->is_access(3, false) == true or $project_security->is_access(4, false) == true or $project_security->is_access(5, false) == true or $project_security->is_access(6, false) == true or $project_security->is_access(7, false) == true) {
             if ($organisation_unit_id) {
                 $organisation_unit = new OrganisationUnit($organisation_unit_id);
                 $parent = $organisation_unit->get_name();
                 $parent_type = "Organisation Unit";
             } else {
                 $parent_project = new Project($parent_project_id);
                 $parent = $parent_project->get_name();
                 $parent_type = "Project";
             }
             $template = new HTMLTemplate("project/ajax/admin/menu.html");
             $template->set_var("name", $project->get_name());
             $template->set_var("owner", $project_owner->get_full_name(false));
             $template->set_var("parent", $parent);
             $template->set_var("parent_type", $parent_type);
             if ($user->is_admin()) {
                 $template->set_var("admin", true);
             } else {
                 $template->set_var("admin", false);
             }
             if ($project_security->is_access(7, false) == true or $project->get_owner_id() == $user->get_user_id()) {
                 $template->set_var("owner_permission", true);
             } else {
                 $template->set_var("owner_permission", false);
             }
             if ($project_security->is_access(6, false) == true) {
                 $template->set_var("delete", true);
             } else {
                 $template->set_var("delete", false);
             }
             if ($project_security->is_access(3, false) == true) {
                 $template->set_var("write", true);
             } else {
                 $template->set_var("write", false);
             }
             if ($project->get_current_status_id() == 0) {
                 $template->set_var("project_canceled", true);
             } else {
                 $template->set_var("project_canceled", false);
             }
             if ($project->get_deleted() == true) {
                 $template->set_var("project_deleted", true);
             } else {
                 $template->set_var("project_deleted", false);
             }
             if ($project->get_quota() == 0) {
                 $template->set_var("quota", "unlimited");
             } else {
                 $template->set_var("quota", Convert::convert_byte_1024($project->get_quota()));
             }
             $permission_paramquery = $_GET;
             $permission_paramquery['run'] = "admin_permission";
             unset($permission_paramquery['nextpage']);
             unset($permission_paramquery['sure']);
             $permission_params = http_build_query($permission_paramquery, '', '&#38;');
             $template->set_var("permission_params", $permission_params);
             $rename_paramquery = $_GET;
             $rename_paramquery['run'] = "admin_rename";
             unset($rename_paramquery['nextpage']);
             unset($rename_paramquery['sure']);
             $rename_params = http_build_query($rename_paramquery, '', '&#38;');
             $template->set_var("rename_params", $rename_params);
             $chown_paramquery = $_GET;
             $chown_paramquery['run'] = "admin_chown";
             unset($chown_paramquery['nextpage']);
             unset($chown_paramquery['sure']);
             $chown_params = http_build_query($chown_paramquery, '', '&#38;');
             $template->set_var("chown_params", $chown_params);
             $move_paramquery = $_GET;
             $move_paramquery['run'] = "admin_move";
             unset($move_paramquery['nextpage']);
             unset($move_paramquery['sure']);
             $move_params = http_build_query($move_paramquery, '', '&#38;');
             $template->set_var("move_params", $move_params);
             $chquota_paramquery = $_GET;
             $chquota_paramquery['run'] = "admin_quota";
             unset($chquota_paramquery['nextpage']);
             unset($chquota_paramquery['sure']);
             $chquota_params = http_build_query($chquota_paramquery, '', '&#38;');
             $template->set_var("chquota_params", $chquota_params);
             return $template->get_string();
         } else {
             throw new ProjectSecurityAccessDeniedException();
         }
     } else {
         throw new ProjectIDMissingException();
     }
 }
Example #3
0
 /**
  * Creates a new Project Folder including Folder
  * @param integer $project_id
  * @return integer
  */
 public function create($project_id, $base_folder_id)
 {
     if (is_numeric($project_id)) {
         $project = new Project($project_id);
         // Folder
         if ($base_folder_id == null) {
             $project_folder_id = constant("PROJECT_FOLDER_ID");
         } else {
             $project_folder_id = $base_folder_id;
         }
         $folder = new Folder($project_folder_id);
         $path = new Path($folder->get_path());
         $path->add_element($project_id);
         if (($folder_id = parent::create($project->get_name(), $project_folder_id, $path->get_path_string(), $project->get_owner_id(), null)) != null) {
             $project_has_folder_access = new ProjectHasFolder_Access(null);
             if ($project_has_folder_access->create($project_id, $folder_id) == null) {
                 return null;
             }
             // Virtual Folder
             $project_folder_create_event = new ProjectFolderCreateEvent($folder_id);
             $event_handler = new EventHandler($project_folder_create_event);
             if ($event_handler->get_success() == false) {
                 $this->delete();
                 return false;
             } else {
                 return $folder_id;
             }
         } else {
             return null;
         }
     } else {
         return null;
     }
 }
Example #4
0
 /**
  * @throws ProjectIDMissingException
  * @throws ProjectSecuriyAccessDeniedException
  */
 public static function structure()
 {
     global $project_security;
     if ($_GET['project_id']) {
         if ($project_security->is_access(1, false) == true) {
             $project = new Project($_GET['project_id']);
             $project_structure_array = $project->get_project_tree();
             $template = new HTMLTemplate("project/structure.html");
             if (is_array($project_structure_array) and count($project_structure_array) >= 1) {
                 $result = array();
                 $counter = 0;
                 foreach ($project_structure_array as $key => $value) {
                     $project = new Project($value['id']);
                     $project_security = new ProjectSecurity($value['id']);
                     $project_owner = new User($project->get_owner_id());
                     $paramquery['username'] = $_GET['username'];
                     $paramquery['session_id'] = $_GET['session_id'];
                     $paramquery['nav'] = "project";
                     $paramquery['run'] = "detail";
                     $paramquery['project_id'] = $value['id'];
                     $params = http_build_query($paramquery, '', '&#38;');
                     $result[$counter]['link'] = $params;
                     $result[$counter]['name'] = $project->get_name();
                     $result[$counter]['status'] = $project->get_current_status_name();
                     $result[$counter]['template'] = $project->get_template_name();
                     $result[$counter]['owner'] = $project_owner->get_full_name(false);
                     $involved_array = $project_security->list_involved_users();
                     if (is_array($involved_array) and count($involved_array) >= 1) {
                         foreach ($involved_array as $involved_key => $involved_value) {
                             $involved_user = new User($involved_value);
                             if ($result[$counter]['involved'] == "") {
                                 $result[$counter]['involved'] = $involved_user->get_full_name(false);
                             } else {
                                 $result[$counter]['involved'] .= ", " . $involved_user->get_full_name(false);
                             }
                         }
                     } else {
                         $result[$counter]['involved'] = "";
                     }
                     $subproject_paramquery = $_GET;
                     $subproject_paramquery['run'] = "new_subproject";
                     $subproject_paramquery['id'] = $value['id'];
                     unset($subproject_paramquery['nextpage']);
                     $subproject_params = http_build_query($subproject_paramquery, '', '&#38;');
                     $result[$counter]['add_subproject'] = $subproject_params;
                     $result[$counter]['padding'] = $value['layer'];
                     $counter++;
                 }
                 $template->set_var("structure", $result);
             }
             $template->output();
         } else {
             throw new ProjectSecurityAccessDeniedException();
         }
     } else {
         throw new ProjectIDMissingException();
     }
 }
 /**
  * Creates a new Project Folder including Folder
  * @param integer $project_id
  * @return integer
  */
 public function create($project_id, $project_status_id)
 {
     if (is_numeric($project_id) and is_numeric($project_status_id)) {
         $project_status = new ProjectStatus($project_status_id);
         $project = new Project($project_id);
         $project_folder_id = ProjectFolder::get_folder_by_project_id($project_id);
         $folder = new Folder($project_folder_id);
         $path = new Path($folder->get_path());
         $path->add_element("status-" . $project_status_id);
         if (($folder_id = parent::create($project_status->get_name(), $project_folder_id, $path->get_path_string(), $project->get_owner_id(), null)) != null) {
             $project_status_has_folder_access = new ProjectStatusHasFolder_Access(null);
             if ($project_status_has_folder_access->create($project_id, $project_status_id, $folder_id) == null) {
                 return null;
             }
             return $folder_id;
         } else {
             return null;
         }
     } else {
         return null;
     }
 }