From b8caf48d7d068cf8f34f450f48b68d41e692d518 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Thu, 22 Jan 2015 21:19:55 +0100 Subject: [PATCH 01/14] $medium should be a tinyint like defined in the database structure --- php/modules/Photo.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/php/modules/Photo.php b/php/modules/Photo.php index 3a54bdf..1dfdab4 100755 --- a/php/modules/Photo.php +++ b/php/modules/Photo.php @@ -123,7 +123,7 @@ class Photo extends Module { $photo_name = $exists['photo_name']; $path = $exists['path']; $path_thumb = $exists['path_thumb']; - $medium = ($exists['medium']==='1' ? true : false); + $medium = ($exists['medium']==='1' ? 1 : 0); $exists = true; } @@ -174,8 +174,8 @@ class Photo extends Module { } # Create Medium - if ($this->createMedium($path, $photo_name, $info['width'], $info['height'])) $medium = true; - else $medium = false; + if ($this->createMedium($path, $photo_name, $info['width'], $info['height'])) $medium = 1; + else $medium = 0; # Set thumb url $path_thumb = md5($id) . '.jpeg'; From 38a8e9840bc66894c09e919fa4a2addd7e896546 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Thu, 22 Jan 2015 21:24:20 +0100 Subject: [PATCH 02/14] Prevent warning of set_charset #291 --- php/modules/Database.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/php/modules/Database.php b/php/modules/Database.php index c7ae0b1..9a8b466 100755 --- a/php/modules/Database.php +++ b/php/modules/Database.php @@ -20,8 +20,8 @@ class Database extends Module { if ($database->connect_errno) exit('Error: ' . $database->connect_error); # Avoid sql injection on older MySQL versions by using GBK - if ($database->server_version<50500) $database->set_charset('GBK'); - else $database->set_charset('utf8'); + if ($database->server_version<50500) @$database->set_charset('GBK'); + else @$database->set_charset('utf8'); # Set unicode $database->query('SET NAMES utf8;'); From 9d472e2c4013d73b78cf4632d7a76f3331108be6 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Thu, 22 Jan 2015 21:29:05 +0100 Subject: [PATCH 03/14] Version push to v2.7.1 --- dist/main.js | Bin 169647 -> 169723 bytes dist/view.js | Bin 96760 -> 96836 bytes src/package.json | 2 +- src/scripts/lychee.js | 4 ++-- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/main.js b/dist/main.js index bd43b8563b5774a24e5a7719e9235d32083cb946..189ee16aab2aea28e171e882197850d97b4378dc 100644 GIT binary patch delta 14116 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

