Make sure all ajax calls properly redirect to login page when required
This commit is contained in:
		
							parent
							
								
									4577aa5e16
								
							
						
					
					
						commit
						d593369c14
					
				| 
						 | 
					@ -2,7 +2,20 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require '../header.php';
 | 
					require '../header.php';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require_login();
 | 
					$validated = require_login();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$data = array();
 | 
				
			||||||
 | 
					$data["error"] = false;
 | 
				
			||||||
 | 
					$data["message"] = "";
 | 
				
			||||||
 | 
					$data["validated"] = $validated;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ( !$validated ) {
 | 
				
			||||||
 | 
					    $data["error"] = true;
 | 
				
			||||||
 | 
					    $data["message"] = "Clients must validate accounts";
 | 
				
			||||||
 | 
					    header('Content-Type: application/json');
 | 
				
			||||||
 | 
					    echo json_encode($data);
 | 
				
			||||||
 | 
					    exit();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# usort function for sorting by array's "mtime"
 | 
					# usort function for sorting by array's "mtime"
 | 
				
			||||||
# Return 1 or -1 in reverse order so newest is first
 | 
					# Return 1 or -1 in reverse order so newest is first
 | 
				
			||||||
| 
						 | 
					@ -36,7 +49,6 @@ while ( $row = $sth->fetch(PDO::FETCH_ASSOC) ) {
 | 
				
			||||||
    if ( !in_array($row['issue'], $issues_read) ) $issues_read[] = $row['issue'];
 | 
					    if ( !in_array($row['issue'], $issues_read) ) $issues_read[] = $row['issue'];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$data = array();
 | 
					 | 
				
			||||||
$folders = array();
 | 
					$folders = array();
 | 
				
			||||||
$issues = array();
 | 
					$issues = array();
 | 
				
			||||||
$entries = scandir($fullcompath);
 | 
					$entries = scandir($fullcompath);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,20 @@
 | 
				
			||||||
<?php
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require '../header.php';
 | 
					require '../header.php';
 | 
				
			||||||
require_login();
 | 
					$validated = require_login(NOREDIRECT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$data = array();
 | 
					$data = array();
 | 
				
			||||||
 | 
					$data["error"] = false;
 | 
				
			||||||
 | 
					$data["message"] = "";
 | 
				
			||||||
 | 
					$data["validated"] = $validated;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ( !$validated ) {
 | 
				
			||||||
 | 
					    $data["error"] = true;
 | 
				
			||||||
 | 
					    $data["message"] = "Clients must validate accounts";
 | 
				
			||||||
 | 
					    header('Content-Type: application/json');
 | 
				
			||||||
 | 
					    echo json_encode($data);
 | 
				
			||||||
 | 
					    exit();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if ( !isset($_REQUEST['page']) ) {
 | 
					if ( !isset($_REQUEST['page']) ) {
 | 
				
			||||||
   exit();
 | 
					   exit();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,13 +2,22 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require "../header.php";
 | 
					require "../header.php";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require_login();
 | 
					$validated = require_login(NOREDIRECT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if ( !isset($_REQUEST['path']) ) exit();
 | 
					if ( !isset($_REQUEST['path']) ) exit();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$data = array();
 | 
					$data = array();
 | 
				
			||||||
$data["error"] = false;
 | 
					$data["error"] = false;
 | 
				
			||||||
$data["message"] = "";
 | 
					$data["message"] = "";
 | 
				
			||||||
 | 
					$data["validated"] = $validated;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ( !$validated ) {
 | 
				
			||||||
 | 
					    $data["error"] = true;
 | 
				
			||||||
 | 
					    $data["message"] = "Clients must validate accounts";
 | 
				
			||||||
 | 
					    header('Content-Type: application/json');
 | 
				
			||||||
 | 
					    echo json_encode($data);
 | 
				
			||||||
 | 
					    exit();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$newpath = urldecode($_REQUEST['path']);
 | 
					$newpath = urldecode($_REQUEST['path']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,20 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require '../header.php';
 | 
					require '../header.php';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require_login();
 | 
					$validated = require_login(NOREDIRECT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$data = array();
 | 
				
			||||||
 | 
					$data["error"] = false;
 | 
				
			||||||
 | 
					$data["message"] = "";
 | 
				
			||||||
 | 
					$data["validated"] = $validated;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ( !$validated ) {
 | 
				
			||||||
 | 
					    $data["error"] = true;
 | 
				
			||||||
 | 
					    $data["message"] = "Clients must validate accounts";
 | 
				
			||||||
 | 
					    header('Content-Type: application/json');
 | 
				
			||||||
 | 
					    echo json_encode($data);
 | 
				
			||||||
 | 
					    exit();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if ( isset($_REQUEST['comic']) ) {
 | 
					if ( isset($_REQUEST['comic']) ) {
 | 
				
			||||||
   $comicfull = realpath(COMICSDIR . base64_decode(urldecode($_REQUEST['comic'])));
 | 
					   $comicfull = realpath(COMICSDIR . base64_decode(urldecode($_REQUEST['comic'])));
 | 
				
			||||||
| 
						 | 
					@ -18,8 +31,6 @@ if ( isset($_REQUEST['comic']) ) {
 | 
				
			||||||
$ext = strtolower(substr($comicfull, -3));
 | 
					$ext = strtolower(substr($comicfull, -3));
 | 
				
			||||||
$_SESSION['comfile'] = basename($comicfull);
 | 
					$_SESSION['comfile'] = basename($comicfull);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$data = array();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Get the current page for this comic or 0 (zero) if never opened
 | 
					// Get the current page for this comic or 0 (zero) if never opened
 | 
				
			||||||
$query = "SELECT currentpage FROM pagetracker WHERE username=:username AND issue=:issue";
 | 
					$query = "SELECT currentpage FROM pagetracker WHERE username=:username AND issue=:issue";
 | 
				
			||||||
$fields = array();
 | 
					$fields = array();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,15 +5,20 @@
 | 
				
			||||||
// user login is required. Feel free to change the logic between
 | 
					// user login is required. Feel free to change the logic between
 | 
				
			||||||
// the lines indicated below.
 | 
					// the lines indicated below.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
function require_login () {
 | 
					define("NOREDIRECT", false);
 | 
				
			||||||
   if ( !$_SESSION['validated'] ) {
 | 
					function require_login ($redirect = true) {
 | 
				
			||||||
 | 
					   if ( !is_bool($redirect) ) exit();
 | 
				
			||||||
 | 
					   if ( !$_SESSION['validated'] && $redirect ) {
 | 
				
			||||||
      //                         ******** START OF AUTH LOGIC ********
 | 
					      //                         ******** START OF AUTH LOGIC ********
 | 
				
			||||||
      $_SESSION['appurl'] = $_SERVER['REQUEST_URI'];
 | 
					      $_SESSION['appurl'] = $_SERVER['REQUEST_URI'];
 | 
				
			||||||
      header('Location: /jajauth/login.php');
 | 
					      header('Location: /jajauth/login.php');
 | 
				
			||||||
      exit();
 | 
					      exit();
 | 
				
			||||||
      //                         ********* END OF AUTH LOGIC *********
 | 
					      //                         ********* END OF AUTH LOGIC *********
 | 
				
			||||||
 | 
					   } elseif ( !$_SESSION['validated'] && !$redirect ) {
 | 
				
			||||||
 | 
					      return false;
 | 
				
			||||||
 | 
					   } elseif ( $_SESSION['validated'] ) {
 | 
				
			||||||
 | 
					      return true;
 | 
				
			||||||
   }
 | 
					   }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// vim: set ts=3 sw=3:
 | 
				
			||||||
?>
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,6 +10,11 @@ $(document).ready(function() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var lightbox = null;
 | 
					var lightbox = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function redirectToLogin() {
 | 
				
			||||||
 | 
					   console.log("Redirecting for login...");
 | 
				
			||||||
 | 
					   window.location.replace("index.php");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function getFolderContents() {
 | 
					function getFolderContents() {
 | 
				
			||||||
   $("#list").html("");
 | 
					   $("#list").html("");
 | 
				
			||||||
   toastr.info("Loading folder contents. Comics containing a large number of issues, or issues with a large number of pages, that have not been opened recently may take some time to load. Thank you for your patience!", "Loading Contents...", {timeOut: 15000});
 | 
					   toastr.info("Loading folder contents. Comics containing a large number of issues, or issues with a large number of pages, that have not been opened recently may take some time to load. Thank you for your patience!", "Loading Contents...", {timeOut: 15000});
 | 
				
			||||||
| 
						 | 
					@ -17,6 +22,7 @@ function getFolderContents() {
 | 
				
			||||||
      url      : 'ajax/getfoldercontents.php',
 | 
					      url      : 'ajax/getfoldercontents.php',
 | 
				
			||||||
      dataType : 'json',
 | 
					      dataType : 'json',
 | 
				
			||||||
      success  : function(data, stat, jqo) {
 | 
					      success  : function(data, stat, jqo) {
 | 
				
			||||||
 | 
					                    if ( !data.validated ) redirectToLogin();
 | 
				
			||||||
                    curpath = data.compath;
 | 
					                    curpath = data.compath;
 | 
				
			||||||
                    updatePathNavigator();
 | 
					                    updatePathNavigator();
 | 
				
			||||||
                    data.contents.forEach(function(entry, index) {
 | 
					                    data.contents.forEach(function(entry, index) {
 | 
				
			||||||
| 
						 | 
					@ -48,6 +54,7 @@ function changeFolder(name, path) {
 | 
				
			||||||
      dataType : 'json',
 | 
					      dataType : 'json',
 | 
				
			||||||
      success  : function(data, stat, jqo) {
 | 
					      success  : function(data, stat, jqo) {
 | 
				
			||||||
                    console.log(data.message);
 | 
					                    console.log(data.message);
 | 
				
			||||||
 | 
					                    if ( !data.validated ) redirectToLogin();
 | 
				
			||||||
                    curpath = path;
 | 
					                    curpath = path;
 | 
				
			||||||
                    parentpath = data.parentpath;
 | 
					                    parentpath = data.parentpath;
 | 
				
			||||||
                    foldername = data.foldername;
 | 
					                    foldername = data.foldername;
 | 
				
			||||||
| 
						 | 
					@ -63,6 +70,7 @@ function updateCurrentPage() {
 | 
				
			||||||
      data     : {page: currentPage},
 | 
					      data     : {page: currentPage},
 | 
				
			||||||
      dataType : 'json',
 | 
					      dataType : 'json',
 | 
				
			||||||
      success  : function(data, stat, jqo) {
 | 
					      success  : function(data, stat, jqo) {
 | 
				
			||||||
 | 
					                    if ( !data.validated ) redirectToLogin();
 | 
				
			||||||
                    console.log(data.message);
 | 
					                    console.log(data.message);
 | 
				
			||||||
                 }
 | 
					                 }
 | 
				
			||||||
   });
 | 
					   });
 | 
				
			||||||
| 
						 | 
					@ -82,6 +90,7 @@ function showComic(comic, name) {
 | 
				
			||||||
      data     : {comic: comic},
 | 
					      data     : {comic: comic},
 | 
				
			||||||
      dataType : 'json',
 | 
					      dataType : 'json',
 | 
				
			||||||
      success  : function(data, stat, jqo) {
 | 
					      success  : function(data, stat, jqo) {
 | 
				
			||||||
 | 
					                    if ( !data.validated ) redirectToLogin();
 | 
				
			||||||
                    // Clear out the debug DIV and start the fancybox.
 | 
					                    // Clear out the debug DIV and start the fancybox.
 | 
				
			||||||
                    $("#debug").html("");
 | 
					                    $("#debug").html("");
 | 
				
			||||||
                    lightbox = SimpleLightbox.open({
 | 
					                    lightbox = SimpleLightbox.open({
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user