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