Bug when updating an episode’s cover image
Describe the bug
Given that we can’t just delete an episode’s cover image, I decided to download the podcast’s cover and update the episode’s cover to the same file. However, after choosing the cover file in the episode edit form, when I hit save changes, I get this error:
ErrorException
copy(/var/www/castopod/public/media/podcasts/podcastname/episode_cover_image.webp): Failed to open stream: Permission denied
at /var/www/castopod/modules/Media/FileManagers/FS.php:38
The full stack trace is:
ErrorException: copy(/var/www/castopod/public/media/podcasts/podcastname/episode_cover_image.webp): Failed to open stream: Permission denied in /var/www/castopod/modules/Media/FileManagers/FS.php:38
Stack trace:
#0 [internal function]: CodeIgniter\Debug\Exceptions->errorHandler(2, 'copy(/var/www/c...', '/var/www/castop...', 38)
#1 /var/www/castopod/modules/Media/FileManagers/FS.php(38): copy('/var/www/castop...', '/var/www/castop...')
#2 /var/www/castopod/modules/Media/Entities/Image.php(151): Modules\Media\FileManagers\FS->save(Object(CodeIgniter\Files\File), 'podcasts/cafeka...')
#3 /var/www/castopod/modules/Media/Entities/Image.php(101): Modules\Media\Entities\Image->saveSizes()
#4 /var/www/castopod/modules/Media/Models/MediaModel.php(142): Modules\Media\Entities\Image->saveFile()
#5 /var/www/castopod/app/Entities/Episode.php(199): Modules\Media\Models\MediaModel->updateMedia(Object(Modules\Media\Entities\Image))
#6 /var/www/castopod/modules/Admin/Controllers/EpisodeController.php(340): App\Entities\Episode->setCover(Object(CodeIgniter\HTTP\Files\UploadedFile))
#7 /var/www/castopod/modules/Admin/Controllers/EpisodeController.php(64): Modules\Admin\Controllers\EpisodeController->attemptEdit()
#8 /var/www/castopod/vendor/codeigniter4/framework/system/CodeIgniter.php(918): Modules\Admin\Controllers\EpisodeController->_remap('attemptEdit', '18', '500')
#9 /var/www/castopod/vendor/codeigniter4/framework/system/CodeIgniter.php(494): CodeIgniter\CodeIgniter->runController(Object(Modules\Admin\Controllers\EpisodeController))
#10 /var/www/castopod/vendor/codeigniter4/framework/system/CodeIgniter.php(353): CodeIgniter\CodeIgniter->handleRequest(NULL, Object(Config\Cache), false)
#11 /var/www/castopod/public/index.php(85): CodeIgniter\CodeIgniter->run()
#12 {main}
Context
- Castopod: 1.6.5, with docker installation (PHP 8.1.23)
- Browser: Firefox 118.0.2