Merge branch 'master' into drop-legacy-zerobin-support

This commit is contained in:
El RIDO 2025-07-17 08:00:09 +02:00
commit 410cc909ce
No known key found for this signature in database
GPG key ID: 0F5C940A6BD81F92
5 changed files with 23 additions and 0 deletions

View file

@ -1,6 +1,7 @@
# PrivateBin version history
## 2.0.0 (not yet released)
* ADDED: Error logging in database and filesystem backend (#1554)
* ADDED: Statistics on v1 pastes in administration script and option to delete them
* CHANGED: Removed page template (#265)
* CHANGED: Removed support for ZeroBin & v1 pastes - since release 1.3 the v2 format is used (#551)

View file

@ -160,6 +160,7 @@ class Database extends AbstractData
)
);
} catch (Exception $e) {
error_log('Error while attempting to insert a paste into the database: ' . $e->getMessage());
return false;
}
}
@ -253,6 +254,7 @@ class Database extends AbstractData
try {
$data = Json::encode($comment);
} catch (Exception $e) {
error_log('Error while attempting to insert a comment into the database: ' . $e->getMessage());
return false;
}
$meta = $comment['meta'];
@ -273,6 +275,7 @@ class Database extends AbstractData
)
);
} catch (Exception $e) {
error_log('Error while attempting to insert a comment into the database: ' . $e->getMessage());
return false;
}
}

View file

@ -456,6 +456,7 @@ class Filesystem extends AbstractData
self::PROTECTION_LINE . PHP_EOL . Json::encode($data)
);
} catch (Exception $e) {
error_log('Error while trying to store data to the filesystem at path "' . $filename . '": ' . $e->getMessage());
return false;
}
}

View file

@ -49,6 +49,7 @@ class DatabaseTest extends TestCase
public function testDatabaseBasedDataStoreWorks()
{
$error_log_setting = ini_get('error_log');
$this->_model->delete(Helper::getPasteId());
// storing pastes
@ -56,7 +57,9 @@ class DatabaseTest extends TestCase
$this->assertFalse($this->_model->exists(Helper::getPasteId()), 'paste does not yet exist');
$this->assertTrue($this->_model->create(Helper::getPasteId(), $paste), 'store new paste');
$this->assertTrue($this->_model->exists(Helper::getPasteId()), 'paste exists after storing it');
ini_set('error_log', '/dev/null');
$this->assertFalse($this->_model->create(Helper::getPasteId(), $paste), 'unable to store the same paste twice');
ini_set('error_log', $error_log_setting);
$this->assertEquals($paste, $this->_model->read(Helper::getPasteId()));
// storing comments
@ -93,13 +96,16 @@ class DatabaseTest extends TestCase
public function testDatabaseBasedAttachmentStoreWorks()
{
$error_log_setting = ini_get('error_log');
$this->_model->delete(Helper::getPasteId());
$original = $paste = Helper::getPaste(array('expire_date' => 1344803344));
$paste['meta']['burnafterreading'] = $original['meta']['burnafterreading'] = true;
$this->assertFalse($this->_model->exists(Helper::getPasteId()), 'paste does not yet exist');
$this->assertTrue($this->_model->create(Helper::getPasteId(), $paste), 'store new paste');
$this->assertTrue($this->_model->exists(Helper::getPasteId()), 'paste exists after storing it');
ini_set('error_log', '/dev/null');
$this->assertFalse($this->_model->create(Helper::getPasteId(), $paste), 'unable to store the same paste twice');
ini_set('error_log', $error_log_setting);
$this->assertEquals($original, $this->_model->read(Helper::getPasteId()));
}
@ -140,15 +146,19 @@ class DatabaseTest extends TestCase
public function testErrorDetection()
{
$error_log_setting = ini_get('error_log');
$this->_model->delete(Helper::getPasteId());
$paste = Helper::getPaste(array('expire' => "Invalid UTF-8 sequence: \xB1\x31"));
$this->assertFalse($this->_model->exists(Helper::getPasteId()), 'paste does not yet exist');
ini_set('error_log', '/dev/null');
$this->assertFalse($this->_model->create(Helper::getPasteId(), $paste), 'unable to store broken paste');
ini_set('error_log', $error_log_setting);
$this->assertFalse($this->_model->exists(Helper::getPasteId()), 'paste does still not exist');
}
public function testCommentErrorDetection()
{
$error_log_setting = ini_get('error_log');
$this->_model->delete(Helper::getPasteId());
$data = Helper::getPaste();
$comment = Helper::getComment(array('icon' => "Invalid UTF-8 sequence: \xB1\x31"));
@ -156,7 +166,9 @@ class DatabaseTest extends TestCase
$this->assertTrue($this->_model->create(Helper::getPasteId(), $data), 'store new paste');
$this->assertTrue($this->_model->exists(Helper::getPasteId()), 'paste exists after storing it');
$this->assertFalse($this->_model->existsComment(Helper::getPasteId(), Helper::getPasteId(), Helper::getCommentId()), 'comment does not yet exist');
ini_set('error_log', '/dev/null');
$this->assertFalse($this->_model->createComment(Helper::getPasteId(), Helper::getPasteId(), Helper::getCommentId(), $comment), 'unable to store broken comment');
ini_set('error_log', $error_log_setting);
$this->assertFalse($this->_model->existsComment(Helper::getPasteId(), Helper::getPasteId(), Helper::getCommentId()), 'comment does still not exist');
}

View file

@ -111,16 +111,20 @@ class FilesystemTest extends TestCase
public function testErrorDetection()
{
$error_log_setting = ini_get('error_log');
$this->_model->delete(Helper::getPasteId());
$paste = Helper::getPaste(array('expire' => "Invalid UTF-8 sequence: \xB1\x31"));
$this->assertFalse($this->_model->exists(Helper::getPasteId()), 'paste does not yet exist');
ini_set('error_log', '/dev/null');
$this->assertFalse($this->_model->create(Helper::getPasteId(), $paste), 'unable to store broken paste');
ini_set('error_log', $error_log_setting);
$this->assertFalse($this->_model->exists(Helper::getPasteId()), 'paste does still not exist');
$this->assertFalse($this->_model->setValue('foo', 'non existing namespace'), 'rejects setting value in non existing namespace');
}
public function testCommentErrorDetection()
{
$error_log_setting = ini_get('error_log');
$this->_model->delete(Helper::getPasteId());
$data = Helper::getPaste();
$comment = Helper::getComment(array('icon' => "Invalid UTF-8 sequence: \xB1\x31"));
@ -128,7 +132,9 @@ class FilesystemTest extends TestCase
$this->assertTrue($this->_model->create(Helper::getPasteId(), $data), 'store new paste');
$this->assertTrue($this->_model->exists(Helper::getPasteId()), 'paste exists after storing it');
$this->assertFalse($this->_model->existsComment(Helper::getPasteId(), Helper::getPasteId(), Helper::getCommentId()), 'comment does not yet exist');
ini_set('error_log', '/dev/null');
$this->assertFalse($this->_model->createComment(Helper::getPasteId(), Helper::getPasteId(), Helper::getCommentId(), $comment), 'unable to store broken comment');
ini_set('error_log', $error_log_setting);
$this->assertFalse($this->_model->existsComment(Helper::getPasteId(), Helper::getPasteId(), Helper::getCommentId()), 'comment does still not exist');
}