/**
  * @return bool
  */
 function create_session($name, $role, $policies)
 {
     if (isset($_SESSION["valid_user"])) {
         close_session();
     }
     set_session_key("valid_user", TRUE);
     set_session_key("name", $name);
     set_session_key("role", $role);
     set_session_key("policies", $policies);
     return TRUE;
 }
Esempio n. 2
0
            $sql = get_guest_details($fetchid);
            $result2 = $db->execute($sql);
            $user = $db->fetch_array($result2);
            $about_name = create_guest_username($user['userid'], $user['guest_name']);
            $about_avatar = $base_url . AC_FOLDER_ADMIN . "/images/img-no-avatar.gif";
        } else {
            $sql = get_user_details($fetchid);
            $result3 = $db->execute($sql);
            $user = $db->fetch_array($result3);
            $about_name = $user['username'];
            $about_avatar = get_avatar($user['avatar'], $fetchid);
        }
        $reports[] = array('id' => $row['id'], 'from' => $from_name, 'from_pic' => $from_avatar, 'about' => $about_name, 'about_pic' => $about_avatar, 'time' => relative_time($row['report_time']), 'about_num' => $row['COUNT(id)']);
    }
    $result = $db->execute("\n\t\t\tSELECT COUNT(id)\n\t\t\tFROM arrowchat_reports\n\t\t\tWHERE (working_time < (" . time() . " - 600)\n\t\t\t\t\t\tOR working_by = '" . $db->escape_string($userid) . "')\n\t\t\t\tAND completed_time = 0\n\t\t");
    if ($row = $db->fetch_array($result)) {
        $total_reports = $row['COUNT(id)'];
    } else {
        $total_reports = 0;
    }
    $response['total_reports'] = array('count' => $total_reports);
    $response['reports'] = $reports;
} else {
    echo 1;
    close_session();
    exit;
}
header('Content-type: application/json; charset=UTF-8');
echo json_encode($response);
close_session();
exit;
Esempio n. 3
0
function bail($epitaph)
{
    my_disconnect();
    close_session();
    echo "\n<P>Sorry, your session has been closed due to an error. " . "<A HREF=\"./login.php\"><BUTTON TYPE=button> Login again </BUTTON></A>\n";
    die("\n<P>\n(Fatal: " . $epitaph . ")\n</BODY></HTML>\n");
}
Esempio n. 4
0
function gestion_session($TAB_PROFILS_AUTORISES)
{
	if(!isset($_COOKIE[SESSION_NOM]))
	{
		// 1. Aucune session transmise
		open_new_session(); init_session();
		if(!$TAB_PROFILS_AUTORISES['public'])
		{
			// 1.1. Demande d'accès à une page réservée, donc besoin d'identification
			if(isset($_GET['verif_cookie']))
			{
				// 1.1.1. En fait l'utilisateur vient déjà de s'identifier : c'est donc anormal, le cookie de session n'a pas été trouvé car le navigateur client n'enregistre pas les cookies
				affich_message_exit($titre='Problème de cookies',$contenu='Session non retrouvée !<br />Configurez votre navigateur pour qu\'il accepte les cookies.');
			}
			else
			{
				// 1.1.2. Session perdue ou expirée, ou demande d'accès direct (lien profond) : redirection pour une nouvelle identification
				redirection_SSO_ou_message_exit(); // Si SSO au prochain coup on ne passera plus par là.
			}
		}
		else
		{
			// 1.2 Accès à une page publique : RAS
		}
	}
	else
	{
		// 2. id de session transmis
		open_old_session();
		if(!isset($_SESSION['USER_PROFIL']))
		{
			// 2.1. Pas de session retrouvée (sinon cette variable serait renseignée)
			if(!$TAB_PROFILS_AUTORISES['public'])
			{
				// 2.1.1. Session perdue ou expirée et demande d'accès à une page réservée : redirection pour une nouvelle identification
				close_session(); open_new_session(); init_session();
				redirection_SSO_ou_message_exit(); // On peut initialiser la session avant car si SSO au prochain coup on ne passera plus par là.
			}
			else
			{
				// 2.1.2. Session perdue ou expirée et page publique : création d'une nouvelle session, pas de message d'alerte pour indiquer que la session perdue
				close_session();open_new_session();init_session();
			}
		}
		elseif($_SESSION['USER_PROFIL'] == 'public')
		{
			// 2.2. Session retrouvée, utilisateur non identifié
			if(!$TAB_PROFILS_AUTORISES['public'])
			{
				// 2.2.1. Espace non identifié => Espace identifié : redirection pour identification
				redirection_SSO_ou_message_exit(); // Pas d'initialisation de session sinon la redirection avec le SSO tourne en boucle.
			}
			else
			{
				// 2.2.2. Espace non identifié => Espace non identifié : RAS
			}
		}
		else
		{
			// 2.3. Session retrouvée, utilisateur identifié
			if($TAB_PROFILS_AUTORISES[$_SESSION['USER_PROFIL']])
			{
				// 2.3.1. Espace identifié => Espace identifié identique : RAS
			}
			elseif($TAB_PROFILS_AUTORISES['public'])
			{
				// 2.3.2. Espace identifié => Espace non identifié : création d'une nouvelle session vierge, pas de message d'alerte pour indiquer que la session perdue
				// A un moment il fallait tester que ce n'était pas un appel ajax,pour éviter une déconnexion si appel au calendrier qui était dans l'espace public, mais ce n'est plus le cas...
				// Par contre il faut conserver la session de SimpleSAMLphp pour laisser à l'utilisateur la choix de se déconnecter ou non de son SSO.
				$SimpleSAMLphp_SESSION = ( ($_SESSION['CONNEXION_MODE']=='gepi') && (isset($_SESSION['SimpleSAMLphp_SESSION'])) ) ? $_SESSION['SimpleSAMLphp_SESSION'] : FALSE ; // isset() pour le cas où l'admin vient de cocher le mode Gepi mais c'est connecté sans juste avant
				close_session();open_new_session();init_session();
				if($SimpleSAMLphp_SESSION) { $_SESSION['SimpleSAMLphp_SESSION'] = $SimpleSAMLphp_SESSION; }
			}
			elseif(!$TAB_PROFILS_AUTORISES['public']) // (forcément)
			{
				// 2.3.3. Espace identifié => Autre espace identifié incompatible : redirection pour une nouvelle identification
				// Pas de redirection SSO sinon on tourne en boucle (il faudrait faire une déconnexion SSO préalable).
				affich_message_exit($titre='Page interdite avec votre profil',$contenu='Vous avez appelé une page inaccessible avec votre identification actuelle !<br />Déconnectez-vous ou retournez à la page précédente.');
			}
		}
	}
}
Esempio n. 5
0
<?php

