/** * @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(); } }
/** * @throws ProjectIDMissingException * @throws ProjectSecurityAccessDeniedException */ public static function rename() { global $project_security, $user; if ($_GET['project_id']) { $project_id = $_GET['project_id']; $project = new Project($project_id); if ($user->get_user_id() == $project->get_owner_id() or $project_security->is_access(7, false) == true) { if ($_GET['nextpage'] == 1) { if ($_POST['name']) { if ($project->get_organisation_unit_id()) { if (Project::exist_project_name($project->get_organisation_unit_id(), null, $_POST['name']) == false) { $page_1_passed = true; } else { $page_1_passed = false; $error = "This name already exists"; } } else { if (Project::exist_project_name(null, $project->get_project_toid(), $_POST['name']) == false) { $page_1_passed = true; } else { $page_1_passed = false; $error = "This name already exists"; } } } else { $page_1_passed = false; $error = "You must enter a name"; } } else { $page_1_passed = false; $error = ""; } if ($page_1_passed == false) { $template = new HTMLTemplate("project/admin/rename.html"); $paramquery = $_GET; $paramquery['nextpage'] = "1"; $params = http_build_query($paramquery, '', '&'); $template->set_var("params", $params); $template->set_var("error", $error); if ($_POST['name']) { $template->set_var("name", $_POST['name']); } else { $template->set_var("name", trim($project->get_name())); } $template->output(); } else { $paramquery = $_GET; unset($paramquery['nextpage']); $paramquery['run'] = "admin"; $params = http_build_query($paramquery); if ($project->set_name($_POST['name'])) { Common_IO::step_proceed($params, "Rename Project", "Operation Successful", null); } else { Common_IO::step_proceed($params, "Rename Project", "Operation Failed", null); } } } else { throw new ProjectSecurityAccessDeniedException(); } } else { throw new ProjectIDMissingException(); } }
/** * @todo search on read-only projects */ public static function search() { global $user, $session; if ($_GET['nextpage']) { if ($_GET['sortvalue'] and $_GET['sortmethod']) { if ($_GET['nextpage'] == "2" and $_POST['string']) { $string = $_POST['string']; $item_type_array = $session->read_value("SEARCH_DATA_ITEM_TYPE"); $project_id_array = $session->read_value("SEARCH_DATA_PROJECT_ID"); } else { $string = $session->read_value("SEARCH_DATA_STRING"); $item_type_array = $session->read_value("SEARCH_DATA_ITEM_TYPE"); $project_id_array = $session->read_value("SEARCH_DATA_PROJECT_ID"); } } else { if ($_GET['page']) { $string = $session->read_value("SEARCH_DATA_STRING"); $item_type_array = $session->read_value("SEARCH_DATA_ITEM_TYPE"); $project_id_array = $session->read_value("SEARCH_DATA_PROJECT_ID"); } else { if ($_GET['nextpage'] == "1") { $string = $_POST['string']; $session->delete_value("SEARCH_DATA_STRING"); $session->delete_value("SEARCH_DATA_ITEM_TYPE"); $session->delete_value("SEARCH_DATA_PROJECT_ID"); } else { $string = $_POST['string']; $item_type_array = $session->read_value("SEARCH_DATA_ITEM_TYPE"); $project_id_array = $session->read_value("SEARCH_DATA_PROJECT_ID"); } } } $no_error = true; } else { $no_error = false; } if ($no_error == false) { $template = new HTMLTemplate("project/search/data_search.html"); $template->set_var("error", ""); $paramquery = $_GET; unset($paramquery['page']); $paramquery['nextpage'] = "1"; $params = http_build_query($paramquery, '', '&'); $template->set_var("params", $params); $result = array(); $counter = 0; $project_array = Project::list_user_related_projects($user->get_user_id(), false); if (is_array($project_array) and count($project_array) >= 1) { foreach ($project_array as $key => $value) { $project = new Project($value); $organisation_unit = new OrganisationUnit($project->get_organisation_unit_id()); $result[$counter]['value'] = $value; $result[$counter]['content'] = $project->get_name() . " (" . $organisation_unit->get_name() . ")"; $result[$counter]['selected'] = ""; $counter++; } } $template->set_var("project_array", $result); $result = array(); $counter = 0; $item_type_array = Item::list_types(); if (is_array($item_type_array)) { foreach ($item_type_array as $key => $value) { if (class_exists($value)) { if ($value::get_sql_select_array($key) != null) { $result[$counter]['title'] = $value::get_generic_name($key, null); $result[$counter]['name'] = "item-" . $key; $result[$counter]['value'] = $key; $result[$counter]['checked'] = "checked='checked'"; $counter++; } } } } $template->set_var("item_type_array", $result); $template->output(); } else { if (!$project_id_array) { if ($_POST['project_id'] == 0) { $project_id_array = array(); $tmp_id_array = Project::list_user_related_projects($user->get_user_id(), false); if (is_array($tmp_id_array) and count($tmp_id_array) >= 1) { foreach ($tmp_id_array as $key => $value) { array_push($project_id_array, $value); } } } else { $project_id_array = array(); $project_id_array[0] = $_POST['project_id']; $project = new Project($_POST['project_id']); $search_name = $project->get_name(); } } else { if (count($project_id_array) == 1) { $project = new Project($project_id_array[0]); $search_name = $project->get_name(); } else { $search_name = "All"; } } if (!$item_type_array) { $item_type_array = array(); foreach ($_POST as $key => $value) { if (strpos($key, "item-") === 0) { array_push($item_type_array, $value); } } if (!$item_type_array) { $tmp_item_type_array = Item::list_types(); foreach ($tmp_item_type_array as $key => $value) { if (class_exists($value)) { if ($value::get_sql_select_array($key) != null) { array_push($item_type_array, $key); } } } } } $session->write_value("SEARCH_DATA_STRING", $string, true); $session->write_value("SEARCH_DATA_ITEM_TYPE", $item_type_array, true); $session->write_value("SEARCH_DATA_PROJECT_ID", $project_id_array, true); $argument_array = array(); $argument_array[0][0] = "string"; $argument_array[0][1] = $string; $argument_array[1][0] = "project_id_array"; $argument_array[1][1] = $project_id_array; $argument_array[2][0] = "item_type_array"; $argument_array[2][1] = $item_type_array; $list = new List_IO("ProjectDataSearch", "ajax.php?nav=project", "search_project_data_list_projects", "search_project_data_count_projects", $argument_array, "ProjectDataSearch"); $list->add_column("", "symbol", false, "16px"); $list->add_column(Language::get_message("ProjectGeneralListColumnName", "general"), "name", true, null); $list->add_column(Language::get_message("ProjectGeneralListColumnType", "general"), "type", false, null); $list->add_column(Language::get_message("ProjectGeneralListColumnDateTime", "general"), "datetime", true, null); $list->add_column(Language::get_message("ProjectGeneralListColumnProject", "general"), "project_name", true, null); $template = new HTMLTemplate("project/search/data_search_result.html"); $paramquery = $_GET; $paramquery['nextpage'] = "2"; $params = http_build_query($paramquery, '', '&'); $template->set_var("params", $params); $template->set_var("string", $string); $template->set_var("list", $list->get_list()); $template->output(); } }