diff --git a/assets/css/app.css b/assets/css/app.css
index ce003ee..59900b9 100644
--- a/assets/css/app.css
+++ b/assets/css/app.css
@@ -212,7 +212,7 @@ select {
}
.form-actions {
- margin-top: 40px;
+ margin-top: 30px;
}
input.form-error,
@@ -728,6 +728,13 @@ iframe {
margin-bottom: 45px;
}
+#database-selector h4 {
+ margin: 0;
+ margin-bottom: 10px;
+ padding: 0;
+ font-weight: normal;
+}
+
.bookmarklet {
font-size: 0.9em;
font-weight: bold;
diff --git a/controllers/common.php b/controllers/common.php
index d0e5bd2..053a2a2 100644
--- a/controllers/common.php
+++ b/controllers/common.php
@@ -23,7 +23,7 @@ Router\before(function($action) {
// These actions are considered to be safe even for unauthenticated users
$safe_actions = array('login', 'bookmark-feed', 'select-db', 'logout', 'notfound');
- if ( ! Model\User\is_loggedin() && ! in_array($action, $safe_actions)) {
+ if (! Model\User\is_loggedin() && ! in_array($action, $safe_actions)) {
if (! Model\RememberMe\authenticate()) {
Model\User\logout();
Response\redirect('?action=login');
@@ -35,7 +35,10 @@ Router\before(function($action) {
// Load translations
$language = Model\Config\get('language') ?: 'en_US';
- if ($language !== 'en_US') Translator\load($language);
+
+ if ($language !== 'en_US') {
+ Translator\load($language);
+ }
// Set timezone
date_default_timezone_set(Model\Config\get('timezone') ?: 'UTC');
diff --git a/controllers/console.php b/controllers/console.php
index 6881547..ea040c8 100644
--- a/controllers/console.php
+++ b/controllers/console.php
@@ -13,7 +13,6 @@ Router\get_action('flush-console', function() {
Response\redirect('?action=console');
});
-
// Display console
Router\get_action('console', function() {
diff --git a/controllers/user.php b/controllers/user.php
index afdcdca..5d653cd 100644
--- a/controllers/user.php
+++ b/controllers/user.php
@@ -9,15 +9,14 @@ use PicoFarad\Template;
// Logout and destroy session
Router\get_action('logout', function() {
- Model\RememberMe\destroy();
- Session\close();
+ Model\User\logout();
Response\redirect('?action=login');
});
// Display form login
Router\get_action('login', function() {
- if (isset($_SESSION['user'])) {
+ if (Model\User\is_loggedin()) {
Response\redirect('?action=unread');
}
diff --git a/fever/index.php b/fever/index.php
index f6e24e0..b43173c 100644
--- a/fever/index.php
+++ b/fever/index.php
@@ -30,8 +30,8 @@ function response(array $response)
function auth()
{
if (! empty($_GET['database'])) {
+ // Return unauthorized if the requested database could not be found
if (! Model\Database\select($_GET['database'])) {
- // return unauthorized if the requested database could not be found
return array(
'api_version' => 3,
'auth' => 0,
diff --git a/models/auto_update.php b/models/auto_update.php
index 565e637..7cd2314 100644
--- a/models/auto_update.php
+++ b/models/auto_update.php
@@ -7,6 +7,7 @@ use DirectoryIterator;
use RecursiveIterator;
use RecursiveIteratorIterator;
use RecursiveDirectoryIterator;
+use Model\Config;
// Get all files of a given directory
function get_files_list($directory)
@@ -49,7 +50,7 @@ function is_excluded_path($path, array $exclude_list)
// Synchronize 2 directories (copy/remove files)
function synchronize($source_directory, $destination_directory)
{
- \Model\Config\debug('[SYNCHRONIZE] '.$source_directory.' to '.$destination_directory);
+ Config\debug('[SYNCHRONIZE] '.$source_directory.' to '.$destination_directory);
$src_files = get_files_list($source_directory);
$dst_files = get_files_list($destination_directory);
@@ -62,7 +63,7 @@ function synchronize($source_directory, $destination_directory)
if ($file !== '.htaccess') {
$destination_file = $destination_directory.DIRECTORY_SEPARATOR.$file;
- \Model\Config\debug('[REMOVE] '.$destination_file);
+ Config\debug('[REMOVE] '.$destination_file);
if (! @unlink($destination_file)) {
return false;
@@ -77,7 +78,7 @@ function synchronize($source_directory, $destination_directory)
if (! is_dir($directory)) {
- \Model\Config\debug('[MKDIR] '.$directory);
+ Config\debug('[MKDIR] '.$directory);
if (! @mkdir($directory, 0755, true)) {
return false;
@@ -87,7 +88,7 @@ function synchronize($source_directory, $destination_directory)
$source_file = $source_directory.DIRECTORY_SEPARATOR.$file;
$destination_file = $destination_directory.DIRECTORY_SEPARATOR.$file;
- \Model\Config\debug('[COPY] '.$source_file.' to '.$destination_file);
+ Config\debug('[COPY] '.$source_file.' to '.$destination_file);
if (! @copy($source_file, $destination_file)) {
return false;
@@ -102,7 +103,7 @@ function uncompress_archive($url, $download_directory = AUTO_UPDATE_DOWNLOAD_DIR
{
$archive_file = $download_directory.DIRECTORY_SEPARATOR.'update.zip';
- \Model\Config\debug('[DOWNLOAD] '.$url);
+ Config\debug('[DOWNLOAD] '.$url);
if (($data = @file_get_contents($url)) === false) {
return false;
@@ -112,7 +113,7 @@ function uncompress_archive($url, $download_directory = AUTO_UPDATE_DOWNLOAD_DIR
return false;
}
- \Model\Config\debug('[UNZIP] '.$archive_file);
+ Config\debug('[UNZIP] '.$archive_file);
$zip = new ZipArchive;
@@ -129,7 +130,7 @@ function uncompress_archive($url, $download_directory = AUTO_UPDATE_DOWNLOAD_DIR
// Remove all files for a given directory
function cleanup_directory($directory)
{
- \Model\Config\debug('[CLEANUP] '.$directory);
+ Config\debug('[CLEANUP] '.$directory);
$dir = new DirectoryIterator($directory);
@@ -173,12 +174,12 @@ function find_archive_root($base_directory = AUTO_UPDATE_ARCHIVE_DIRECTORY)
}
if (empty($directory)) {
- \Model\Config\debug('[FIND ARCHIVE] No directory found');
+ Config\debug('[FIND ARCHIVE] No directory found');
return false;
}
$path = $base_directory.DIRECTORY_SEPARATOR.$directory;
- \Model\Config\debug('[FIND ARCHIVE] '.$path);
+ Config\debug('[FIND ARCHIVE] '.$path);
return $path;
}
diff --git a/models/config.php b/models/config.php
index 03698c0..bfbe939 100644
--- a/models/config.php
+++ b/models/config.php
@@ -2,6 +2,7 @@
namespace Model\Config;
+use Translator;
use DirectoryIterator;
use SimpleValidator\Validator;
use SimpleValidator\Validators;
@@ -309,7 +310,7 @@ function save(array $values)
{
// Update the password if needed
if (! empty($values['password'])) {
- $values['password'] = \password_hash($values['password'], PASSWORD_BCRYPT);
+ $values['password'] = password_hash($values['password'], PASSWORD_BCRYPT);
} else {
unset($values['password']);
}
@@ -333,7 +334,7 @@ function save(array $values)
function reload()
{
$_SESSION['config'] = get_all();
- \Translator\load(get('language'));
+ Translator\load(get('language'));
}
// Get the user agent of the connected user
diff --git a/models/database.php b/models/database.php
index e19e0f3..c345aeb 100644
--- a/models/database.php
+++ b/models/database.php
@@ -2,6 +2,9 @@
namespace Model\Database;
+use Schema;
+use DirectoryIterator;
+use Model\Config;
use SimpleValidator\Validator;
use SimpleValidator\Validators;
@@ -17,11 +20,11 @@ function create($filename, $username, $password)
'filename' => $filename,
));
- if ($db->schema()->check(\Model\Config\DB_VERSION)) {
+ if ($db->schema()->check(Schema\VERSION)) {
$db->table('config')->update(array(
'username' => $username,
- 'password' => \password_hash($password, PASSWORD_BCRYPT)
+ 'password' => password_hash($password, PASSWORD_BCRYPT)
));
return true;
@@ -49,7 +52,7 @@ function select($filename = '')
}
$_SESSION['database'] = $filename;
- $_SESSION['config'] = \Model\Config\get_all();
+ $_SESSION['config'] = Config\get_all();
}
}
else {
@@ -63,7 +66,7 @@ function select($filename = '')
// Get database path
function get_path()
{
- return DATA_DIRECTORY.DIRECTORY_SEPARATOR.\Model\Database\select();
+ return DATA_DIRECTORY.DIRECTORY_SEPARATOR.select();
}
// Get the list of available databases
@@ -71,7 +74,7 @@ function get_all()
{
$listing = array();
- $dir = new \DirectoryIterator(DATA_DIRECTORY);
+ $dir = new DirectoryIterator(DATA_DIRECTORY);
foreach ($dir as $fileinfo) {
if ($fileinfo->getExtension() === 'sqlite') {
diff --git a/models/remember_me.php b/models/remember_me.php
index 2591778..5a86b02 100644
--- a/models/remember_me.php
+++ b/models/remember_me.php
@@ -123,9 +123,6 @@ function remove($session_id)
*/
function destroy()
{
- // delete the cookie without any conditions!
- delete_cookie();
-
$credentials = read_cookie();
if ($credentials !== false) {
@@ -135,6 +132,8 @@ function destroy()
->eq('token', $credentials['token'])
->remove();
}
+
+ delete_cookie();
}
/**
diff --git a/models/user.php b/models/user.php
index 6b197bd..af25ef7 100644
--- a/models/user.php
+++ b/models/user.php
@@ -5,6 +5,7 @@ namespace Model\User;
use SimpleValidator\Validator;
use SimpleValidator\Validators;
use PicoDb\Database;
+use PicoFarad\Session;
use Model\Config;
use Model\RememberMe;
use Model\Database as DatabaseModel;
@@ -15,10 +16,11 @@ function is_loggedin()
return ! empty($_SESSION['user']);
}
+// Destroy the session and the rememberMe cookie
function logout()
{
- \Model\RememberMe\destroy();
- \PicoFarad\Session\close();
+ RememberMe\destroy();
+ Session\close();
}
// Get a user by username
@@ -47,7 +49,7 @@ function validate_login(array $values)
$user = get($values['username']);
- if ($user && \password_verify($values['password'], $user['password'])) {
+ if ($user && password_verify($values['password'], $user['password'])) {
unset($user['password']);
diff --git a/templates/login.php b/templates/login.php
index 2d1480e..f129b0e 100644
--- a/templates/login.php
+++ b/templates/login.php
@@ -31,27 +31,29 @@
= Helper\form_checkbox('remember_me', t('Remember Me'), 1) ?>
+ 1): ?>
+