Media: Allow to change the default data deletion policy

This commit is contained in:
Celestora 2021-10-13 18:23:02 +03:00
parent 403ed65bd1
commit 240ce51705
2 changed files with 30 additions and 0 deletions

View file

@ -89,4 +89,21 @@ abstract class Media extends Postable
$this->stateChanges("hash", $hash);
}
function delete(bool $softly = true): void
{
$deleteQuirk = ovkGetQuirk("blobs.erase-upon-deletion");
if($deleteQuirk === 2 || ($deleteQuirk === 1 && !$softly))
@unlink($this->getFileName());
parent::delete($softly);
}
function undelete(): void
{
if(ovkGetQuirk("blobs.erase-upon-deletion") === 2)
throw new \LogicException("Can't undelete model which is tied to blob, because of config constraint (quriks.yml:blobs.erase-upon-deletion)");
parent::undelete();
}
}

View file

@ -12,3 +12,16 @@
# + Set this option to 1 if you want to use quirky OpenVK behaviour
# + Set this option to 0 if you want to use the canonical VK behaviour
profile.rating-bar-behaviour: 0
# Blob deletion behaviour
# Current VK and old OpenVK don't delete files automatically,
# thus leaving ability to access user-deleted medias by direct URL.
# This config option allows to change this.
#
# Possible values:
# + Set this option to 2 if you want to delete files upon user-initiated deletion
# (this option will prohibit restoring any deleted media)
# + Set this option to 1 if you want to delete files once they're removed from DB completely
# (this option most likely won't have any meaningful effect, please use option 2)
# + Set this option to 0 if you want to use quirky VK and OpenVK behaviour
blobs.erase-upon-deletion: 0