"._('Vous êtes déconnecté')."";
$backurl=$_SERVER['REQUEST_URI'];
$url="index.php?".http_build_query(array('reconnect'=>1,'backurl'=>urlencode($backurl)));
redirect($url);
exit();
}
$cn = Dossier::connect();
global $g_user, $cn,$g_parameter,$http;
$g_user = new Noalyss_user($cn);
$http=new HttpInput();
IDate::set_firstDate($g_user->get_first_week_day());
ITva_Popup::set_vat_code($g_user->get_vat_code_preference());
/*
* check that the database is not empty
*/
if ( ! $cn->exist_table('version')) {
echo '
'._('Désolé').'
';
echo _('Ce dossier est vide');
echo '';
echo ''._("Retour à l'accueil").'';
echo '
';
return;
}
global $level;
$level=0;
/**
* if access_mode is MOBILE than force it to mobile.php
*/
if ($g_user->get_access_mode()=='MOBILE') { require NOALYSS_HOME."/mobile.php"; return;}
$style_user=$http->post("style_user","string",$_SESSION[SESSION_KEY.'g_theme']);
html_page_start($style_user);
// check that the current user is saved into PostgreSQL setting in order to use it in PLPGSQL
\Noalyss\Dbg::echo_var(1,sprintf("current user is [%s]",$cn->get_value("select current_setting('noalyss.user_login')")));
if ( DEBUGNOALYSS > 1 ) {
/**
* Debug Design
*/
\Noalyss\Dbg::display_size();
\Noalyss\Dbg::display_request();
\Noalyss\Dbg::display_global();
} //<--- if DEBUG
$g_parameter=new Noalyss_Parameter_Folder($cn);
$g_user->Check();
if ( ! $g_user->is_double_identified()) {
echo ""._('Vous êtes déconnecté')."
";
$backurl=$_SERVER['REQUEST_URI'];
$url="index.php?".http_build_query(array('reconnect'=>1,'backurl'=>urlencode($backurl)));
redirect($url);
exit();
}
$g_user->check_dossier(Dossier::id());
load_all_script();
/* Check Browser version if < IE6 then unsupported */
$browser = $_SERVER['HTTP_USER_AGENT'];
if (strpos($browser, 'MSIE 6') != false ||
strpos($browser, 'MSIE 5') != false)
{
echo <<
Vous utilisez un navigateur dépassé depuis près de 8 ans!
Pour une meilleure expérience web, prenez le temps de mettre votre navigateur à jour.
EOF;
exit();
}
if ($cn->exist_table('version') == false)
{
echo '' . _("Base de donnée invalide") . '
';
$base = dirname($_SERVER['REQUEST_URI']);
echo HtmlInput::button_anchor('Retour', $base . '/user_login.php');
exit();
}
if (DBVERSION < dossier::get_version($cn))
{
$a = _("cliquez ici pour mettre à jour ");
$base =NOALYSS_URL."/admin-noalyss.php?action=upgrade&sb=application";
echo '' .
_("Attention: la version de base de donnée est supérieure à la version du programme, vous devriez mettre à jour") ,
'' . $a . '
',
'';
}
if (DBVERSION > dossier::get_version($cn))
{
echo '' . _("Votre base de données n'est pas à jour") . ' ';
$a = _("cliquez ici pour appliquer le patch");
$base =NOALYSS_URL.'/admin-noalyss.php?action=upgrade&sb=database';
echo '' . $a . '
';
}
/*
* Set a correct periode for the user
*/
$periode = $g_user->get_periode();
$oPeriode = new Periode($cn, $periode);
if ($oPeriode->load() == -1)
{
$periode = $cn->get_value('select p_id from parm_periode order by p_start asc limit 1');
$g_user->set_periode($periode);
}
$module_selected = -1;
?>
0) $last--;
fwrite ($file_loginput,"post("ac","string","")));
$ac_get = trim(strtoupper($http->get("ac","string","")));
$AC=($ac_post == "")?$ac_get:$ac_post;
$user_profile=$g_user->get_profile();
$amenu_id=$cn->get_array('select
pm_id_v3,pm_id_v2,pm_id_v1
from v_menu_profile where code= upper($1) and p_id=$2',
array($AC,$user_profile));
try {
if (count($amenu_id) == 0 ) {
// if only an Access Direct is asked without the full path
$aAccess=[];
// Find the possible path pm_id_v3 / pm_id_v2 / pm_id_v1
$direct_ac=$cn->get_array("select me_file,me_parameter,me_javascript from profile_menu
join menu_ref using (me_code)
where
p_id=$2
and me_code=$1", [strtoupper($AC),$user_profile]);
// if the me_code is available for user, find all the possible path
if (!empty($direct_ac)) {
$aAccess=$cn->get_array("select code, me_code from v_menu_description where me_code=$1 and p_id=$2",
[strtoupper($AC),$user_profile]);
}
if (empty($aAccess)) {
throw new Exception(_('Erreur menu'),10);
}
// retrieve the element path
$amenu_id=$cn->get_array('select
pm_id_v3,pm_id_v2,pm_id_v1
from v_menu_profile
where code= upper($1) and p_id=$2',
array($aAccess[0]['code'],$user_profile));
}
if ( count($amenu_id)> 1) {
$tmp=$amenu_id[0];
$amenu_id=[];
$amenu_id[0]=$tmp;
}
$amenu_id=complete_default_menu($amenu_id,$user_profile);
$AC=rebuild_access_code($amenu_id);
put_global(array(array("key"=>"ac","value"=>$AC)));
$module_id=$cn->get_value('select distinct
case when pm_id_v3 = 0 then (case when pm_id_v2 = 0 then pm_id_v1 else pm_id_v2 end) else pm_id_v3 end
from
v_menu_profile
where p_id =$1
and upper(code)=upper($2)',
array($user_profile,$AC));
$g_user->audit();
// Show module and highligt selected one
show_module($module_id);
global $level;
$level = 0;
show_menu( $amenu_id[0]['pm_id_v3']);
show_menu( $amenu_id[0]['pm_id_v2']);
show_menu($amenu_id[0]['pm_id_v1']);
} catch (Exception $e) {
if ( $e->getCode() == 10 ) {
alert(_('Accès menu impossible'));
echo '';
echo _('Retour');
echo '';
return;
}
else {
alert($e->getMessage());
record_log($e);
throw $e;
}
}
}
else
{
$default = find_default_module();
$user_profile=$g_user->get_profile();
try
{
if ( $user_profile == "" )
throw new Exception (_('Aucun profil utilisateur'));
$menu_id=$cn->get_value('select
case when pm_id_v3 = 0 then
(case when pm_id_v2 = 0 then pm_id_v1 else pm_id_v2 end)
else pm_id_v3 end
from v_menu_profile where code= upper($1) and p_id=$2',
array($default,$user_profile));
$_GET['ac']=$default;
$_POST['ac']=$default;
$_REQUEST['ac']=$default;
show_module($menu_id);
$all[0] = $default;
show_menu($menu_id);
}
catch (Exception $exc)
{
echo $exc->getMessage();
record_log("No user profile ");
record_log($exc);
throw $exc;
}
}