diff options
author | VirtualTam <virtualtam@flibidi.net> | 2015-11-11 22:49:58 +0100 |
---|---|---|
committer | VirtualTam <virtualtam@flibidi.net> | 2015-11-24 01:12:35 +0100 |
commit | 2e28269baed195d58bbe169841eed176b171db76 (patch) | |
tree | f743e785edf708454ab53efa13f38e35f10447e6 /application/FileUtils.php | |
parent | c580024cfbe5f0d290b09157b9665d1b4131d7f4 (diff) | |
download | Shaarli-2e28269baed195d58bbe169841eed176b171db76.tar.gz Shaarli-2e28269baed195d58bbe169841eed176b171db76.tar.zst Shaarli-2e28269baed195d58bbe169841eed176b171db76.zip |
install: check file/directory permissions for Shaarli resources
Relates to #40
Relates to #372
Additions:
- FileUtils: IOException
- ApplicationUtils:
- check if Shaarli resources are accessible with sufficient permissions
- basic test coverage
- index.php:
- check access permissions and redirect to an error page if needed:
- before running the first installation
Modifications:
- LinkDB:
- factorize datastore write code
- check if the datastore
(exists AND is writeable) OR (doesn't exist AND its parent dir is writable)
- raise an IOException if needed
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
Diffstat (limited to 'application/FileUtils.php')
-rw-r--r-- | application/FileUtils.php | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/application/FileUtils.php b/application/FileUtils.php new file mode 100644 index 00000000..6a12ef0e --- /dev/null +++ b/application/FileUtils.php | |||
@@ -0,0 +1,19 @@ | |||
1 | <?php | ||
2 | /** | ||
3 | * Exception class thrown when a filesystem access failure happens | ||
4 | */ | ||
5 | class IOException extends Exception | ||
6 | { | ||
7 | private $path; | ||
8 | |||
9 | /** | ||
10 | * Construct a new IOException | ||
11 | * | ||
12 | * @param string $path path to the ressource that cannot be accessed | ||
13 | */ | ||
14 | public function __construct($path) | ||
15 | { | ||
16 | $this->path = $path; | ||
17 | $this->message = 'Error accessing '.$this->path; | ||
18 | } | ||
19 | } | ||