password.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /**
  2. * @description Controls the access to password-protected albums and photos.
  3. * @copyright 2014 by Tobias Reich
  4. */
  5. password = {}
  6. password.value = '';
  7. password.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. password.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. }