/** * @see EventListenerInterface::listen_events() * @param object $event_object * @return bool */ public static function listen_events($event_object) { if ($event_object instanceof UserDeletePrecheckEvent) { $project_array = self::list_user_related_projects($event_object->get_user_id(), false); if (is_array($project_array)) { if (count($project_array) >= 1) { return false; } } } if ($event_object instanceof OrganisationUnitDeletePrecheckEvent) { $project_array = self::list_organisation_unit_related_projects($event_object->get_organisation_unit_id(), true); if (is_array($project_array)) { if (count($project_array) >= 1) { return false; } } } if ($event_object instanceof FileUploadPrecheckEvent) { $folder_id = $event_object->get_folder_id(); if (($project_id = ProjectFolder::get_project_id_by_folder_id($folder_id)) != null) { $project = new Project($project_id); $project_quota = $project->get_quota(); $project_filesize = $project->get_filesize(); $new_project_filesize = $project_filesize + $event_object->get_filesize(); if ($project_quota <= $new_project_filesize and $project_quota != 0) { return false; } } } if ($event_object instanceof FileUploadEvent) { $folder_id = $event_object->get_folder_id(); if (($project_id = ProjectFolder::get_project_id_by_folder_id($folder_id)) != null) { $project = new Project($project_id); $new_project_filesize = $project->get_filesize() + $event_object->get_filesize(); if ($project->set_filesize($new_project_filesize) == false) { return false; } } } if ($event_object instanceof FileDeleteEvent) { $folder_id = $event_object->get_folder_id(); if (($project_id = ProjectFolder::get_project_id_by_folder_id($folder_id)) != null) { $project = new Project($project_id); $new_project_filesize = $project->get_filesize() - $event_object->get_filesize(); if ($project->set_filesize($new_project_filesize) == false) { return false; } } } if ($event_object instanceof FileVersionDeleteEvent) { $folder_id = $event_object->get_folder_id(); if (($project_id = ProjectFolder::get_project_id_by_folder_id($folder_id)) != null) { $project = new Project($project_id); $new_project_filesize = $project->get_filesize() - $event_object->get_filesize(); if ($project->set_filesize($new_project_filesize) == false) { return false; } } } return true; }
/** * @throws ProjectIDMissingException * @throws ProjectSecuriyAccessDeniedException */ public static function detail() { global $project_security; if ($_GET['project_id']) { if ($project_security->is_access(1, false) == true) { $project = new Project($_GET['project_id']); $project_owner = new User($project->get_owner_id()); $template = new HTMLTemplate("project/detail.html"); $template->set_var("get_array", serialize($_GET)); $template->set_var("title", $project->get_name()); $template->set_var("owner", $project_owner->get_full_name(false)); $create_datetime = new DatetimeHandler($project->get_datetime()); $template->set_var("created_at", $create_datetime->get_datetime()); $template->set_var("template", $project->get_template_name()); $template->set_var("permissions", ""); $template->set_var("size", Convert::convert_byte_1024($project->get_filesize())); $template->set_var("quota", Convert::convert_byte_1024($project->get_quota())); $owner_paramquery = array(); $owner_paramquery['username'] = $_GET['username']; $owner_paramquery['session_id'] = $_GET['session_id']; $owner_paramquery['nav'] = "project"; $owner_paramquery['run'] = "common_dialog"; $owner_paramquery['dialog'] = "user_detail"; $owner_paramquery['id'] = $project->get_owner_id(); $owner_params = http_build_query($owner_paramquery, '', '&'); $template->set_var("owner_params", $owner_params); $template->output(); } else { throw new ProjectSecurityAccessDeniedxception(); } } else { throw new ProjectIDMissingException(); } }