aboutsummaryrefslogtreecommitdiff
path: root/app/Controllers/userController.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Controllers/userController.php')
-rw-r--r--app/Controllers/userController.php41
1 files changed, 22 insertions, 19 deletions
diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php
index 3b40e42dc..ed01b83c5 100644
--- a/app/Controllers/userController.php
+++ b/app/Controllers/userController.php
@@ -39,9 +39,9 @@ class FreshRSS_user_Controller extends Minz_ActionController {
$passwordPlain = '';
$passwordHash = preg_replace('/^\$2[xy]\$/', '\$2a\$', $passwordHash); //Compatibility with bcrypt.js
$ok &= ($passwordHash != '');
- FreshRSS_Context::$conf->_passwordHash($passwordHash);
+ FreshRSS_Context::$user_conf->passwordHash = $passwordHash;
}
- Minz_Session::_param('passwordHash', FreshRSS_Context::$conf->passwordHash);
+ Minz_Session::_param('passwordHash', FreshRSS_Context::$user_conf->passwordHash);
$passwordPlain = Minz_Request::param('apiPasswordPlain', '', true);
if ($passwordPlain != '') {
@@ -52,17 +52,17 @@ class FreshRSS_user_Controller extends Minz_ActionController {
$passwordPlain = '';
$passwordHash = preg_replace('/^\$2[xy]\$/', '\$2a\$', $passwordHash); //Compatibility with bcrypt.js
$ok &= ($passwordHash != '');
- FreshRSS_Context::$conf->_apiPasswordHash($passwordHash);
+ FreshRSS_Context::$user_conf->apiPasswordHash = $passwordHash;
}
// TODO: why do we need of hasAccess here?
if (FreshRSS_Auth::hasAccess('admin')) {
- FreshRSS_Context::$conf->_mail_login(Minz_Request::param('mail_login', '', true));
+ FreshRSS_Context::$user_conf->mail_login = Minz_Request::param('mail_login', '', true);
}
- $email = FreshRSS_Context::$conf->mail_login;
+ $email = FreshRSS_Context::$user_conf->mail_login;
Minz_Session::_param('mail', $email);
- $ok &= FreshRSS_Context::$conf->save();
+ $ok &= FreshRSS_Context::$user_conf->save();
if ($email != '') {
$personaFile = DATA_PATH . '/persona/' . $email . '.txt';
@@ -105,27 +105,28 @@ class FreshRSS_user_Controller extends Minz_ActionController {
public function createAction() {
if (Minz_Request::isPost() && FreshRSS_Auth::hasAccess('admin')) {
- $db = Minz_Configuration::dataBase();
+ $db = FreshRSS_Context::$system_conf->db;
require_once(APP_PATH . '/SQL/install.sql.' . $db['type'] . '.php');
- $new_user_language = Minz_Request::param('new_user_language', FreshRSS_Context::$conf->language);
- if (!in_array($new_user_language, FreshRSS_Context::$conf->availableLanguages())) {
- $new_user_language = FreshRSS_Context::$conf->language;
+ $new_user_language = Minz_Request::param('new_user_language', FreshRSS_Context::$user_conf->language);
+ $languages = Minz_Translate::availableLanguages();
+ if (!isset($languages[$new_user_language])) {
+ $new_user_language = FreshRSS_Context::$user_conf->language;
}
$new_user_name = Minz_Request::param('new_user_name');
$ok = ($new_user_name != '') && ctype_alnum($new_user_name);
if ($ok) {
- $ok &= (strcasecmp($new_user_name, Minz_Configuration::defaultUser()) !== 0); //It is forbidden to alter the default user
+ $default_user = FreshRSS_Context::$system_conf->default_user;
+ $ok &= (strcasecmp($new_user_name, $default_user) !== 0); //It is forbidden to alter the default user
$ok &= !in_array(strtoupper($new_user_name), array_map('strtoupper', listUsers())); //Not an existing user, case-insensitive
- $configPath = DATA_PATH . '/' . $new_user_name . '_user.php';
+ $configPath = join_path(DATA_PATH, 'users', $new_user_name, 'config.php');
$ok &= !file_exists($configPath);
}
if ($ok) {
-
$passwordPlain = Minz_Request::param('new_user_passwordPlain', '', true);
$passwordHash = '';
if ($passwordPlain != '') {
@@ -147,12 +148,13 @@ class FreshRSS_user_Controller extends Minz_ActionController {
if (empty($new_user_email)) {
$new_user_email = '';
} else {
- $personaFile = DATA_PATH . '/persona/' . $new_user_email . '.txt';
+ $personaFile = join_path(DATA_PATH, 'persona', $new_user_email . '.txt');
@unlink($personaFile);
$ok &= (file_put_contents($personaFile, $new_user_name) !== false);
}
}
if ($ok) {
+ mkdir(join_path(DATA_PATH, 'users', $new_user_name));
$config_array = array(
'language' => $new_user_language,
'passwordHash' => $passwordHash,
@@ -178,23 +180,24 @@ class FreshRSS_user_Controller extends Minz_ActionController {
public function deleteAction() {
if (Minz_Request::isPost() && FreshRSS_Auth::hasAccess('admin')) {
- $db = Minz_Configuration::dataBase();
+ $db = FreshRSS_Context::$system_conf->db;
require_once(APP_PATH . '/SQL/install.sql.' . $db['type'] . '.php');
$username = Minz_Request::param('username');
$ok = ctype_alnum($username);
+ $user_data = join_path(DATA_PATH, 'users', $username);
if ($ok) {
- $ok &= (strcasecmp($username, Minz_Configuration::defaultUser()) !== 0); //It is forbidden to delete the default user
+ $default_user = FreshRSS_Context::$system_conf->default_user;
+ $ok &= (strcasecmp($username, $default_user) !== 0); //It is forbidden to delete the default user
}
if ($ok) {
- $configPath = DATA_PATH . '/' . $username . '_user.php';
- $ok &= file_exists($configPath);
+ $ok &= is_dir($user_data);
}
if ($ok) {
$userDAO = new FreshRSS_UserDAO();
$ok &= $userDAO->deleteUser($username);
- $ok &= unlink($configPath);
+ $ok &= recursive_unlink($user_data);
//TODO: delete Persona file
}
invalidateHttpCache();