Example #1
0
 /**
  * @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;
 }