/** * @see SampleSecurityInterface::delete_user() * @param integer $entry_id * @return bool */ public function delete_user($entry_id) { global $transaction; if ($this->sample_id and is_numeric($entry_id)) { $transaction_id = $transaction->begin(); $sample_has_user = new SampleHasUser_Access($entry_id); $write = $sample_has_user->get_write(); $user_id = $sample_has_user->get_user_id(); $success = $sample_has_user->delete(); if ($success == true) { if ($write == true) { $sample_folder_id = SampleFolder::get_folder_by_sample_id($this->sample_id); $folder_id = UserFolder::get_folder_by_user_id($user_id); $virtual_folder = new VirtualFolder(null); $virtual_folder_array = $virtual_folder->list_entries_by_folder_id($folder_id); foreach ($virtual_folder_array as $key => $value) { $virtual_folder = new SampleVirtualFolder($value); if ($virtual_folder->is_sample_vfolder() == true) { $virtual_folder_id = $value; } } if ($virtual_folder_id) { $virtual_folder = new VirtualFolder($virtual_folder_id); if ($virtual_folder->unlink_folder($sample_folder_id) == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } } if ($transaction_id != null) { $transaction->commit($transaction_id); } return true; } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } else { return false; } }