| <?php |
|
|
| namespace Kanboard\ServiceProvider; |
|
|
| use Kanboard\Core\ObjectStorage\FileStorage; |
| use LogicException; |
| use Pimple\Container; |
| use Pimple\ServiceProviderInterface; |
|
|
| |
| |
| |
| |
| |
| |
| class ObjectStorageProvider implements ServiceProviderInterface |
| { |
| public function register(Container $container) |
| { |
| $container['objectStorage'] = function () { |
| if (file_exists(FILES_DIR)) { |
| if (! is_writable(FILES_DIR)) { |
| $stat = stat(FILES_DIR); |
|
|
| throw new LogicException(sprintf( |
| 'The folder to store uploaded files is not writeable by your webserver user (file=%s; mode=%o; uid=%d; gid=%d)', |
| FILES_DIR, |
| $stat['mode'], |
| $stat['uid'], |
| $stat['gid'] |
| )); |
| } |
| } elseif (! @mkdir(FILES_DIR)) { |
| $folder = dirname(FILES_DIR); |
| $stat = stat($folder); |
|
|
| throw new LogicException(sprintf( |
| 'Unable to create folder to store uploaded files, check the permissions of the parent directory (file=%s; mode=%o; uid=%d; gid=%d)', |
| $folder, |
| $stat['mode'], |
| $stat['uid'], |
| $stat['gid'] |
| )); |
| } |
|
|
| return new FileStorage(FILES_DIR); |
| }; |
|
|
| return $container; |
| } |
| } |