api.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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']=='addAlbum'&&isset($_POST['title'])) echo addAlbum($_POST['title']);
  28. if ($_POST['function']=='getAlbumInfo'&&isset($_POST['albumID'])) echo json_encode(getAlbumInfo($_POST['albumID']));
  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']);
  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']=='getPhotos'&&isset($_POST['albumID'])) echo json_encode(getPhotos($_POST['albumID']));
  36. if ($_POST['function']=='getPhotoInfo'&&isset($_POST['photoID'])) echo json_encode(getPhotoInfo($_POST['photoID']));
  37. if ($_POST['function']=='getShortlink'&&isset($_POST['photoID'])) echo getShortlink($_POST['photoID']);
  38. if ($_POST['function']=='setAlbum'&&isset($_POST['photoID'])&&isset($_POST['albumID'])) echo setAlbum($_POST['photoID'], $_POST['albumID']);
  39. if ($_POST['function']=='deletePhoto'&&isset($_POST['photoID'])) echo deletePhoto($_POST['photoID']);
  40. if ($_POST['function']=='setPhotoTitle'&&isset($_POST['photoID'])&&isset($_POST['title'])) echo setPhotoTitle($_POST['photoID'], $_POST['title']);
  41. if ($_POST['function']=='setPhotoStar'&&isset($_POST['photoID'])) echo setPhotoStar($_POST['photoID']);
  42. if ($_POST['function']=='setPhotoPublic'&&isset($_POST['photoID'])&&isset($_POST['url'])) echo setPhotoPublic($_POST['photoID'], $_POST['url']);
  43. if ($_POST['function']=='setPhotoDescription'&&isset($_POST['photoID'])&&isset($_POST['description'])) echo setPhotoDescription($_POST['photoID'], $_POST['description']);
  44. if ($_POST['function']=='previousPhoto'&&isset($_POST['photoID'])&&isset($_POST['albumID'])) echo json_encode(previousPhoto($_POST['photoID'], $_POST['albumID'], false));
  45. if ($_POST['function']=='nextPhoto'&&isset($_POST['photoID'])&&isset($_POST['albumID'])) echo json_encode(nextPhoto($_POST['photoID'], $_POST['albumID'], false));
  46. // Add Function
  47. if ($_POST['function']=='upload'&&isset($_FILES)&&isset($_POST['albumID'])) echo upload($_FILES, $_POST['albumID']);
  48. if ($_POST['function']=='importUrl'&&isset($_POST['url'])&&isset($_POST['albumID'])) echo importUrl($_POST['url'], $_POST['albumID']);
  49. // Search Function
  50. if ($_POST['function']=='search'&&isset($_POST['term'])) echo json_encode(search($_POST['term']));
  51. // Session Functions
  52. if ($_POST['function']=='init') echo json_encode(init('admin'));
  53. if ($_POST['function']=='login') echo login($_POST['user'], $_POST['password']);
  54. if ($_POST['function']=='logout') logout();
  55. } else {
  56. /**
  57. * Public Mode
  58. * Access to view all public folders and photos in Lychee.
  59. */
  60. // Album Functions
  61. if ($_POST['function']=='getAlbums') echo json_encode(getAlbums(true));
  62. if ($_POST['function']=='getAlbumInfo'&&isset($_POST['albumID'])&&isset($_POST['password'])&&isAlbumPublic($_POST['albumID'], $_POST['password'])) echo json_encode(getAlbumInfo($_POST['albumID']));
  63. // Photo Functions
  64. if ($_POST['function']=='getPhotos') {
  65. if (isset($_POST['albumID'])&&isset($_POST['password'])&&isAlbumPublic($_POST['albumID'], $_POST['password'])) echo json_encode(getPhotos($_POST['albumID']));
  66. else echo json_encode('HTTP/1.1 403 Wrong password!');
  67. }
  68. if ($_POST['function']=='getPhotoInfo') {
  69. if (isset($_POST['photoID'])&&isset($_POST['password'])&&isPhotoPublic($_POST['photoID'], $_POST['password'])) echo json_encode(getPhotoInfo($_POST['photoID']));
  70. else echo json_encode('HTTP/1.1 403 Wrong password!');
  71. }
  72. if ($_POST['function']=='previousPhoto'&&isset($_POST['photoID'])&&isset($_POST['albumID'])) echo json_encode(previousPhoto($_POST['photoID'], $_POST['albumID'], false));
  73. if ($_POST['function']=='nextPhoto'&&isset($_POST['photoID'])&&isset($_POST['albumID'])) echo json_encode(nextPhoto($_POST['photoID'], $_POST['albumID'], false));
  74. // Session Functions
  75. if ($_POST['function']=='init') echo json_encode(init('public'));
  76. if ($_POST['function']=='login') echo login($_POST['user'], $_POST['password']);
  77. }
  78. } else {
  79. header('HTTP/1.1 401 Unauthorized');
  80. die('Error: No permission!');
  81. }
  82. ?>