summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-12-21 13:10:02 +0100
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-12-21 13:10:02 +0100
commitb5bee8560345e4123432a8bd3bcd63b938549ef9 (patch)
treea72a9fe4390551466761f3d4267de6b831c7dd2c /lib
parent875b8a72f97429c4e4df6d292daf4261fb7a45bd (diff)
BREAKING FEATURE: move user data
- Create ./data/users/ folder - Move user configuration to ./data/users/username/config.php - Move sqlite db to ./data/users/username/db.sqlite - Move user logs to ./data/users/username/log.txt See https://github.com/FreshRSS/FreshRSS/issues/729
Diffstat (limited to 'lib')
-rw-r--r--lib/Minz/Log.php2
-rw-r--r--lib/Minz/ModelPdo.php2
-rw-r--r--lib/lib_rss.php24
3 files changed, 17 insertions, 11 deletions
diff --git a/lib/Minz/Log.php b/lib/Minz/Log.php
index d3eaec2ae..26412c547 100644
--- a/lib/Minz/Log.php
+++ b/lib/Minz/Log.php
@@ -37,7 +37,7 @@ class Minz_Log {
|| ($env === Minz_Configuration::PRODUCTION
&& ($level >= Minz_Log::NOTICE)))) {
if ($file_name === null) {
- $file_name = LOG_PATH . '/' . Minz_Session::param('currentUser', '_') . '.log';
+ $file_name = join_path(DATA_PATH, 'users', Minz_Session::param('currentUser', '_'), 'log.txt');
}
switch ($level) {
diff --git a/lib/Minz/ModelPdo.php b/lib/Minz/ModelPdo.php
index 6198cd85c..118d89ad2 100644
--- a/lib/Minz/ModelPdo.php
+++ b/lib/Minz/ModelPdo.php
@@ -63,7 +63,7 @@ class Minz_ModelPdo {
);
$this->prefix = $db['prefix'] . $currentUser . '_';
} elseif ($type === 'sqlite') {
- $string = 'sqlite:' . DATA_PATH . '/' . $currentUser . '.sqlite';
+ $string = 'sqlite:' . join_path(DATA_PATH, 'users', $currentUser, 'db.sqlite');
$driver_options = array(
//PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
);
diff --git a/lib/lib_rss.php b/lib/lib_rss.php
index 264c69d58..cfd31b2c8 100644
--- a/lib/lib_rss.php
+++ b/lib/lib_rss.php
@@ -15,6 +15,17 @@ if (!function_exists('json_encode')) {
}
}
+/**
+ * Build a directory path by concatenating a list of directory names.
+ *
+ * @param $path_parts a list of directory names
+ * @return a string corresponding to the final pathname
+ */
+function join_path() {
+ $path_parts = func_get_args();
+ return join(DIRECTORY_SEPARATOR, $path_parts);
+}
+
//<Auto-loading>
function classAutoloader($class) {
if (strpos($class, 'FreshRSS') === 0) {
@@ -208,16 +219,11 @@ function invalidateHttpCache() {
return touch(LOG_PATH . '/' . Minz_Session::param('currentUser', '_') . '.log');
}
-function usernameFromPath($userPath) {
- if (preg_match('%/([A-Za-z0-9]{1,16})_user\.php$%', $userPath, $matches)) {
- return $matches[1];
- } else {
- return '';
- }
-}
-
function listUsers() {
- return array_map('usernameFromPath', glob(DATA_PATH . '/*_user.php'));
+ return array_values(array_diff(
+ scandir(join_path(DATA_PATH, 'users')),
+ array('..', '.')
+ ));
}
function httpAuthUser() {