Qj_0uD)qzLQt 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", "license": "MIT", diff --git a/src/scripts/lychee.js b/src/scripts/lychee.js index 239e4c8..dd576f2 100644 --- a/src/scripts/lychee.js +++ b/src/scripts/lychee.js @@ -6,8 +6,8 @@ lychee = { title: '', - version: '2.7.0', - version_code: '020700', + version: '2.7.1', + version_code: '020701', api_path: 'php/api.php', update_path: 'http://lychee.electerious.com/version/index.php', From a42c9810a296547938e5e6ebd504360754d85ac6 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Thu, 22 Jan 2015 21:38:09 +0100 Subject: [PATCH 04/14] Updated changelog --- docs/Changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/Changelog.md b/docs/Changelog.md index 77457ae..62918d1 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -1,3 +1,10 @@ +## v2.7.1 + +Released January ?, 2015 + +- `Fixed` $medium is now a tinyint like defined in the database structure +- `Fixed` Prevented a warning caused by set_charset #291 + ## v2.7 Released December 6, 2014 From 7a3695e192a282f7bee33f84ec65e89897be862f Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Fri, 23 Jan 2015 20:50:21 +0100 Subject: [PATCH 05/14] Fixed creation of test db #295 --- php/modules/Database.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/php/modules/Database.php b/php/modules/Database.php index 9a8b466..430ebda 100755 --- a/php/modules/Database.php +++ b/php/modules/Database.php @@ -84,10 +84,9 @@ class Database extends Module { if (!$database->select_db($name)) { # Database doesn't exist - # Check if user can create a database - $result = $database->query('CREATE DATABASE lychee_dbcheck'); - if (!$result) return 'Warning: Creation failed!'; - else $database->query('DROP DATABASE lychee_dbcheck'); + # Check if user can create the database + $result = Database::createDatabase($database, $name); + if ($result===false) return 'Warning: Creation failed!'; } @@ -131,8 +130,8 @@ if(!defined('LYCHEE')) exit('Error: Direct access is not allowed!'); Module::dependencies(isset($database, $name)); # Create database - $result = $database->query("CREATE DATABASE IF NOT EXISTS $name;"); - $database->select_db($name); + $query = Database::prepare($database, 'CREATE DATABASE IF NOT EXISTS ?', array($name)); + $result = $database->query($query); if (!$database->select_db($name)||!$result) return false; return true; From 8a17fa970942127a8ce8e42cad251997b634a070 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Fri, 23 Jan 2015 20:50:52 +0100 Subject: [PATCH 06/14] Adjusted indention --- php/access/Installation.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/php/access/Installation.php b/php/access/Installation.php index 6049c42..9d10d9c 100644 --- a/php/access/Installation.php +++ b/php/access/Installation.php @@ -17,8 +17,8 @@ class Installation extends Access { case 'dbCreateConfig': $this->dbCreateConfig(); break; # Error - default: exit('Warning: No configuration!'); - return false; break; + default: exit('Warning: No configuration!'); + return false; break; } From 967c66b40a61224e015784a7ab3f5c1f2ca50949 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Fri, 23 Jan 2015 21:00:27 +0100 Subject: [PATCH 07/14] Auto login after installation --- php/modules/Session.php | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/php/modules/Session.php b/php/modules/Session.php index 70054d0..0f3f9b1 100755 --- a/php/modules/Session.php +++ b/php/modules/Session.php @@ -44,9 +44,13 @@ class Session extends Module { # Path to Lychee for the server-import dialog $return['config']['location'] = LYCHEE; - # No login - if ($this->settings['username']===''&&$this->settings['password']==='') $return['config']['login'] = false; - else $return['config']['login'] = true; + # Check if login credentials exist and login if they don't + if ($this->noLogin()===true) { + $public = false; + $return['config']['login'] = false; + } else { + $return['config']['login'] = true; + } if ($public===false) { @@ -109,6 +113,21 @@ class Session extends Module { } + private function noLogin() { + + # Check dependencies + self::dependencies(isset($this->settings)); + + # Check if login credentials exist and login if they don't + if ($this->settings['username']===''&&$this->settings['password']==='') { + $_SESSION['login'] = true; + return true; + } + + return false; + + } + public function logout() { # Call plugins From 0da75a6bca48238bce20b7a5c90210e14d2b1942 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Fri, 23 Jan 2015 21:19:21 +0100 Subject: [PATCH 08/14] Adjusted indention --- php/api.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/php/api.php b/php/api.php index 0c129d8..6e9813b 100755 --- a/php/api.php +++ b/php/api.php @@ -60,12 +60,12 @@ if (!empty($_POST['function'])||!empty($_GET['function'])) { # Validate parameters if (isset($_POST['albumIDs'])&&preg_match('/^[0-9\,]{1,}$/', $_POST['albumIDs'])!==1) exit('Error: Wrong parameter type for albumIDs!'); if (isset($_POST['photoIDs'])&&preg_match('/^[0-9\,]{1,}$/', $_POST['photoIDs'])!==1) exit('Error: Wrong parameter type for photoIDs!'); - if (isset($_POST['albumID'])&&preg_match('/^[0-9sfr]{1,}$/', $_POST['albumID'])!==1) exit('Error: Wrong parameter type for albumID!'); + if (isset($_POST['albumID'])&&preg_match('/^[0-9sfr]{1,}$/', $_POST['albumID'])!==1) exit('Error: Wrong parameter type for albumID!'); if (isset($_POST['photoID'])&&preg_match('/^[0-9]{14}$/', $_POST['photoID'])!==1) exit('Error: Wrong parameter type for photoID!'); # Function for switch statement - if (isset($_POST['function'])) $fn = $_POST['function']; - else $fn = $_GET['function']; + if (isset($_POST['function'])) $fn = $_POST['function']; + else $fn = $_GET['function']; if (isset($_SESSION['login'])&&$_SESSION['login']==true) { From 6b5e30c4439f2fa0687942f920b8ff0226a096f3 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Fri, 23 Jan 2015 21:41:32 +0100 Subject: [PATCH 09/14] Removed unused code --- php/modules/Import.php | 72 ++---------------------------------------- 1 file changed, 2 insertions(+), 70 deletions(-) diff --git a/php/modules/Import.php b/php/modules/Import.php index a38e23a..15de375 100644 --- a/php/modules/Import.php +++ b/php/modules/Import.php @@ -57,62 +57,7 @@ class Import extends Module { } - /*static function move($database, $path) { - - # Determine OS type and set move cmd (Windows untested!) - $myos = substr(PHP_OS,0,3); - $myos = strtoupper($myos); - - if ($myos==='WIN') $osmv = 'MOVE'; - else $osmv = 'mv'; - - # Generate tmp dir name by hashing epoch time & random number - $tmpdirname = md5(time() . rand()); - - # Make temporary directory - if (@mkdir(LYCHEE_DATA . $tmpdirname)===false) { - Log::error($database, __METHOD__, __LINE__, 'Failed to create temporary directory'); - return false; - } - - # Get list of files and move them to tmpdir - $files = glob($path . '*'); - if (isset($files)) { - - foreach ($files as $file) { - - # Prevent unsupported files from being moved - if (is_dir($file)===false&&@exif_imagetype($file)===false) continue; - - $out = ''; - $ret = ''; - $file = escapeshellarg($file); - $cmd = $osmv . " $file " . LYCHEE_DATA . $tmpdirname; - - @exec($cmd, $out, $ret); - - if (isset($ret)&&($ret>0)) Log::error($database, __METHOD__, __LINE__, "Failed to move directory or file ($ret):" . $file); - - } - - } - - # If no files could be copied to the temp dir, remove - $files = glob(LYCHEE_DATA . $tmpdirname . '/*'); - if (count($files)===0) { - rmdir(LYCHEE_DATA . $tmpdirname); - Log::error($database, __METHOD__, __LINE__, 'Import failed, because files could not be temporary moved to ' . LYCHEE_DATA); - return false; - } - - # Set new path - $path = LYCHEE_DATA . $tmpdirname; - - return $path; - - }*/ - - static function server($albumID = 0, $path, $useTemp = false) { + static function server($albumID = 0, $path) { global $database, $plugins, $settings; @@ -131,14 +76,6 @@ class Import extends Module { return 'Error: Given path is a reserved path of Lychee!'; } - /*if ($useTemp===true) { - $path = Import::move($database, $path); - if ($path===false) { - Log::error($database, __METHOD__, __LINE__, 'Failed to move import to temporary directory'); - return false; - } - }*/ - $error = false; $contains['photos'] = false; $contains['albums'] = false; @@ -182,7 +119,7 @@ class Import extends Module { continue; } - $import = Import::server($newAlbumID, $file . '/', false); + $import = Import::server($newAlbumID, $file . '/'); if ($import!==true&&$import!=='Notice: Import only contains albums!') { $error = true; @@ -194,11 +131,6 @@ class Import extends Module { } - # Delete tmpdir if import was successful - /*if ($error===false&&$useTemp===true&&file_exists(LYCHEE_DATA . $tmpdirname)) { - if (@rmdir(LYCHEE_DATA . $tmpdirname)===false) Log::error($database, __METHOD__, __LINE__, 'Could not delete temp-folder (' . LYCHEE_DATA . $tmpdirname . ') after successful import'); - }*/ - if ($contains['photos']===false&&$contains['albums']===false) return 'Warning: Folder empty or no readable files to process!'; if ($contains['photos']===false&&$contains['albums']===true) return 'Notice: Import only contains albums!'; return true; From 2024ccaf394be511e0dd81cc0a9ca0a3513404be Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Fri, 23 Jan 2015 21:52:19 +0100 Subject: [PATCH 10/14] Disallow import of the medium-folder --- php/modules/Import.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/php/modules/Import.php b/php/modules/Import.php index 15de375..c8313bb 100644 --- a/php/modules/Import.php +++ b/php/modules/Import.php @@ -71,9 +71,11 @@ class Import extends Module { } # Skip folders of Lychee - if ($path===LYCHEE_UPLOADS_BIG||($path . '/')===LYCHEE_UPLOADS_BIG||$path===LYCHEE_UPLOADS_THUMB||($path . '/')===LYCHEE_UPLOADS_THUMB) { - Log::error($database, __METHOD__, __LINE__, 'Given path is a reserved path of Lychee (' . $path . ')'); - return 'Error: Given path is a reserved path of Lychee!'; + if ($path===LYCHEE_UPLOADS_BIG||($path . '/')===LYCHEE_UPLOADS_BIG|| + $path===LYCHEE_UPLOADS_MEDIUM||($path . '/')===LYCHEE_UPLOADS_MEDIUM|| + $path===LYCHEE_UPLOADS_THUMB||($path . '/')===LYCHEE_UPLOADS_THUMB) { + Log::error($database, __METHOD__, __LINE__, 'The given path is a reserved path of Lychee (' . $path . ')'); + return 'Error: Given path is a reserved path of Lychee!'; } $error = false; From 5d5f86307e5eaf6614929e80afd6b427046938b8 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Fri, 23 Jan 2015 22:02:22 +0100 Subject: [PATCH 11/14] Removed redundant mysqli_real_escape_string #290 --- php/api.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/php/api.php b/php/api.php index 6e9813b..fa79b4a 100755 --- a/php/api.php +++ b/php/api.php @@ -54,8 +54,8 @@ if (!empty($_POST['function'])||!empty($_GET['function'])) { $plugins = new Plugins($plugins, $database, $settings); # Escape - foreach(array_keys($_POST) as $key) $_POST[$key] = mysqli_real_escape_string($database, urldecode($_POST[$key])); - foreach(array_keys($_GET) as $key) $_GET[$key] = mysqli_real_escape_string($database, urldecode($_GET[$key])); + foreach(array_keys($_POST) as $key) $_POST[$key] = urldecode($_POST[$key]); + foreach(array_keys($_GET) as $key) $_GET[$key] = urldecode($_GET[$key]); # Validate parameters if (isset($_POST['albumIDs'])&&preg_match('/^[0-9\,]{1,}$/', $_POST['albumIDs'])!==1) exit('Error: Wrong parameter type for albumIDs!'); From e8a1c1ea3041d8eba6dff24d6d8998ac4584d673 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Fri, 23 Jan 2015 22:17:15 +0100 Subject: [PATCH 12/14] Fixed incorrect size calculation of photos --- dist/main.js | Bin 169723 -> 169724 bytes src/scripts/photo.js | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/main.js b/dist/main.js index 189ee16aab2aea28e171e882197850d97b4378dc..5750e4646feb529ced1e6d807b00027f1adf2353 100644 GIT binary patch delta 26 icmeypmg~=2u7(!IEljIq*)mcy(=$r8ua{-=sRRI?DGIRw delta 25 hcmeyfmh1Ogu7(!IEljIqS<5q1N;0-@kY)0z1OSu{3RnOD diff --git a/src/scripts/photo.js b/src/scripts/photo.js index 6a6ae3c..ecd4fd8 100644 --- a/src/scripts/photo.js +++ b/src/scripts/photo.js @@ -566,7 +566,7 @@ photo.getSize = function() { // Detect if the photo will be shown scaled, // because the screen size is smaller than the photo if (photo.json.width>view.width|| - photo.json.width>view.height) scaled = true; + photo.json.height>view.height) scaled = true; // Calculate pixel ratio of screen if (pixelRatio!==undefined&&pixelRatio>1) { From 669906b276ce1bf13e3de84d9d78f298c1013db6 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Sun, 25 Jan 2015 16:21:27 +0100 Subject: [PATCH 13/14] Updated changelog --- docs/Changelog.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/Changelog.md b/docs/Changelog.md index 62918d1..34b29cf 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -2,8 +2,13 @@ Released January ?, 2015 +- `Improved` auto-login after first installation +- `Fixed` Disabled import of the medium-folder +- `Fixed` Error when using single apostrophe in text #290 - `Fixed` $medium is now a tinyint like defined in the database structure -- `Fixed` Prevented a warning caused by set_charset #291 +- `Fixed` incorrect height calculation for photos +- `Fixed` creation of test db #295 +- `Fixed` a warning caused by set_charset #291 ## v2.7 From 3db0846c2e0609f56b595df197d498eac870008a Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Mon, 26 Jan 2015 20:25:40 +0100 Subject: [PATCH 14/14] Updated changelog --- docs/Changelog.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Changelog.md b/docs/Changelog.md index 34b29cf..940790f 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -1,10 +1,10 @@ ## v2.7.1 -Released January ?, 2015 +Released January 26, 2015 - `Improved` auto-login after first installation - `Fixed` Disabled import of the medium-folder -- `Fixed` Error when using single apostrophe in text #290 +- `Fixed` error when using apostrophes in text #290 - `Fixed` $medium is now a tinyint like defined in the database structure - `Fixed` incorrect height calculation for photos - `Fixed` creation of test db #295