Skip to content
Snippets Groups Projects
Select Git revision
  • f33d9b8a534dbb9df622ae6644fadb8febe77ad3
  • pre-2.1b default protected
  • pre-2.1
  • pre-2.0
  • testTag
  • pre2.1b
6 results

adminHandler.php

Blame
  • adminHandler.php 2.82 KiB
    <?php
    // Dans un premier temps, on va vérifier que l'utilisateur est connecté
    // Puis on va vérifier qu'il a bien le droit d'être ici
    
    if (!isset($_SESSION["user_id"]) && $urlPath[2]!="login") { // Si l'utilisateur n'est pas connecté
    
    	// On check que la page actuelle n'est pas la page de login, mais également que le panel n'est pas en train de traiter une connexion
        if (basename($_SERVER['PHP_SELF'])!="login.php" && !isset($sessionData) && !isset($sessionData['error'])) { 
            // On le renvoie vers la page de connexion
            //header("Location: https://vbcms.net/manager/login?from=".urlencode("$http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])); // Gestionnaire de licence vbcms.net
    		header("Location: ".$url["scheme"]."://".$url["host"]."/vbcms-admin/login?from=".urlencode("$http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']));
        }
    } elseif(!isset($_SESSION["user_id"]) && $urlPath[2]=="login"){ // Redirection vers la page de connexion
    	include $GLOBALS['vbcmsRootPath']."/vbcms-admin/login.php";
    } else {
    	// On va vérifier qu'il a accès au panel admin
    
    	if ($_SESSION['accessAdmin']!= 1){
    		session_destroy(); // On détruit la session
    		// Le message d'erreur sera à changer, je ne l'ai pas encore fait car je dois refaire le drm
    		header("Location: ".$url["scheme"]."://".$url["host"]."/vbcms-admin/login?err=403");
    		exit(); // Pour être sûr qu'il n'y ai pas de problèmes
    	}
    
    	// On inclu les scripts de fond des modules activés
    
    	// NOTE : On pourrait le faire en instanciant la classe module
    	$response = $bdd->query("SELECT * FROM `vbcms-activatedExtensions` WHERE type='module'");
    	$response = $response->fetchAll(PDO::FETCH_ASSOC);
    	if (!empty($response)) {
    		foreach ($response as $module) {
    			if(file_exists($GLOBALS['vbcmsRootPath'].'/vbcms-content/extensions/'.$module["path"]."/back.php"))
    				include $GLOBALS['vbcmsRootPath'].'/vbcms-content/extensions/'.$module["path"]."/back.php";
    		}
    	}
    
    
    	// On inclue les associations de page admin
    	require_once 'adminPagesAssoc.php';
    
    	// Maintenant on va vérifier la présence du chemin demandé dans cette page d'associations
    	if (array_key_exists($urlPath[2], $adminPagesAssoc)) {
    		if($adminPagesAssoc[$urlPath[2]]!="") // On évite "" même si adminPagesAssoc renvoie un lien vide
    			include $GLOBALS['vbcmsRootPath']."/vbcms-admin/".$adminPagesAssoc[$urlPath[2]]; // Charge la page admin
    			// On a pas de page 404 pour les inclusions menant à rien du tout, on considère qu'elle doivent toujours mener à quelque chsoe
    	} else {
    		// Si le chemin demandé n'y est pas, alors on va appeler le module qui gère ce chemin
    		$moduleParams = array();
    		for ($i=2; $i<count($urlPath); $i++) { 
    			array_push($moduleParams, $urlPath[$i]);
    		}
    		loadModule("admin", $urlPath[2], $moduleParams); // Charge le module admin
    	}
    }
    // Le reste est géré par le module ou la page admin