/** * @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 .= " "; } $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(); } }
/** * @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, '', '&'); $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, '', '&'); $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, '', '&'); $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, '', '&'); $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, '', '&'); $template->set_var("chquota_params", $chquota_params); return $template->get_string(); } 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, $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; } }
/** * @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, '', '&'); $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, '', '&'); $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; } }