/** * @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; }