Catch ajax calls when session has expired and redirect to login
This commit is contained in:
		
							parent
							
								
									44420c8ad7
								
							
						
					
					
						commit
						516bc6bfa9
					
				| 
						 | 
				
			
			@ -4,14 +4,23 @@ require '../header.php';
 | 
			
		|||
require '../variables.php';
 | 
			
		||||
require '../functions.php';
 | 
			
		||||
 | 
			
		||||
require_login();
 | 
			
		||||
$validated = require_login(NOREDIRECT);
 | 
			
		||||
 | 
			
		||||
function sendResponse($data) {
 | 
			
		||||
   header('Content-Type: application/json');
 | 
			
		||||
   echo json_encode($data);
 | 
			
		||||
   exit();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$data = array();
 | 
			
		||||
$data['validated'] = $validated;
 | 
			
		||||
$data['bookdir'] = $_SESSION['bookdir'];
 | 
			
		||||
$data['bookdirname'] = basename($_SESSION['bookdir']);
 | 
			
		||||
$data['kindlemail'] = "";
 | 
			
		||||
$cankindle = false;
 | 
			
		||||
 | 
			
		||||
if ( !$validated ) sendResponse($data);
 | 
			
		||||
 | 
			
		||||
$searching = false;
 | 
			
		||||
$searchfor = "";
 | 
			
		||||
if ( isset($_REQUEST['search']) && ($_REQUEST['search'] != "") ) {
 | 
			
		||||
| 
						 | 
				
			
			@ -99,8 +108,6 @@ if ( !$searching ) {
 | 
			
		|||
   }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
header('Content-Type: application/json');
 | 
			
		||||
echo json_encode($data);
 | 
			
		||||
exit();
 | 
			
		||||
sendResponse($data);
 | 
			
		||||
 | 
			
		||||
// vim: ts=3 sw=3 et:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,11 +11,20 @@ use PHPMailer\PHPMailer\Exception;
 | 
			
		|||
 | 
			
		||||
require "../vendor/autoload.php";
 | 
			
		||||
 | 
			
		||||
require_login();
 | 
			
		||||
$validated = require_login(NOREDIRECT);
 | 
			
		||||
 | 
			
		||||
function sendResponse($data) {
 | 
			
		||||
   header('Content-Type: application/json');
 | 
			
		||||
   echo json_encode($data);
 | 
			
		||||
   exit();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$data = array();
 | 
			
		||||
$data['validated'] = $validated;
 | 
			
		||||
$data["message"] = "";
 | 
			
		||||
 | 
			
		||||
if ( !$validated ) sendResponse($data);
 | 
			
		||||
 | 
			
		||||
$query = "SELECT email FROM amazon WHERE username=:username";
 | 
			
		||||
$fields = array();
 | 
			
		||||
$fields[':username'] = $_SESSION['username'];
 | 
			
		||||
| 
						 | 
				
			
			@ -26,9 +35,7 @@ if ( $row = $sth->fetch() ) {
 | 
			
		|||
} else {
 | 
			
		||||
   $data["success"] = false;
 | 
			
		||||
   $data["message"] = "No kindle address set";
 | 
			
		||||
   header('Content-Type: application/json');
 | 
			
		||||
   echo json_encode($data);
 | 
			
		||||
   exit();
 | 
			
		||||
   sendResponse($data);
 | 
			
		||||
}
 | 
			
		||||
$data["tomail"] = $kindlemail;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -52,9 +59,7 @@ if ( isset($_REQUEST['fileid']) ) {
 | 
			
		|||
if ( !$goodtodown ) {
 | 
			
		||||
   $data["success"] = false;
 | 
			
		||||
   $data["message"] = "Book not found on disk";
 | 
			
		||||
   header('Content-Type: application/json');
 | 
			
		||||
   echo json_encode($data);
 | 
			
		||||
   exit();
 | 
			
		||||
   sendResponse($data);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$mail = new PHPMailer();
 | 
			
		||||
| 
						 | 
				
			
			@ -89,8 +94,6 @@ $data['filename'] = $filename;
 | 
			
		|||
$data['tomail'] = $kindlemail;
 | 
			
		||||
$data['success'] = $sent;
 | 
			
		||||
 | 
			
		||||
header('Content-Type: application/json');
 | 
			
		||||
echo json_encode($data);
 | 
			
		||||
exit();
 | 
			
		||||
sendResponse($data);
 | 
			
		||||
 | 
			
		||||
// vim: ts=3 sw=3 et:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,23 +4,28 @@ require '../header.php';
 | 
			
		|||
require '../variables.php';
 | 
			
		||||
require '../functions.php';
 | 
			
		||||
 | 
			
		||||
require_login();
 | 
			
		||||
$validated = require_login(NOREDIRECT);
 | 
			
		||||
 | 
			
		||||
if ( !isset($_REQUEST['kindlemail']) ) {
 | 
			
		||||
function sendResponse($data) {
 | 
			
		||||
   header('Content-Type: application/json');
 | 
			
		||||
   echo json_encode($data);
 | 
			
		||||
   exit();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$data = array();
 | 
			
		||||
$data['validated'] = $validated;
 | 
			
		||||
$data['success'] = true;
 | 
			
		||||
$data['message'] = "";
 | 
			
		||||
$data['kindlemail'] = "";
 | 
			
		||||
 | 
			
		||||
if ( !$validated ) sendResponse($data);
 | 
			
		||||
 | 
			
		||||
if ( !isset($_REQUEST['kindlemail']) ) sendResponse($data);
 | 
			
		||||
 | 
			
		||||
if ( !filter_var($_REQUEST['kindlemail'], FILTER_VALIDATE_EMAIL) ) {
 | 
			
		||||
   $data['success'] = false;
 | 
			
		||||
   $data['message'] = "Email address is not properly formatted!";
 | 
			
		||||
   header('Content-Type: application/json');
 | 
			
		||||
   echo json_encode($data);
 | 
			
		||||
   exit();
 | 
			
		||||
   sendResponse($data);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$kindlemail = $_REQUEST['kindlemail'];
 | 
			
		||||
| 
						 | 
				
			
			@ -30,10 +35,8 @@ $sth->bindValue(":username", $_SESSION['username'], PDO::PARAM_STR);
 | 
			
		|||
$sth->bindValue(":email", $_REQUEST['kindlemail'], PDO::PARAM_STR);
 | 
			
		||||
$sth->execute();
 | 
			
		||||
 | 
			
		||||
header('Content-Type: application/json');
 | 
			
		||||
$data['message'] = "Email set successfully";
 | 
			
		||||
$data['kindlemail'] = $_REQUEST['kindlemail'];
 | 
			
		||||
echo json_encode($data);
 | 
			
		||||
exit();
 | 
			
		||||
sendResponse($data);
 | 
			
		||||
 | 
			
		||||
// vim: ts=3 sw=3 et:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,10 +4,19 @@ require '../header.php';
 | 
			
		|||
require '../variables.php';
 | 
			
		||||
require '../functions.php';
 | 
			
		||||
 | 
			
		||||
require_login();
 | 
			
		||||
$validated = require_login(NOREDIRECT);
 | 
			
		||||
 | 
			
		||||
$data = array();
 | 
			
		||||
$data['changed'] = false;
 | 
			
		||||
$data['validated'] = $validated;
 | 
			
		||||
 | 
			
		||||
function sendResponse($data) {
 | 
			
		||||
   header('Content-Type: application/json');
 | 
			
		||||
   echo json_encode($data);
 | 
			
		||||
   exit();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if ( !$validated ) sendResponse($data);
 | 
			
		||||
 | 
			
		||||
if ( isset($_REQUEST['newpath']) ) {
 | 
			
		||||
   $newpath = makePathSafe($_REQUEST['newpath']);
 | 
			
		||||
| 
						 | 
				
			
			@ -20,8 +29,6 @@ if ( isset($_REQUEST['newpath']) ) {
 | 
			
		|||
$data['bookdir'] = $_SESSION['bookdir'];
 | 
			
		||||
$data['bookdirname'] = basename($_SESSION['bookdir']);
 | 
			
		||||
 | 
			
		||||
header('Content-Type: application/json');
 | 
			
		||||
echo json_encode($data);
 | 
			
		||||
exit();
 | 
			
		||||
sendResponse($data);
 | 
			
		||||
 | 
			
		||||
// vim: ts=3 sw=3 et:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,12 +5,20 @@
 | 
			
		|||
// user login is required. Feel free to change the logic between
 | 
			
		||||
// the lines indicated below.
 | 
			
		||||
//
 | 
			
		||||
function require_login () {
 | 
			
		||||
   if ( !$_SESSION['validated'] ) {
 | 
			
		||||
define("NOREDIRECT", false);
 | 
			
		||||
function require_login ($redirect = true) {
 | 
			
		||||
   if ( !is_bool($redirect) ) exit();
 | 
			
		||||
   if ( !$_SESSION['validated'] && $redirect ) {
 | 
			
		||||
      //                         ******** START OF AUTH LOGIC ********
 | 
			
		||||
      $_SESSION['appurl'] = $_SERVER['REQUEST_URI'];
 | 
			
		||||
      header('Location: /jajauth/login.php');
 | 
			
		||||
      exit();
 | 
			
		||||
      //                         ********* END OF AUTH LOGIC *********
 | 
			
		||||
   } elseif ( !$_SESSION['validated'] && !$redirect ) {
 | 
			
		||||
      return false;
 | 
			
		||||
   } elseif ( $_SESSION['validated'] ) {
 | 
			
		||||
      return true;
 | 
			
		||||
   }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// vim: set ts=3 sw=3:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,6 +42,11 @@ function showKindleMail() {
 | 
			
		|||
   $("#amazonlink").html("KindleMail: " + ((kindlemail != "") ? kindlemail : "Click to Set"));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function redirectToLogin() {
 | 
			
		||||
   console.log("Redirecting for login...");
 | 
			
		||||
   window.location.replace("index.php");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getContents() {
 | 
			
		||||
   if ( searchTimeout ) clearTimeout(searchTimeout);
 | 
			
		||||
   $.ajax({
 | 
			
		||||
| 
						 | 
				
			
			@ -49,6 +54,7 @@ function getContents() {
 | 
			
		|||
      data     : {search: $("#search").val()},
 | 
			
		||||
      dataType : 'json',
 | 
			
		||||
      success  : function(data, stat, jqo) {
 | 
			
		||||
                    if ( data.validated == false ) redirectToLogin();
 | 
			
		||||
                    if ( data.kindlemail != kindlemail ) {
 | 
			
		||||
                       kindlemail = data.kindlemail;
 | 
			
		||||
                       showKindleMail();
 | 
			
		||||
| 
						 | 
				
			
			@ -96,6 +102,7 @@ function setPath(newpath) {
 | 
			
		|||
      data: {newpath: newpath},
 | 
			
		||||
      dataType: 'json',
 | 
			
		||||
      success: function(data, stat, jqo) {
 | 
			
		||||
         if ( data.validated == false ) redirectToLogin();
 | 
			
		||||
         if ( data.changed == true ) {
 | 
			
		||||
            $("#search").val("");
 | 
			
		||||
            getContents();
 | 
			
		||||
| 
						 | 
				
			
			@ -110,6 +117,7 @@ function setKindleMail(email) {
 | 
			
		|||
      data: {kindlemail: email},
 | 
			
		||||
      dataType: 'json',
 | 
			
		||||
      success: function(data, stat, jqo) {
 | 
			
		||||
         if ( data.validated == false ) redirectToLogin();
 | 
			
		||||
         if ( data.success == false ) {
 | 
			
		||||
            var myToast = $.toast({
 | 
			
		||||
               text : "<h3><strong>Error: Invalid Email Address</strong></h3>",
 | 
			
		||||
| 
						 | 
				
			
			@ -154,6 +162,7 @@ function sendToKindle(fileid, filename) {
 | 
			
		|||
      data     : {fileid: fileid},
 | 
			
		||||
      dataType : 'json',
 | 
			
		||||
      success  : function(data, stat, jqo) {
 | 
			
		||||
                    if ( data.validated == false ) redirectToLogin();
 | 
			
		||||
                    myToast.reset();
 | 
			
		||||
                    var message = "";
 | 
			
		||||
                    message = "<h3><strong>Sent File:</strong> " + data.filename + "</h3>";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user