示例#1
0
 public function setUp()
 {
     /* Setup Routine */
     $this->_model = zerobin_db::getInstance($this->_options);
     serversalt::setPath(PATH . 'data');
     $this->reset();
 }
示例#2
0
 public function setUp()
 {
     /* Setup Routine */
     $this->_model = zerobin_data::getInstance(array('dir' => PATH . 'data'));
     serversalt::setPath(PATH . 'data');
     $this->reset();
 }
示例#3
0
 public function setUp()
 {
     /* Setup Routine */
     $this->_path = PATH . 'data';
     if (!is_dir($this->_path)) {
         mkdir($this->_path);
     }
     $this->_file = $this->_path . DIRECTORY_SEPARATOR . 'vizhash.png';
     serversalt::setPath($this->_path);
 }
示例#4
0
 /**
  * Delete an existing paste
  *
  * @access private
  * @param  string $dataid
  * @param  string $deletetoken
  * @return void
  */
 private function _delete($dataid, $deletetoken)
 {
     // Is this a valid paste identifier?
     if (!filter::is_valid_paste_id($dataid)) {
         $this->_error = 'Invalid paste ID.';
         return;
     }
     // Check that paste exists.
     if (!$this->_model()->exists($dataid)) {
         $this->_error = self::GENERIC_ERROR;
         return;
     }
     // Get the paste itself.
     $paste = $this->_model()->read($dataid);
     // See if paste has expired.
     if (isset($paste->meta->expire_date) && $paste->meta->expire_date < time()) {
         // Delete the paste
         $this->_model()->delete($dataid);
         $this->_error = self::GENERIC_ERROR;
         return;
     }
     if ($deletetoken == 'burnafterreading') {
         if (isset($paste->meta->burnafterreading) && $paste->meta->burnafterreading) {
             // Delete the paste
             $this->_model()->delete($dataid);
             $this->_return_message(0, $dataid);
         } else {
             $this->_return_message(1, 'Paste is not of burn-after-reading type.');
         }
         return;
     }
     // Make sure token is valid.
     serversalt::setPath($this->_conf['traffic']['dir']);
     if (!filter::slow_equals($deletetoken, hash_hmac('sha1', $dataid, serversalt::get()))) {
         $this->_error = 'Wrong deletion token. Paste was not deleted.';
         return;
     }
     // Paste exists and deletion token is valid: Delete the paste.
     $this->_model()->delete($dataid);
     $this->_status = 'Paste was properly deleted.';
 }
示例#5
0
 /**
  * Delete an existing paste
  *
  * @access private
  * @param  string $dataid
  * @param  string $deletetoken
  * @return void
  */
 private function _delete($dataid, $deletetoken)
 {
     try {
         $paste = $this->_model->getPaste($dataid);
         if ($paste->exists()) {
             // accessing this property ensures that the paste would be
             // deleted if it has already expired
             $burnafterreading = $paste->isBurnafterreading();
             if ($deletetoken == 'burnafterreading') {
                 if ($burnafterreading) {
                     $paste->delete();
                     $this->_return_message(0, $dataid);
                 } else {
                     $this->_return_message(1, 'Paste is not of burn-after-reading type.');
                 }
             } else {
                 // Make sure the token is valid.
                 serversalt::setPath($this->_conf->getKey('dir', 'traffic'));
                 if (filter::slow_equals($deletetoken, $paste->getDeleteToken())) {
                     // Paste exists and deletion token is valid: Delete the paste.
                     $paste->delete();
                     $this->_status = 'Paste was properly deleted.';
                 } else {
                     $this->_error = 'Wrong deletion token. Paste was not deleted.';
                 }
             }
         } else {
             $this->_error = self::GENERIC_ERROR;
         }
     } catch (Exception $e) {
         $this->_error = $e->getMessage();
     }
 }
示例#6
0
 /**
  * @expectedException Exception
  * @expectedExceptionCode 10
  */
 public function testPermissionShenanigans()
 {
     // try creating an invalid path
     chmod($this->_invalidPath, 00);
     serversalt::setPath($this->_invalidPath . DIRECTORY_SEPARATOR . 'baz');
     serversalt::get();
 }