api.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. /**
  3. * @name api.php
  4. * @author Philipp Maurer
  5. * @author Tobias Reich
  6. * @copyright 2013 by Philipp Maurer, Tobias Reich
  7. */
  8. if (floatval(phpversion())<5.2) die('Please upgrade to PHP 5.2 or higher!');
  9. if (!empty($_POST['function'])||!empty($_GET['function'])) {
  10. session_start();
  11. define('LYCHEE', true);
  12. require('config.php');
  13. require('functions.php');
  14. // Security
  15. if (isset($_POST['albumID'])&&($_POST['albumID']==''||$_POST['albumID']<0)) exit('Wrong parameter type for albumID!');
  16. if (isset($_POST['photoID'])&&$_POST['photoID']=='') exit('Wrong parameter type for photoID!');
  17. //Connect to DB
  18. $database = dbConnect();
  19. if (isset($_SESSION['login'])&&$_SESSION['login']==true) {
  20. /**
  21. * Admin Mode
  22. * Full access to Lychee. Only with correct password.
  23. */
  24. // Album Functions
  25. if ($_POST['function']=='getAlbums') echo json_encode(getAlbums(false));
  26. if ($_POST['function']=='getSmartInfo') echo json_encode(getSmartInfo());
  27. if ($_POST['function']=='getAlbum'&&isset($_POST['albumID'])) echo json_encode(getAlbum($_POST['albumID']));
  28. if ($_POST['function']=='addAlbum'&&isset($_POST['title'])) echo addAlbum($_POST['title']);
  29. if ($_POST['function']=='setAlbumTitle'&&isset($_POST['albumID'])&&isset($_POST['title'])) echo setAlbumTitle($_POST['albumID'], $_POST['title']);
  30. if ($_POST['function']=='setAlbumPublic'&&isset($_POST['albumID'])) echo setAlbumPublic($_POST['albumID'], $_POST['password']);
  31. if ($_POST['function']=='setAlbumPassword'&&isset($_POST['albumID'])&&isset($_POST['password'])) echo setAlbumPassword($_POST['albumID'], $_POST['password']);
  32. if ($_POST['function']=='deleteAlbum'&&isset($_POST['albumID'])&&isset($_POST['delAll'])) echo deleteAlbum($_POST['albumID'], $_POST['delAll']);
  33. if (isset($_GET['function'])&&$_GET['function']=='getAlbumArchive'&&isset($_GET['albumID'])) getAlbumArchive($_GET['albumID']);
  34. // Photo Functions
  35. if ($_POST['function']=='getPhoto'&&isset($_POST['photoID'])&&isset($_POST['albumID'])) echo json_encode(getPhoto($_POST['photoID'], $_POST['albumID']));
  36. if ($_POST['function']=='deletePhoto'&&isset($_POST['photoID'])) echo deletePhoto($_POST['photoID']);
  37. if ($_POST['function']=='setAlbum'&&isset($_POST['photoID'])&&isset($_POST['albumID'])) echo setAlbum($_POST['photoID'], $_POST['albumID']);
  38. if ($_POST['function']=='setPhotoTitle'&&isset($_POST['photoID'])&&isset($_POST['title'])) echo setPhotoTitle($_POST['photoID'], $_POST['title']);
  39. if ($_POST['function']=='setPhotoStar'&&isset($_POST['photoID'])) echo setPhotoStar($_POST['photoID']);
  40. if ($_POST['function']=='setPhotoPublic'&&isset($_POST['photoID'])&&isset($_POST['url'])) echo setPhotoPublic($_POST['photoID'], $_POST['url']);
  41. if ($_POST['function']=='setPhotoDescription'&&isset($_POST['photoID'])&&isset($_POST['description'])) echo setPhotoDescription($_POST['photoID'], $_POST['description']);
  42. // Add Function
  43. if ($_POST['function']=='upload'&&isset($_FILES)&&isset($_POST['albumID'])) echo upload($_FILES, $_POST['albumID']);
  44. if ($_POST['function']=='importUrl'&&isset($_POST['url'])&&isset($_POST['albumID'])) echo importUrl($_POST['url'], $_POST['albumID']);
  45. // Search Function
  46. if ($_POST['function']=='search'&&isset($_POST['term'])) echo json_encode(search($_POST['term']));
  47. // Session Functions
  48. if ($_POST['function']=='init') echo json_encode(init('admin'));
  49. if ($_POST['function']=='login') echo login($_POST['user'], $_POST['password']);
  50. if ($_POST['function']=='logout') logout();
  51. } else {
  52. /**
  53. * Public Mode
  54. * Access to view all public folders and photos in Lychee.
  55. */
  56. // Album Functions
  57. if ($_POST['function']=='getAlbums') echo json_encode(getAlbums(true));
  58. if ($_POST['function']=='getAlbum'&&isset($_POST['albumID'])&&isset($_POST['password'])) {
  59. if (isAlbumPublic($_POST['albumID'])) {
  60. // Album Public
  61. if (checkAlbumPassword($_POST['albumID'], $_POST['password'])) echo json_encode(getAlbum($_POST['albumID']));
  62. else echo json_encode('HTTP/1.1 403 Wrong password!');
  63. } else {
  64. // Album Private
  65. echo json_encode('HTTP/1.1 403 Album private!');
  66. }
  67. }
  68. if ($_POST['function']=='checkAlbumAccess'&&isset($_POST['albumID'])&&isset($_POST['password'])) {
  69. if (isAlbumPublic($_POST['albumID'])) {
  70. // Album Public
  71. if (checkAlbumPassword($_POST['albumID'], $_POST['password'])) echo true;
  72. else echo false;
  73. } else {
  74. // Album Private
  75. echo false;
  76. }
  77. }
  78. // Photo Functions
  79. if ($_POST['function']=='getPhoto'&&isset($_POST['photoID'])&&isset($_POST['albumID'])&&isset($_POST['password'])) {
  80. if (isPhotoPublic($_POST['photoID'], $_POST['password'])) echo json_encode(getPhoto($_POST['photoID'], $_POST['albumID']));
  81. else echo json_encode('HTTP/1.1 403 Wrong password!');
  82. }
  83. // Session Functions
  84. if ($_POST['function']=='init') echo json_encode(init('public'));
  85. if ($_POST['function']=='login') echo login($_POST['user'], $_POST['password']);
  86. }
  87. } else {
  88. header('HTTP/1.1 401 Unauthorized');
  89. die('Error: No permission!');
  90. }
  91. ?>