API separated into areas
This commit is contained in:
parent
e0b8375e28
commit
ec196c52d3
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -1,3 +0,0 @@
|
|||||||
[submodule "php/FeedWriter"]
|
|
||||||
path = php/FeedWriter
|
|
||||||
url = git@github.com:mibe/FeedWriter.git
|
|
@ -200,7 +200,7 @@ photo = {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
params = "setAlbum&photoIDs=" + photoIDs + "&albumID=" + albumID;
|
params = "setPhotoAlbum&photoIDs=" + photoIDs + "&albumID=" + albumID;
|
||||||
lychee.api(params, function(data) {
|
lychee.api(params, function(data) {
|
||||||
|
|
||||||
if (data!==true) lychee.error(null, params, data);
|
if (data!==true) lychee.error(null, params, data);
|
||||||
@ -355,7 +355,7 @@ photo = {
|
|||||||
album.json.content[id].tags = tags;
|
album.json.content[id].tags = tags;
|
||||||
});
|
});
|
||||||
|
|
||||||
params = "setTags&photoIDs=" + photoIDs + "&tags=" + tags;
|
params = "setPhotoTags&photoIDs=" + photoIDs + "&tags=" + tags;
|
||||||
lychee.api(params, function(data) {
|
lychee.api(params, function(data) {
|
||||||
|
|
||||||
if (data!==true) lychee.error(null, params, data);
|
if (data!==true) lychee.error(null, params, data);
|
||||||
|
@ -1 +0,0 @@
|
|||||||
Subproject commit 8b801e96326606d0360c0549f913f099df10ed67
|
|
155
php/access/admin.php
Normal file
155
php/access/admin.php
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Admin Access
|
||||||
|
* @author Tobias Reich
|
||||||
|
* @copyright 2014 by Tobias Reich
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('LYCHEE')) exit('Error: Direct access is not allowed!');
|
||||||
|
if (!defined('LYCHEE_ACCESS_ADMIN')) exit('Error: You are not allowed to access this area!');
|
||||||
|
|
||||||
|
switch ($_POST['function']) {
|
||||||
|
|
||||||
|
// Album Functions
|
||||||
|
|
||||||
|
case 'getAlbums': echo json_encode(getAlbums(false));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'getAlbum': if (isset($_POST['albumID']))
|
||||||
|
echo json_encode(getAlbum($_POST['albumID']));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'addAlbum': if (isset($_POST['title']))
|
||||||
|
echo addAlbum($_POST['title']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'setAlbumTitle': if (isset($_POST['albumIDs'])&&isset($_POST['title']))
|
||||||
|
echo setAlbumTitle($_POST['albumIDs'], $_POST['title']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'setAlbumDescription': if (isset($_POST['albumID'])&&isset($_POST['description']))
|
||||||
|
echo setAlbumDescription($_POST['albumID'], $_POST['description']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'setAlbumPublic': if (isset($_POST['albumID']))
|
||||||
|
if (!isset($_POST['password'])) $_POST['password'] = '';
|
||||||
|
echo setAlbumPublic($_POST['albumID'], $_POST['password']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'setAlbumPassword': if (isset($_POST['albumID'])&&isset($_POST['password']))
|
||||||
|
echo setAlbumPassword($_POST['albumID'], $_POST['password']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'deleteAlbum': if (isset($_POST['albumIDs']))
|
||||||
|
echo deleteAlbum($_POST['albumIDs']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Photo Functions
|
||||||
|
|
||||||
|
case 'getPhoto': if (isset($_POST['photoID'])&&isset($_POST['albumID']))
|
||||||
|
echo json_encode(getPhoto($_POST['photoID'], $_POST['albumID']));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'deletePhoto': if (isset($_POST['photoIDs']))
|
||||||
|
echo deletePhoto($_POST['photoIDs']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'setPhotoAlbum': if (isset($_POST['photoIDs'])&&isset($_POST['albumID']))
|
||||||
|
echo setPhotoAlbum($_POST['photoIDs'], $_POST['albumID']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'setPhotoTitle': if (isset($_POST['photoIDs'])&&isset($_POST['title']))
|
||||||
|
echo setPhotoTitle($_POST['photoIDs'], $_POST['title']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'setPhotoStar': if (isset($_POST['photoIDs']))
|
||||||
|
echo setPhotoStar($_POST['photoIDs']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'setPhotoPublic': if (isset($_POST['photoID'])&&isset($_POST['url']))
|
||||||
|
echo setPhotoPublic($_POST['photoID'], $_POST['url']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'setPhotoDescription': if (isset($_POST['photoID'])&&isset($_POST['description']))
|
||||||
|
echo setPhotoDescription($_POST['photoID'], $_POST['description']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'setPhotoTags': if (isset($_POST['photoIDs'])&&isset($_POST['tags']))
|
||||||
|
echo setPhotoTags($_POST['photoIDs'], $_POST['tags']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Add Functions
|
||||||
|
|
||||||
|
case 'upload': if (isset($_FILES)&&isset($_POST['albumID']))
|
||||||
|
echo upload($_FILES, $_POST['albumID']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'importUrl': if (isset($_POST['url'])&&isset($_POST['albumID']))
|
||||||
|
echo importUrl($_POST['url'], $_POST['albumID']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'importServer': if (isset($_POST['albumID']))
|
||||||
|
echo importServer($_POST['albumID']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Search Function
|
||||||
|
|
||||||
|
case 'search': if (isset($_POST['term']))
|
||||||
|
echo json_encode(search($_POST['term']));
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Session Function
|
||||||
|
|
||||||
|
case 'init': echo json_encode(init('admin'));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'login': if (isset($_POST['user'])&&isset($_POST['password']))
|
||||||
|
echo login($_POST['user'], $_POST['password']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'logout': logout();
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
|
||||||
|
case 'setLogin': if (isset($_POST['username'])&&isset($_POST['password']))
|
||||||
|
if (!isset($_POST['oldPassword'])) $_POST['oldPassword'] = '';
|
||||||
|
echo setLogin($_POST['oldPassword'], $_POST['username'], $_POST['password']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'setSorting': if (isset($_POST['type'])&&isset($_POST['order']))
|
||||||
|
echo setSorting($_POST['type'], $_POST['order']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
|
||||||
|
case 'update': echo update();
|
||||||
|
|
||||||
|
default: switch ($_GET['function']) {
|
||||||
|
|
||||||
|
case 'getFeed': if (isset($_GET['albumID']))
|
||||||
|
echo getFeed($_GET['albumID']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'getAlbumArchive': if (isset($_GET['albumID']))
|
||||||
|
getAlbumArchive($_GET['albumID']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'getPhotoArchive': if (isset($_GET['photoID']))
|
||||||
|
getPhotoArchive($_GET['photoID']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'update': echo update();
|
||||||
|
break;
|
||||||
|
|
||||||
|
default: exit('Error: Function not found! Please check the spelling of the called function.');
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
126
php/access/guest.php
Normal file
126
php/access/guest.php
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Guest Access (Public Mode)
|
||||||
|
* @author Tobias Reich
|
||||||
|
* @copyright 2014 by Tobias Reich
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('LYCHEE')) exit('Error: Direct access is not allowed!');
|
||||||
|
if (!defined('LYCHEE_ACCESS_GUEST')) exit('Error: You are not allowed to access this area!');
|
||||||
|
|
||||||
|
switch ($_POST['function']) {
|
||||||
|
|
||||||
|
// Album Functions
|
||||||
|
|
||||||
|
case 'getAlbums': echo json_encode(getAlbums(true));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'getAlbum': if (isset($_POST['albumID'])&&isset($_POST['password'])) {
|
||||||
|
if (isAlbumPublic($_POST['albumID'])) {
|
||||||
|
// Album Public
|
||||||
|
if (checkAlbumPassword($_POST['albumID'], $_POST['password']))
|
||||||
|
echo json_encode(getAlbum($_POST['albumID']));
|
||||||
|
else
|
||||||
|
echo 'Warning: Wrong password!';
|
||||||
|
} else {
|
||||||
|
// Album Private
|
||||||
|
echo 'Warning: Album private!';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'checkAlbumAccess':if (isset($_POST['albumID'])&&isset($_POST['password'])) {
|
||||||
|
if (isAlbumPublic($_POST['albumID'])) {
|
||||||
|
// Album Public
|
||||||
|
if (checkAlbumPassword($_POST['albumID'], $_POST['password']))
|
||||||
|
echo true;
|
||||||
|
else
|
||||||
|
echo false;
|
||||||
|
} else {
|
||||||
|
// Album Private
|
||||||
|
echo false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Photo Functions
|
||||||
|
|
||||||
|
case 'getPhoto': if (isset($_POST['photoID'])&&isset($_POST['albumID'])&&isset($_POST['password'])) {
|
||||||
|
if (isPhotoPublic($_POST['photoID'], $_POST['password']))
|
||||||
|
echo json_encode(getPhoto($_POST['photoID'], $_POST['albumID']));
|
||||||
|
else
|
||||||
|
echo 'Warning: Wrong password!';
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Session Functions
|
||||||
|
|
||||||
|
case 'init': echo json_encode(init('public'));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'login': if (isset($_POST['user'])&&isset($_POST['password']))
|
||||||
|
echo login($_POST['user'], $_POST['password']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
|
||||||
|
default: switch ($_GET['function']) {
|
||||||
|
|
||||||
|
case 'getFeed': if (isset($_GET['albumID'])&&isset($_GET['password'])) {
|
||||||
|
|
||||||
|
// Album Feed
|
||||||
|
if (isAlbumPublic($_GET['albumID'])) {
|
||||||
|
// Album Public
|
||||||
|
if (checkAlbumPassword($_GET['albumID'], $_GET['password']))
|
||||||
|
echo getFeed($_GET['albumID']);
|
||||||
|
else
|
||||||
|
exit('Warning: Wrong password!');
|
||||||
|
} else {
|
||||||
|
// Album Private
|
||||||
|
exit('Warning: Album private!');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'getAlbumArchive': if (isset($_GET['albumID'])&&isset($_GET['password'])) {
|
||||||
|
|
||||||
|
// Album Download
|
||||||
|
if (isAlbumPublic($_GET['albumID'])) {
|
||||||
|
// Album Public
|
||||||
|
if (checkAlbumPassword($_GET['albumID'], $_GET['password']))
|
||||||
|
getAlbumArchive($_GET['albumID']);
|
||||||
|
else
|
||||||
|
exit('Warning: Wrong password!');
|
||||||
|
} else {
|
||||||
|
// Album Private
|
||||||
|
exit('Warning: Album private or not downloadable!');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'getPhotoArchive': if (isset($_GET['photoID'])&&isset($_GET['password'])) {
|
||||||
|
|
||||||
|
// Photo Download
|
||||||
|
if (isPhotoPublic($_GET['photoID'], $_GET['password']))
|
||||||
|
// Photo Public
|
||||||
|
getPhotoArchive($_GET['photoID']);
|
||||||
|
else
|
||||||
|
// Photo Private
|
||||||
|
exit('Warning: Photo private or not downloadable!');
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default: exit('Error: Function not found! Please check the spelling of the called function.');
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
23
php/access/installation.php
Normal file
23
php/access/installation.php
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Installation Access
|
||||||
|
* @author Tobias Reich
|
||||||
|
* @copyright 2014 by Tobias Reich
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('LYCHEE')) exit('Error: Direct access is not allowed!');
|
||||||
|
if (!defined('LYCHEE_ACCESS_INSTALLATION')) exit('Error: You are not allowed to access this area!');
|
||||||
|
|
||||||
|
switch ($_POST['function']) {
|
||||||
|
|
||||||
|
case 'dbCreateConfig': if (isset($_POST['dbHost'])&&isset($_POST['dbUser'])&&isset($_POST['dbPassword'])&&isset($_POST['dbName']))
|
||||||
|
echo dbCreateConfig($_POST['dbHost'], $_POST['dbUser'], $_POST['dbPassword'], $_POST['dbName']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default: echo 'Warning: No configuration!';
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
294
php/api.php
294
php/api.php
@ -3,7 +3,7 @@
|
|||||||
/**
|
/**
|
||||||
* @name API
|
* @name API
|
||||||
* @author Tobias Reich
|
* @author Tobias Reich
|
||||||
* @copyright 2014 by Philipp Maurer, Tobias Reich
|
* @copyright 2014 by Tobias Reich
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ini_set('max_execution_time', '200');
|
@ini_set('max_execution_time', '200');
|
||||||
@ -16,305 +16,69 @@ if (!empty($_POST['function'])||!empty($_GET['function'])) {
|
|||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
define('LYCHEE', true);
|
define('LYCHEE', true);
|
||||||
|
date_default_timezone_set('UTC');
|
||||||
|
|
||||||
|
// Load modules
|
||||||
|
require('modules/album.php');
|
||||||
require('modules/db.php');
|
require('modules/db.php');
|
||||||
|
require('modules/feed.php');
|
||||||
|
require('modules/misc.php');
|
||||||
|
require('modules/photo.php');
|
||||||
require('modules/session.php');
|
require('modules/session.php');
|
||||||
require('modules/settings.php');
|
require('modules/settings.php');
|
||||||
require('modules/upload.php');
|
require('modules/upload.php');
|
||||||
require('modules/album.php');
|
|
||||||
require('modules/photo.php');
|
|
||||||
require('modules/tags.php');
|
|
||||||
require('modules/misc.php');
|
|
||||||
|
|
||||||
if (file_exists('../data/config.php')) require('../data/config.php');
|
if (file_exists('../data/config.php')) require('../data/config.php');
|
||||||
else {
|
else {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Installation Mode
|
* Installation Access
|
||||||
* Limited access to configure Lychee. Only available when the config.php file is missing.
|
* Limited access to configure Lychee. Only available when the config.php file is missing.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
switch ($_POST['function']) {
|
define('LYCHEE_ACCESS_INSTALLATION', true);
|
||||||
|
require('access/installation.php');
|
||||||
case 'dbCreateConfig': if (isset($_POST['dbHost'])&&isset($_POST['dbUser'])&&isset($_POST['dbPassword'])&&isset($_POST['dbName']))
|
|
||||||
echo dbCreateConfig($_POST['dbHost'], $_POST['dbUser'], $_POST['dbPassword'], $_POST['dbName']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default: echo 'Warning: No configuration!';
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
exit();
|
exit();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Connect to DB
|
// Connect and get settings
|
||||||
$database = dbConnect();
|
$database = dbConnect();
|
||||||
|
|
||||||
// Get Settings
|
|
||||||
$settings = getSettings();
|
$settings = getSettings();
|
||||||
|
|
||||||
// Escape
|
// Escape
|
||||||
foreach(array_keys($_POST) as $key) $_POST[$key] = mysqli_real_escape_string($database, urldecode($_POST[$key]));
|
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($_GET) as $key) $_GET[$key] = mysqli_real_escape_string($database, urldecode($_GET[$key]));
|
||||||
|
|
||||||
// Validate parameters
|
// Validate parameters
|
||||||
if (isset($_POST['albumIDs'])&&preg_match('/^[0-9\,]{1,}$/', $_POST['albumIDs'])!==1) exit('Error: Wrong parameter type for albumIDs!');
|
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['photoIDs'])&&preg_match('/^[0-9\,]{1,}$/', $_POST['photoIDs'])!==1) exit('Error: Wrong parameter type for photoIDs!');
|
||||||
if (isset($_POST['albumID'])&&preg_match('/^[0-9sf]{1,}$/', $_POST['albumID'])!==1) exit('Error: Wrong parameter type for albumID!');
|
if (isset($_POST['albumID'])&&preg_match('/^[0-9sf]{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!');
|
if (isset($_POST['photoID'])&&preg_match('/^[0-9]{14}$/', $_POST['photoID'])!==1) exit('Error: Wrong parameter type for photoID!');
|
||||||
|
|
||||||
|
// Fallback for switch statement
|
||||||
|
if (!isset($_POST['function'])) $_POST['function'] = '';
|
||||||
|
if (!isset($_GET['function'])) $_GET['function'] = '';
|
||||||
|
|
||||||
if (isset($_SESSION['login'])&&$_SESSION['login']==true) {
|
if (isset($_SESSION['login'])&&$_SESSION['login']==true) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Admin Mode
|
* Admin Access
|
||||||
* Full access to Lychee. Only with correct password/session.
|
* Full access to Lychee. Only with correct password/session.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
switch ($_POST['function']) {
|
define('LYCHEE_ACCESS_ADMIN', true);
|
||||||
|
require('access/admin.php');
|
||||||
// Album Functions
|
|
||||||
|
|
||||||
case 'getAlbums': echo json_encode(getAlbums(false));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'getAlbum': if (isset($_POST['albumID']))
|
|
||||||
echo json_encode(getAlbum($_POST['albumID']));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'addAlbum': if (isset($_POST['title']))
|
|
||||||
echo addAlbum($_POST['title']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'setAlbumTitle': if (isset($_POST['albumIDs'])&&isset($_POST['title']))
|
|
||||||
echo setAlbumTitle($_POST['albumIDs'], $_POST['title']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'setAlbumDescription': if (isset($_POST['albumID'])&&isset($_POST['description']))
|
|
||||||
echo setAlbumDescription($_POST['albumID'], $_POST['description']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'setAlbumPublic': if (isset($_POST['albumID']))
|
|
||||||
if (!isset($_POST['password'])) $_POST['password'] = '';
|
|
||||||
echo setAlbumPublic($_POST['albumID'], $_POST['password']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'setAlbumPassword':if (isset($_POST['albumID'])&&isset($_POST['password']))
|
|
||||||
echo setAlbumPassword($_POST['albumID'], $_POST['password']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'deleteAlbum': if (isset($_POST['albumIDs']))
|
|
||||||
echo deleteAlbum($_POST['albumIDs']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Photo Functions
|
|
||||||
|
|
||||||
case 'getPhoto': if (isset($_POST['photoID'])&&isset($_POST['albumID']))
|
|
||||||
echo json_encode(getPhoto($_POST['photoID'], $_POST['albumID']));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'deletePhoto': if (isset($_POST['photoIDs']))
|
|
||||||
echo deletePhoto($_POST['photoIDs']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'setAlbum': if (isset($_POST['photoIDs'])&&isset($_POST['albumID']))
|
|
||||||
echo setAlbum($_POST['photoIDs'], $_POST['albumID']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'setPhotoTitle': if (isset($_POST['photoIDs'])&&isset($_POST['title']))
|
|
||||||
echo setPhotoTitle($_POST['photoIDs'], $_POST['title']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'setPhotoStar': if (isset($_POST['photoIDs']))
|
|
||||||
echo setPhotoStar($_POST['photoIDs']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'setPhotoPublic': if (isset($_POST['photoID'])&&isset($_POST['url']))
|
|
||||||
echo setPhotoPublic($_POST['photoID'], $_POST['url']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'setPhotoDescription': if (isset($_POST['photoID'])&&isset($_POST['description']))
|
|
||||||
echo setPhotoDescription($_POST['photoID'], $_POST['description']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Add Functions
|
|
||||||
|
|
||||||
case 'upload': if (isset($_FILES)&&isset($_POST['albumID']))
|
|
||||||
echo upload($_FILES, $_POST['albumID']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'importUrl': if (isset($_POST['url'])&&isset($_POST['albumID']))
|
|
||||||
echo importUrl($_POST['url'], $_POST['albumID']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'importServer': if (isset($_POST['albumID']))
|
|
||||||
echo importServer($_POST['albumID']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Search Function
|
|
||||||
|
|
||||||
case 'search': if (isset($_POST['term']))
|
|
||||||
echo json_encode(search($_POST['term']));
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Tag Functions
|
|
||||||
|
|
||||||
case 'getTags': if (isset($_POST['photoID']))
|
|
||||||
echo json_encode(getTags($_POST['photoID']));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'setTags': if (isset($_POST['photoIDs'])&&isset($_POST['tags']))
|
|
||||||
echo setTags($_POST['photoIDs'], $_POST['tags']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Session Function
|
|
||||||
|
|
||||||
case 'init': echo json_encode(init('admin'));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'login': if (isset($_POST['user'])&&isset($_POST['password']))
|
|
||||||
echo login($_POST['user'], $_POST['password']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'logout': logout();
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Settings
|
|
||||||
|
|
||||||
case 'setLogin': if (isset($_POST['username'])&&isset($_POST['password']))
|
|
||||||
if (!isset($_POST['oldPassword'])) $_POST['oldPassword'] = '';
|
|
||||||
echo setLogin($_POST['oldPassword'], $_POST['username'], $_POST['password']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'setSorting': if (isset($_POST['type'])&&isset($_POST['order']))
|
|
||||||
echo setSorting($_POST['type'], $_POST['order']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Miscellaneous
|
|
||||||
|
|
||||||
case 'update': echo update();
|
|
||||||
|
|
||||||
default: if (isset($_GET['function'])&&$_GET['function']=='getAlbumArchive'&&isset($_GET['albumID']))
|
|
||||||
|
|
||||||
// Album Download
|
|
||||||
getAlbumArchive($_GET['albumID']);
|
|
||||||
|
|
||||||
else if (isset($_GET['function'])&&$_GET['function']=='getPhotoArchive'&&isset($_GET['photoID']))
|
|
||||||
|
|
||||||
// Photo Download
|
|
||||||
getPhotoArchive($_GET['photoID']);
|
|
||||||
|
|
||||||
else if (isset($_GET['function'])&&$_GET['function']=='update')
|
|
||||||
|
|
||||||
// Update Lychee
|
|
||||||
echo update();
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
// Function unknown
|
|
||||||
exit('Error: Function not found! Please check the spelling of the called function.');
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Public Mode
|
* Guest Access
|
||||||
* Access to view all public folders and photos in Lychee.
|
* Access to view all public folders and photos in Lychee.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
switch ($_POST['function']) {
|
define('LYCHEE_ACCESS_GUEST', true);
|
||||||
|
require('access/guest.php');
|
||||||
// Album Functions
|
|
||||||
|
|
||||||
case 'getAlbums': echo json_encode(getAlbums(true));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'getAlbum': if (isset($_POST['albumID'])&&isset($_POST['password'])) {
|
|
||||||
if (isAlbumPublic($_POST['albumID'])) {
|
|
||||||
// Album Public
|
|
||||||
if (checkAlbumPassword($_POST['albumID'], $_POST['password']))
|
|
||||||
echo json_encode(getAlbum($_POST['albumID']));
|
|
||||||
else
|
|
||||||
echo 'Warning: Wrong password!';
|
|
||||||
} else {
|
|
||||||
// Album Private
|
|
||||||
echo 'Warning: Album private!';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'checkAlbumAccess':if (isset($_POST['albumID'])&&isset($_POST['password'])) {
|
|
||||||
if (isAlbumPublic($_POST['albumID'])) {
|
|
||||||
// Album Public
|
|
||||||
if (checkAlbumPassword($_POST['albumID'], $_POST['password']))
|
|
||||||
echo true;
|
|
||||||
else
|
|
||||||
echo false;
|
|
||||||
} else {
|
|
||||||
// Album Private
|
|
||||||
echo false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Photo Functions
|
|
||||||
|
|
||||||
case 'getPhoto': if (isset($_POST['photoID'])&&isset($_POST['albumID'])&&isset($_POST['password'])) {
|
|
||||||
if (isPhotoPublic($_POST['photoID'], $_POST['password']))
|
|
||||||
echo json_encode(getPhoto($_POST['photoID'], $_POST['albumID']));
|
|
||||||
else
|
|
||||||
echo 'Warning: Wrong password!';
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Session Functions
|
|
||||||
|
|
||||||
case 'init': echo json_encode(init('public'));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'login': if (isset($_POST['user'])&&isset($_POST['password']))
|
|
||||||
echo login($_POST['user'], $_POST['password']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Miscellaneous
|
|
||||||
|
|
||||||
default: if (isset($_GET['function'])&&$_GET['function']=='getAlbumArchive'&&isset($_GET['albumID'])&&isset($_GET['password'])) {
|
|
||||||
|
|
||||||
// Album Download
|
|
||||||
if (isAlbumPublic($_GET['albumID'])) {
|
|
||||||
// Album Public
|
|
||||||
if (checkAlbumPassword($_GET['albumID'], $_GET['password']))
|
|
||||||
getAlbumArchive($_GET['albumID']);
|
|
||||||
else
|
|
||||||
exit('Warning: Wrong password!');
|
|
||||||
} else {
|
|
||||||
// Album Private
|
|
||||||
exit('Warning: Album private or not downloadable!');
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (isset($_GET['function'])&&$_GET['function']=='getPhotoArchive'&&isset($_GET['photoID'])&&isset($_GET['password'])) {
|
|
||||||
|
|
||||||
// Photo Download
|
|
||||||
if (isPhotoPublic($_GET['photoID'], $_GET['password']))
|
|
||||||
// Photo Public
|
|
||||||
getPhotoArchive($_GET['photoID']);
|
|
||||||
else
|
|
||||||
// Photo Private
|
|
||||||
exit('Warning: Photo private or not downloadable!');
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
// Function unknown
|
|
||||||
exit('Error: Function not found! Please check the spelling of the called function.');
|
|
||||||
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ function setPhotoStar($photoIDs) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function setAlbum($photoIDs, $albumID) {
|
function setPhotoAlbum($photoIDs, $albumID) {
|
||||||
|
|
||||||
global $database;
|
global $database;
|
||||||
|
|
||||||
@ -129,6 +129,23 @@ function setPhotoDescription($photoID, $description) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setPhotoTags($photoIDs, $tags) {
|
||||||
|
|
||||||
|
global $database;
|
||||||
|
|
||||||
|
// Parse tags
|
||||||
|
$tags = preg_replace('/(\ ,\ )|(\ ,)|(,\ )|(,{1,}\ {0,})|(,$|^,)/', ',', $tags);
|
||||||
|
$tags = preg_replace('/,$|^,/', ',', $tags);
|
||||||
|
|
||||||
|
if (strlen($tags)>1000) return false;
|
||||||
|
|
||||||
|
$result = $database->query("UPDATE lychee_photos SET tags = '$tags' WHERE id IN ($photoIDs);");
|
||||||
|
|
||||||
|
if (!$result) return false;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function deletePhoto($photoIDs) {
|
function deletePhoto($photoIDs) {
|
||||||
|
|
||||||
global $database;
|
global $database;
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @name Album Module
|
|
||||||
* @author Tobias Reich
|
|
||||||
* @copyright 2014 by Philipp Maurer, Tobias Reich
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (!defined('LYCHEE')) exit('Error: Direct access is not allowed!');
|
|
||||||
|
|
||||||
function getTags($photoID) {
|
|
||||||
|
|
||||||
global $database;
|
|
||||||
|
|
||||||
$result = $database->query("SELECT tags FROM lychee_photos WHERE id = '$photoID';");
|
|
||||||
$return = $result->fetch_array();
|
|
||||||
|
|
||||||
if (!$result) return false;
|
|
||||||
return $return;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function setTags($photoIDs, $tags) {
|
|
||||||
|
|
||||||
global $database;
|
|
||||||
|
|
||||||
// Parse tags
|
|
||||||
$tags = preg_replace('/(\ ,\ )|(\ ,)|(,\ )|(,{1,}\ {0,})|(,$|^,)/', ',', $tags);
|
|
||||||
$tags = preg_replace('/,$|^,/', ',', $tags);
|
|
||||||
|
|
||||||
if (strlen($tags)>1000) return false;
|
|
||||||
|
|
||||||
$result = $database->query("UPDATE lychee_photos SET tags = '$tags' WHERE id IN ($photoIDs);");
|
|
||||||
|
|
||||||
if (!$result) return false;
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user