password.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /**
  2. * @description Controls the access to password-protected albums and photos.
  3. * @copyright 2014 by Tobias Reich
  4. */
  5. password = {
  6. value: "",
  7. get: function(albumID, callback) {
  8. var passwd = $(".message input.text").val(),
  9. params;
  10. if (!lychee.publicMode) callback();
  11. else if (album.json&&album.json.password==false) callback();
  12. else if (albums.json&&albums.json.content[albumID].password==false) callback();
  13. else if (!albums.json&&!album.json) {
  14. // Continue without password
  15. album.json = {password: true};
  16. callback("");
  17. } else if (passwd==undefined) {
  18. // Request password
  19. password.getDialog(albumID, callback);
  20. } else {
  21. // Check password
  22. params = "checkAlbumAccess&albumID=" + albumID + "&password=" + md5(passwd);
  23. lychee.api(params, function(data) {
  24. if (data===true) {
  25. password.value = md5(passwd);
  26. callback();
  27. } else {
  28. lychee.goto("");
  29. loadingBar.show("error", "Access denied. Wrong password!");
  30. }
  31. });
  32. }
  33. },
  34. getDialog: function(albumID, callback) {
  35. var buttons;
  36. buttons = [
  37. ["Enter", function() { password.get(albumID, callback) }],
  38. ["Cancel", lychee.goto]
  39. ];
  40. modal.show("<a class='icon-lock'></a> Enter Password", "This album is protected by a password. Enter the password below to view the photos of this album: <input class='text' type='password' placeholder='password' value=''>", buttons, -110, false);
  41. }
  42. };