/* 'Logout' feature interface */
include './include/util.php';
include './include/session.php';
include './include/exception.php';
$sessionUid = is_string($_GET["sessionUid"]) ? $_GET["sessionUid"] : "";
try {
    if (!$sessionUid) {
        throw new Exceptioni("emptyRequest");
    }
    $dbLink = db_init();
    if (!close_session($dbLink, $sessionUid)) {
        throw new Exceptioni("invalidUid");
    }
} catch (Exceptioni $e) {
    $error = $e->getCode();
} catch (DbException $e) {
    $error = "internalException";
} finally {
    db_close($dbLink);
    $responce = [];
    if ($error) {
        $responce["status"] = "error";
        $responce["error"] = $error;
    } else {
        $responce["status"] = "ok";
    }
    respond_json($responce);
}
Esempio n. 6
0
        ### DBG
        fich_debug("DBG >> statut :".$row_auteur['statut']."\n");
        if ($row_auteur['statut'] == '0minirezo')
	   $cookie_admin = "@".$session_login;

        $var_f = charger_fonction('session', 'inc');
        $cookie_session = $var_f($row_auteur);
        ### DBG
        fich_debug("DBG >> $cookie_session\n");
        // On poste le cookie de session
        spip_setcookie('spip_session', $cookie_session);
        // On loge l'authentification
        spip_log("login de $login depuis LCS");
    }
} elseif ( $action=="logout" ) {
    close_session($idpers);
    @define('_DIR_RESTREINT_ABS', 'ecrire/');
    include_once _DIR_RESTREINT_ABS.'inc_version.php';

    include_spip('inc/cookie');
    include_once  _DIR_RESTREINT_ABS.'auth/ldap.php';
    include_spip('inc/session');

    $result = spip_query("SELECT id_auteur FROM spip_auteurs WHERE login='******' AND source='ldap'");
    $row_auteur = spip_fetch_array($result);
    ### DBG
    fich_debug("DBG >> id auteur : ".$row_auteur['id_auteur']."\n");
    supprimer_sessions($row_auteur['id_auteur']);
    spip_setcookie('spip_session', '', 0);
} else fich_debug("DBG >> No login No logout\n");