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. }
  8. password.get = function(albumID, callback) {
  9. var passwd = $('.message input.text').val(),
  10. params;
  11. if (!lychee.publicMode) callback();
  12. else if (album.json&&album.json.password==false) callback();
  13. else if (albums.json&&albums.json.content[albumID].password==false) callback();
  14. else if (!albums.json&&!album.json) {
  15. // Continue without password
  16. album.json = {password: true};
  17. callback('');
  18. } else if (passwd==undefined) {
  19. // Request password
  20. password.getDialog(albumID, callback);
  21. } else {
  22. // Check password
  23. params = 'checkAlbumAccess&albumID=' + albumID + '&password=' + md5(passwd);
  24. lychee.api(params, function(data) {
  25. if (data===true) {
  26. password.value = md5(passwd);
  27. callback();
  28. } else {
  29. lychee.goto('');
  30. loadingBar.show('error', 'Access denied. Wrong password!');
  31. }
  32. });
  33. }
  34. }
  35. password.getDialog = function(albumID, callback) {
  36. var buttons;
  37. buttons = [
  38. ['Enter', function() { password.get(albumID, callback) }],
  39. ['Cancel', lychee.goto]
  40. ];
  41. 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);
  42. }