Rename the dol_loginfunction2 into dol_loginfunction to keep only one function. This function can support smarty templates and php template.

This commit is contained in:
Laurent Destailleur 2010-01-10 23:54:42 +00:00
parent 557e4268e2
commit 194cc07396
3 changed files with 147 additions and 132 deletions

View File

@ -23,6 +23,9 @@ header("Content-type: text/html; charset=".$conf->file->character_set_client);
?> ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Ce DTD est KO car inhibe document.body.scrollTop ->
<!-- print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">'; -->
<!-- BEGIN TEMPLATE --> <!-- BEGIN TEMPLATE -->
<html> <html>
@ -55,10 +58,7 @@ function donnefocus() {
} }
</script> </script>
<?php <?php echo $conf->global->MAIN_HTML_HEADER ?>
if ($main_html_header)
echo $main_html_header;
?>
<!-- HTTP_USER_AGENT = <?php echo $_SERVER['HTTP_USER_AGENT']; ?> --> <!-- HTTP_USER_AGENT = <?php echo $_SERVER['HTTP_USER_AGENT']; ?> -->
</head> </head>
@ -107,7 +107,7 @@ function donnefocus() {
<table style="width: 100px;"><tr> <table style="width: 100px;"><tr>
<td><input id="securitycode" class="flat" type="text" size="6" maxlength="5" name="code" tabindex="4"></td> <td><input id="securitycode" class="flat" type="text" size="6" maxlength="5" name="code" tabindex="4"></td>
<td><img src="<?php echo $dol_url_root; ?>/lib/antispamimage.php" border="0" width="128" height="36"></td> <td><img src="<?php echo DOL_URL_ROOT ?>/lib/antispamimage.php" border="0" width="128" height="36"></td>
<td><a href="<?php echo $php_self; ?>"><?php echo $captcha_refresh; ?></a></td> <td><a href="<?php echo $php_self; ?>"><?php echo $captcha_refresh; ?></a></td>
</tr></table> </tr></table>
@ -124,7 +124,7 @@ function donnefocus() {
if ($forgetpasslink || $helpcenterlink) { if ($forgetpasslink || $helpcenterlink) {
echo '<tr><td colspan="3" align="center">'; echo '<tr><td colspan="3" align="center">';
if ($forgetpasslink) { if ($forgetpasslink) {
echo '<a style="color: #888888; font-size: 10px" href="'.$dol_url_root.'/user/passwordforgotten.php">('; echo '<a style="color: #888888; font-size: 10px" href="'.DOL_URL_ROOT.'/user/passwordforgotten.php">(';
echo $langs->trans('PasswordForgotten'); echo $langs->trans('PasswordForgotten');
if (! $helpcenterlink) { if (! $helpcenterlink) {
echo ')'; echo ')';
@ -133,7 +133,7 @@ function donnefocus() {
} }
if ($helpcenterlink) { if ($helpcenterlink) {
echo '<a style="color: #888888; font-size: 10px" href="'.$dol_url_root.'/support/index.php" target="_blank">'; echo '<a style="color: #888888; font-size: 10px" href="'.DOL_URL_ROOT.'/support/index.php" target="_blank">';
if ($forgetpasslink) { if ($forgetpasslink) {
echo '&nbsp;-&nbsp;'; echo '&nbsp;-&nbsp;';
} else { } else {
@ -165,11 +165,11 @@ function donnefocus() {
<?php if ($main_google_ad_client) { ?> <?php if ($main_google_ad_client) { ?>
<div align="center"> <div align="center">
<script type="text/javascript"><!-- <script type="text/javascript"><!--
google_ad_client = <?php echo $main_google_ad_client ?>; google_ad_client = <?php echo $conf->global->MAIN_GOOGLE_AD_CLIENT ?>;
/* {$main_google_ad_width}x{$main_google_ad_height}, {$main_google_ad_name} */ /* {$conf->global->MAIN_GOOGLE_AD_WIDTH}x{$conf->global->MAIN_GOOGLE_AD_HEIGHT}, {$conf->global->MAIN_GOOGLE_AD_NAME} */
google_ad_slot = <?php echo $main_google_ad_slot ?>; google_ad_slot = <?php echo $conf->global->MAIN_GOOGLE_AD_SLOT ?>;
google_ad_width = <?php echo $main_google_ad_width ?>; google_ad_width = <?php echo $conf->global->MAIN_GOOGLE_AD_WIDTH ?>;
google_ad_height = <?php echo $main_google_ad_height ?>; google_ad_height = <?php echo $conf->global->MAIN_GOOGLE_AD_HEIGHT ?>;
//--> //-->
</script> </script>
<script type="text/javascript" <script type="text/javascript"
@ -178,14 +178,11 @@ function donnefocus() {
</div> </div>
<?php } ?> <?php } ?>
<!-- authentication mode = {$main_authentication} --> <!-- authentication mode = <?php echo $main_authentication ?> -->
<!-- cookie name used for this session = {$session_name} --> <!-- cookie name used for this session = <?php echo $session_name ?> -->
<!-- urlfrom in this session = {$smarty.session.urlfrom} --> <!-- urlfrom in this session = <?php echo $_SESSION["urlfrom"] ?> -->
<?php <?php echo $conf->global->MAIN_HTML_FOOTER; ?>
if ($main_html_footer)
echo $main_html_footer;
?>
</body> </body>
</html> </html>

View File

@ -32,7 +32,7 @@
* \param mysoc Company object * \param mysoc Company object
* \remarks You must change HTML code in this page to change design of logon page. * \remarks You must change HTML code in this page to change design of logon page.
*/ */
function dol_loginfunction($langs,$conf,$mysoc) function dol_loginfunction_old($langs,$conf,$mysoc)
{ {
global $dolibarr_main_demo,$db; global $dolibarr_main_demo,$db;
@ -333,12 +333,10 @@ function dol_loginfunction($langs,$conf,$mysoc)
* \param langs Lang object * \param langs Lang object
* \param conf Conf object * \param conf Conf object
* \param mysoc Company object * \param mysoc Company object
* \remarks Test for smarty integration.
*/ */
function dol_loginfunction2($langs,$conf,$mysoc) function dol_loginfunction($langs,$conf,$mysoc)
{ {
global $dolibarr_main_demo,$db; global $dolibarr_main_demo,$db;
global $smarty;
$langcode=(empty($_GET["lang"])?'auto':$_GET["lang"]); $langcode=(empty($_GET["lang"])?'auto':$_GET["lang"]);
$langs->setDefaultLang($langcode); $langs->setDefaultLang($langcode);
@ -347,47 +345,39 @@ function dol_loginfunction2($langs,$conf,$mysoc)
$langs->load("other"); $langs->load("other");
$langs->load("help"); $langs->load("help");
$smarty->assign('langs', $langs); $main_authentication=$conf->file->main_authentication;
$session_name=session_name();
if (! empty($conf->global->MAIN_HTML_HEADER)) $smarty->assign('main_html_header', $conf->global->MAIN_HTML_HEADER);
$php_self = $_SERVER['PHP_SELF']; $php_self = $_SERVER['PHP_SELF'];
$php_self.= $_SERVER["QUERY_STRING"]?'?'.$_SERVER["QUERY_STRING"]:''; $php_self.= $_SERVER["QUERY_STRING"]?'?'.$_SERVER["QUERY_STRING"]:'';
$smarty->assign('php_self', $php_self);
$smarty->assign('character_set_client',$conf->file->character_set_client);
// Select templates // Select templates
if ($conf->browser->phone) if ($conf->browser->phone)
{ {
if (file_exists(DOL_DOCUMENT_ROOT."/theme/phones/".$conf->browser->phone)) if (file_exists(DOL_DOCUMENT_ROOT."/theme/phones/".$conf->browser->phone))
{ {
$smarty->template_dir = DOL_DOCUMENT_ROOT."/theme/phones/".$conf->browser->phone."/templates/"; $template_dir=DOL_DOCUMENT_ROOT."/theme/phones/".$conf->browser->phone."/templates/";
$smarty->assign('theme', 'default');
} }
else else
{ {
$smarty->template_dir = DOL_DOCUMENT_ROOT."/theme/phones/others/templates/"; $template_dir=DOL_DOCUMENT_ROOT."/theme/phones/others/templates/";
} }
} }
else else
{ {
if (file_exists(DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/templates/login.tpl")) if (file_exists(DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/templates/login.tpl"))
{ {
$smarty->template_dir = DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/templates/"; $template_dir=DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/templates/";
} }
else else
{ {
$smarty->template_dir = DOL_DOCUMENT_ROOT."/core/templates/"; $template_dir=DOL_DOCUMENT_ROOT.'/core/templates/';
} }
$conf->css = "theme/".$conf->theme."/".$conf->theme.".css"; $conf->css = "theme/".$conf->theme."/".$conf->theme.".css";
$conf->css.=".php?lang=".$langs->defaultlang; $conf->css.=".php?lang=".$langs->defaultlang;
$smarty->assign('conf_css', DOL_URL_ROOT.'/'.$conf->css);
} }
$smarty->assign('dol_url_root', DOL_URL_ROOT);
// Set cookie for timeout management // Set cookie for timeout management
$sessiontimeout='DOLSESSTIMEOUT_'.md5($_SERVER["SERVER_NAME"].$_SERVER["DOCUMENT_ROOT"]); $sessiontimeout='DOLSESSTIMEOUT_'.md5($_SERVER["SERVER_NAME"].$_SERVER["DOCUMENT_ROOT"]);
if (! empty($conf->global->MAIN_SESSION_TIMEOUT)) setcookie($sessiontimeout, $conf->global->MAIN_SESSION_TIMEOUT, 0, "/", '', 0); if (! empty($conf->global->MAIN_SESSION_TIMEOUT)) setcookie($sessiontimeout, $conf->global->MAIN_SESSION_TIMEOUT, 0, "/", '', 0);
@ -395,21 +385,19 @@ function dol_loginfunction2($langs,$conf,$mysoc)
if (! empty($_REQUEST["urlfrom"])) $_SESSION["urlfrom"]=$_REQUEST["urlfrom"]; if (! empty($_REQUEST["urlfrom"])) $_SESSION["urlfrom"]=$_REQUEST["urlfrom"];
else unset($_SESSION["urlfrom"]); else unset($_SESSION["urlfrom"]);
if (! $_REQUEST["username"]) $smarty->assign('focus_element', 'username'); if (! $_REQUEST["username"]) $focus_element='username';
else $smarty->assign('focus_element', 'password'); else $focus_element='password';
$login_background=DOL_URL_ROOT.'/theme/login_background.png'; $login_background=DOL_URL_ROOT.'/theme/login_background.png';
if (file_exists(DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/img/login_background.png')) if (file_exists(DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/img/login_background.png'))
{ {
$smarty->assign('login_background', DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/login_background.png'); $login_background=DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/login_background.png';
} }
// Title // Title
$title='Dolibarr '.DOL_VERSION; $title='Dolibarr '.DOL_VERSION;
if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $title=$conf->global->MAIN_APPLICATION_TITLE; if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $title=$conf->global->MAIN_APPLICATION_TITLE;
$smarty->assign('title', $title);
$demologin=''; $demologin='';
$demopassword=''; $demopassword='';
if (! empty($dolibarr_main_demo)) if (! empty($dolibarr_main_demo))
@ -444,8 +432,6 @@ function dol_loginfunction2($langs,$conf,$mysoc)
// Login // Login
$login = (!empty($lastuser)?$lastuser:(isset($_REQUEST["username"])?$_REQUEST["username"]:$demologin)); $login = (!empty($lastuser)?$lastuser:(isset($_REQUEST["username"])?$_REQUEST["username"]:$demologin));
$password = $demopassword; $password = $demopassword;
$smarty->assign('login', $login);
$smarty->assign('password', $password);
// Show logo (search in order: small company logo, large company logo, theme logo, common logo) // Show logo (search in order: small company logo, large company logo, theme logo, common logo)
$width=0; $width=0;
@ -468,11 +454,8 @@ function dol_loginfunction2($langs,$conf,$mysoc)
if (! empty($conf->global->MAIN_MODULE_MULTICOMPANY)) $rowspan++; if (! empty($conf->global->MAIN_MODULE_MULTICOMPANY)) $rowspan++;
$smarty->assign('logo', $urllogo);
$smarty->assign('logo_width', $width);
$smarty->assign('logo_rowspan', $rowspan);
// Entity field // Entity field
$select_entity='';
if (! empty($conf->global->MAIN_MODULE_MULTICOMPANY)) if (! empty($conf->global->MAIN_MODULE_MULTICOMPANY))
{ {
require_once(DOL_DOCUMENT_ROOT.'/multicompany/multicompany.class.php'); require_once(DOL_DOCUMENT_ROOT.'/multicompany/multicompany.class.php');
@ -481,30 +464,30 @@ function dol_loginfunction2($langs,$conf,$mysoc)
$mc->getEntities(); $mc->getEntities();
$select_entity=$mc->select_entities($mc->entities,$lastentity,'tabindex="3"'); $select_entity=$mc->select_entities($mc->entities,$lastentity,'tabindex="3"');
$smarty->assign('select_entity', $select_entity);
} }
// Security graphical code // Security graphical code
$captcha=0;
$captcha_refresh='';
if (function_exists("imagecreatefrompng") && ! empty($conf->global->MAIN_SECURITY_ENABLECAPTCHA)) if (function_exists("imagecreatefrompng") && ! empty($conf->global->MAIN_SECURITY_ENABLECAPTCHA))
{ {
$captcha=1; $captcha=1;
$smarty->assign('captcha', $captcha); $captcha_refresh=img_refresh();
$smarty->assign('captcha_refresh', img_refresh());
} }
// Extra link // Extra link
$forgetpasslink=0;
$helpcenterlink=0;
if (empty($conf->global->MAIN_SECURITY_DISABLEFORGETPASSLINK) || empty($conf->global->MAIN_HELPCENTER_DISABLELINK)) if (empty($conf->global->MAIN_SECURITY_DISABLEFORGETPASSLINK) || empty($conf->global->MAIN_HELPCENTER_DISABLELINK))
{ {
if (empty($conf->global->MAIN_SECURITY_DISABLEFORGETPASSLINK)) if (empty($conf->global->MAIN_SECURITY_DISABLEFORGETPASSLINK))
{ {
$forgetpasslink=1; $forgetpasslink=1;
$smarty->assign('forgetpasslink', $forgetpasslink);
} }
if (empty($conf->global->MAIN_HELPCENTER_DISABLELINK)) if (empty($conf->global->MAIN_HELPCENTER_DISABLELINK))
{ {
$helpcenterlink=1; $helpcenterlink=1;
$smarty->assign('helpcenterlink', $helpcenterlink);
} }
} }
@ -517,40 +500,83 @@ function dol_loginfunction2($langs,$conf,$mysoc)
$conf->global->MAIN_HOME=preg_replace('/__\('.$reg[1].'\)__/i',$langs->trans($reg[1]),$conf->global->MAIN_HOME); $conf->global->MAIN_HOME=preg_replace('/__\('.$reg[1].'\)__/i',$langs->trans($reg[1]),$conf->global->MAIN_HOME);
$i++; $i++;
} }
}
// START SMARTY
if ($conf->global->MAIN_SMARTY)
{
global $smarty;
$smarty->assign('conf_css', DOL_URL_ROOT.'/'.$conf->css);
$smarty->assign('langs', $langs);
if (! empty($conf->global->MAIN_HTML_HEADER)) $smarty->assign('main_html_header', $conf->global->MAIN_HTML_HEADER);
$smarty->assign('php_self', $php_self);
$smarty->assign('character_set_client',$conf->file->character_set_client);
$smarty->assign('theme', 'default');
$smarty->template_dir=$template_dir;
$smarty->assign('dol_url_root', DOL_URL_ROOT);
$smarty->assign('focus_element', $focus_element);
$smarty->assign('login_background', $login_background);
$smarty->assign('title', $title);
$smarty->assign('login', $login);
$smarty->assign('password', $password);
$smarty->assign('logo', $urllogo);
$smarty->assign('logo_width', $width);
$smarty->assign('logo_rowspan', $rowspan);
$smarty->assign('select_entity', $select_entity);
$smarty->assign('captcha', $captcha);
$smarty->assign('captcha_refresh', $captcha_refresh);
$smarty->assign('forgetpasslink', $forgetpasslink);
$smarty->assign('helpcenterlink', $helpcenterlink);
$smarty->assign('main_home', nl2br($conf->global->MAIN_HOME)); $smarty->assign('main_home', nl2br($conf->global->MAIN_HOME));
}
// Google Adsense (ex: demo mode) // Google Adsense (ex: demo mode)
if (! empty($conf->global->MAIN_GOOGLE_AD_CLIENT) && ! empty($conf->global->MAIN_GOOGLE_AD_SLOT)) if (! empty($conf->global->MAIN_GOOGLE_AD_CLIENT) && ! empty($conf->global->MAIN_GOOGLE_AD_SLOT))
{
$smarty->assign('main_google_ad_client', $conf->global->MAIN_GOOGLE_AD_CLIENT);
$smarty->assign('main_google_ad_name', $conf->global->MAIN_GOOGLE_AD_NAME);
$smarty->assign('main_google_ad_slot', $conf->global->MAIN_GOOGLE_AD_SLOT);
$smarty->assign('main_google_ad_width', $conf->global->MAIN_GOOGLE_AD_WIDTH);
$smarty->assign('main_google_ad_height', $conf->global->MAIN_GOOGLE_AD_HEIGHT);
$google_ad_template = DOL_DOCUMENT_ROOT."/core/templates/google_ad.tpl";
$smarty->assign('google_ad_tpl', $google_ad_template);
}
if (! empty($conf->global->MAIN_HTML_FOOTER)) $smarty->assign('main_html_footer', $conf->global->MAIN_HTML_FOOTER);
$smarty->assign('main_authentication', $main_authentication);
$smarty->assign('session_name', $session_name);
// Message
if (! empty($_SESSION["dol_loginmesg"]))
{
$smarty->assign('dol_loginmesg', $_SESSION["dol_loginmesg"]);
}
// Creation du template
$smarty->display('login.tpl'); // To use Smarty
// Suppression de la version compilee
$smarty->clear_compiled_tpl('login.tpl');
// END SMARTY
}
else
{ {
$smarty->assign('main_google_ad_client', $conf->global->MAIN_GOOGLE_AD_CLIENT); include($template_dir.'login.tpl.php'); // To use native PHP
$smarty->assign('main_google_ad_name', $conf->global->MAIN_GOOGLE_AD_NAME);
$smarty->assign('main_google_ad_slot', $conf->global->MAIN_GOOGLE_AD_SLOT);
$smarty->assign('main_google_ad_width', $conf->global->MAIN_GOOGLE_AD_WIDTH);
$smarty->assign('main_google_ad_height', $conf->global->MAIN_GOOGLE_AD_HEIGHT);
$google_ad_template = DOL_DOCUMENT_ROOT."/core/templates/google_ad.tpl";
$smarty->assign('google_ad_tpl', $google_ad_template);
} }
if (! empty($conf->global->MAIN_HTML_FOOTER)) $smarty->assign('main_html_footer', $conf->global->MAIN_HTML_FOOTER);
$smarty->assign('main_authentication', $conf->file->main_authentication);
$smarty->assign('session_name', session_name());
// Message
if (! empty($_SESSION["dol_loginmesg"]))
{
$smarty->assign('dol_loginmesg', $_SESSION["dol_loginmesg"]);
}
// Creation du template
$smarty->display('login.tpl'); // To use Smarty
// include(DOL_DOCUMENT_ROOT.'/core/templates/login.tpl.php'); // To use native PHP
// Suppression de la version compilee
$smarty->clear_compiled_tpl('login.tpl');
$_SESSION["dol_loginmesg"] = ''; $_SESSION["dol_loginmesg"] = '';
} }

View File

@ -260,15 +260,15 @@ if (! defined('NOLOGIN'))
// Example: 'dolibarr' // Example: 'dolibarr'
// Example: 'ldap' // Example: 'ldap'
// Example: 'http,forceuser' // Example: 'http,forceuser'
// Authentication mode // Authentication mode
if (empty($dolibarr_main_authentication)) $dolibarr_main_authentication='http,dolibarr'; if (empty($dolibarr_main_authentication)) $dolibarr_main_authentication='http,dolibarr';
// Authentication mode: forceuser // Authentication mode: forceuser
if ($dolibarr_main_authentication == 'forceuser' && empty($dolibarr_auto_user)) $dolibarr_auto_user='auto'; if ($dolibarr_main_authentication == 'forceuser' && empty($dolibarr_auto_user)) $dolibarr_auto_user='auto';
// Set authmode // Set authmode
$authmode=explode(',',$dolibarr_main_authentication); $authmode=explode(',',$dolibarr_main_authentication);
// No authentication mode // No authentication mode
if (! sizeof($authmode)) if (! sizeof($authmode))
{ {
@ -276,7 +276,7 @@ if (! defined('NOLOGIN'))
dol_print_error('',$langs->trans("ErrorConfigParameterNotDefined",'dolibarr_main_authentication')); dol_print_error('',$langs->trans("ErrorConfigParameterNotDefined",'dolibarr_main_authentication'));
exit; exit;
} }
// Si la demande du login a deja eu lieu, on le recupere depuis la session // Si la demande du login a deja eu lieu, on le recupere depuis la session
// sinon appel du module qui realise sa demande. // sinon appel du module qui realise sa demande.
// A l'issu de cette phase, la variable $login sera definie. // A l'issu de cette phase, la variable $login sera definie.
@ -285,27 +285,27 @@ if (! defined('NOLOGIN'))
if (! isset($_SESSION["dol_login"])) if (! isset($_SESSION["dol_login"]))
{ {
// On est pas deja authentifie, on demande le login/mot de passe // On est pas deja authentifie, on demande le login/mot de passe
// Verification du code securite graphique // Verification du code securite graphique
if ($test && isset($_POST["username"]) && ! empty($conf->global->MAIN_SECURITY_ENABLECAPTCHA)) if ($test && isset($_POST["username"]) && ! empty($conf->global->MAIN_SECURITY_ENABLECAPTCHA))
{ {
require_once DOL_DOCUMENT_ROOT.'/includes/artichow/Artichow.cfg.php'; require_once DOL_DOCUMENT_ROOT.'/includes/artichow/Artichow.cfg.php';
require_once ARTICHOW."/AntiSpam.class.php"; require_once ARTICHOW."/AntiSpam.class.php";
// On cree l'objet anti-spam // On cree l'objet anti-spam
$object = new AntiSpam(); $object = new AntiSpam();
// Verifie code // Verifie code
if (! $object->check('dol_antispam_value',$_POST['code'],true)) if (! $object->check('dol_antispam_value',$_POST['code'],true))
{ {
dol_syslog('Bad value for code, connexion refused'); dol_syslog('Bad value for code, connexion refused');
$langs->load('main'); $langs->load('main');
$langs->load('other'); $langs->load('other');
$user->trigger_mesg='ErrorBadValueForCode - login='.$_POST["username"]; $user->trigger_mesg='ErrorBadValueForCode - login='.$_POST["username"];
$_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadValueForCode"); $_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadValueForCode");
$test=false; $test=false;
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
$interface=new Interfaces($db); $interface=new Interfaces($db);
@ -314,14 +314,14 @@ if (! defined('NOLOGIN'))
// Fin appel triggers // Fin appel triggers
} }
} }
// Tests de validation user/mot de passe // Tests de validation user/mot de passe
// Si ok, la variable login sera initialisee // Si ok, la variable login sera initialisee
// Si erreur, on a placera message erreur dans session sous le nom dol_loginmesg // Si erreur, on a placera message erreur dans session sous le nom dol_loginmesg
$goontestloop=false; $goontestloop=false;
if (isset($_SERVER["REMOTE_USER"]) && in_array('http',$authmode)) $goontestloop=true; if (isset($_SERVER["REMOTE_USER"]) && in_array('http',$authmode)) $goontestloop=true;
if (isset($_POST["username"])) $goontestloop=true; if (isset($_POST["username"])) $goontestloop=true;
if ($test && $goontestloop) if ($test && $goontestloop)
{ {
foreach($authmode as $mode) foreach($authmode as $mode)
@ -353,17 +353,17 @@ if (! defined('NOLOGIN'))
} }
} }
} }
if (! $login) if (! $login)
{ {
dol_syslog('Bad password, connexion refused',LOG_DEBUG); dol_syslog('Bad password, connexion refused',LOG_DEBUG);
$langs->load('main'); $langs->load('main');
$langs->load('other'); $langs->load('other');
// Bad password. No authmode has found a good password. // Bad password. No authmode has found a good password.
$user->trigger_mesg=$langs->trans("ErrorBadLoginPassword").' - login='.$_POST["username"]; $user->trigger_mesg=$langs->trans("ErrorBadLoginPassword").' - login='.$_POST["username"];
$_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadLoginPassword"); $_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadLoginPassword");
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
$interface=new Interfaces($db); $interface=new Interfaces($db);
@ -372,24 +372,16 @@ if (! defined('NOLOGIN'))
// Fin appel triggers // Fin appel triggers
} }
} }
// Fin des tests de login/passwords // Fin des tests de login/passwords
if (! $login) if (! $login)
{ {
// We show login page // We show login page
include_once(DOL_DOCUMENT_ROOT."/lib/security.lib.php"); include_once(DOL_DOCUMENT_ROOT."/lib/security.lib.php");
// TODO activer smarty par defaut ? dol_loginfunction($langs,$conf,$mysoc);
if (sizeof($conf->need_smarty) > 0 || $conf->global->MAIN_SMARTY)
{
dol_loginfunction2($langs,$conf,$mysoc);
}
else
{
dol_loginfunction($langs,$conf,$mysoc);
}
exit; exit;
} }
$resultFetchUser=$user->fetch($login); $resultFetchUser=$user->fetch($login);
if ($resultFetchUser <= 0) if ($resultFetchUser <= 0)
{ {
@ -397,12 +389,12 @@ if (! defined('NOLOGIN'))
session_destroy(); session_destroy();
session_name($sessionname); session_name($sessionname);
session_start(); session_start();
if ($resultFetchUser == 0) if ($resultFetchUser == 0)
{ {
$langs->load('main'); $langs->load('main');
$langs->load('other'); $langs->load('other');
$user->trigger_mesg='ErrorCantLoadUserFromDolibarrDatabase - login='.$login; $user->trigger_mesg='ErrorCantLoadUserFromDolibarrDatabase - login='.$login;
$_SESSION["dol_loginmesg"]=$langs->trans("ErrorCantLoadUserFromDolibarrDatabase",$login); $_SESSION["dol_loginmesg"]=$langs->trans("ErrorCantLoadUserFromDolibarrDatabase",$login);
} }
@ -411,14 +403,14 @@ if (! defined('NOLOGIN'))
$user->trigger_mesg=$user->error; $user->trigger_mesg=$user->error;
$_SESSION["dol_loginmesg"]=$user->error; $_SESSION["dol_loginmesg"]=$user->error;
} }
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
$interface=new Interfaces($db); $interface=new Interfaces($db);
$result=$interface->run_triggers('USER_LOGIN_FAILED',$user,$user,$langs,$conf,$_POST["entity"]); $result=$interface->run_triggers('USER_LOGIN_FAILED',$user,$user,$langs,$conf,$_POST["entity"]);
if ($result < 0) { $error++; } if ($result < 0) { $error++; }
// Fin appel triggers // Fin appel triggers
header('Location: '.DOL_URL_ROOT.'/index.php'); header('Location: '.DOL_URL_ROOT.'/index.php');
exit; exit;
} }
@ -430,7 +422,7 @@ if (! defined('NOLOGIN'))
$login=$_SESSION["dol_login"]; $login=$_SESSION["dol_login"];
$resultFetchUser=$user->fetch($login); $resultFetchUser=$user->fetch($login);
dol_syslog("This is an already logged session. _SESSION['dol_login']=".$login); dol_syslog("This is an already logged session. _SESSION['dol_login']=".$login);
if ($resultFetchUser <= 0) if ($resultFetchUser <= 0)
{ {
// Account has been removed after login // Account has been removed after login
@ -438,12 +430,12 @@ if (! defined('NOLOGIN'))
session_destroy(); session_destroy();
session_name($sessionname); session_name($sessionname);
session_start(); session_start();
if ($resultFetchUser == 0) if ($resultFetchUser == 0)
{ {
$langs->load('main'); $langs->load('main');
$langs->load('other'); $langs->load('other');
$user->trigger_mesg='ErrorCantLoadUserFromDolibarrDatabase - login='.$login; $user->trigger_mesg='ErrorCantLoadUserFromDolibarrDatabase - login='.$login;
$_SESSION["dol_loginmesg"]=$langs->trans("ErrorCantLoadUserFromDolibarrDatabase",$login); $_SESSION["dol_loginmesg"]=$langs->trans("ErrorCantLoadUserFromDolibarrDatabase",$login);
} }
@ -452,42 +444,42 @@ if (! defined('NOLOGIN'))
$user->trigger_mesg=$user->error; $user->trigger_mesg=$user->error;
$_SESSION["dol_loginmesg"]=$user->error; $_SESSION["dol_loginmesg"]=$user->error;
} }
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
$interface=new Interfaces($db); $interface=new Interfaces($db);
$result=$interface->run_triggers('USER_LOGIN_FAILED',$user,$user,$langs,$conf,(isset($_POST["entity"])?$_POST["entity"]:0)); $result=$interface->run_triggers('USER_LOGIN_FAILED',$user,$user,$langs,$conf,(isset($_POST["entity"])?$_POST["entity"]:0));
if ($result < 0) { $error++; } if ($result < 0) { $error++; }
// Fin appel triggers // Fin appel triggers
header('Location: '.DOL_URL_ROOT.'/index.php'); header('Location: '.DOL_URL_ROOT.'/index.php');
exit; exit;
} }
} }
// Is it a new session ? // Is it a new session ?
if (! isset($_SESSION["dol_login"])) if (! isset($_SESSION["dol_login"]))
{ {
$error=0; $error=0;
// New session for this login // New session for this login
$_SESSION["dol_login"]=$user->login; $_SESSION["dol_login"]=$user->login;
$_SESSION["dol_authmode"]=$conf->authmode; $_SESSION["dol_authmode"]=$conf->authmode;
$_SESSION["dol_company"]=$conf->global->MAIN_INFO_SOCIETE_NOM; $_SESSION["dol_company"]=$conf->global->MAIN_INFO_SOCIETE_NOM;
if ($conf->multicompany->enabled) $_SESSION["dol_entity"]=$conf->entity; if ($conf->multicompany->enabled) $_SESSION["dol_entity"]=$conf->entity;
dol_syslog("This is a new started user session. _SESSION['dol_login']=".$_SESSION["dol_login"].' Session id='.session_id()); dol_syslog("This is a new started user session. _SESSION['dol_login']=".$_SESSION["dol_login"].' Session id='.session_id());
$db->begin(); $db->begin();
$user->update_last_login_date(); $user->update_last_login_date();
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
$interface=new Interfaces($db); $interface=new Interfaces($db);
$result=$interface->run_triggers('USER_LOGIN',$user,$user,$langs,$conf,$_POST["entity"]); $result=$interface->run_triggers('USER_LOGIN',$user,$user,$langs,$conf,$_POST["entity"]);
if ($result < 0) { $error++; } if ($result < 0) { $error++; }
// Fin appel triggers // Fin appel triggers
if ($error) if ($error)
{ {
$db->rollback(); $db->rollback();
@ -499,28 +491,28 @@ if (! defined('NOLOGIN'))
{ {
$db->commit(); $db->commit();
} }
// Create entity cookie, just used for login page // Create entity cookie, just used for login page
if (!empty($conf->global->MAIN_MODULE_MULTICOMPANY) && !empty($conf->global->MAIN_MULTICOMPANY_COOKIE) && isset($_POST["entity"])) if (!empty($conf->global->MAIN_MODULE_MULTICOMPANY) && !empty($conf->global->MAIN_MULTICOMPANY_COOKIE) && isset($_POST["entity"]))
{ {
include_once(DOL_DOCUMENT_ROOT."/core/cookie.class.php"); include_once(DOL_DOCUMENT_ROOT."/core/cookie.class.php");
$entity = $_SESSION["dol_login"].'|'.$_POST["entity"]; $entity = $_SESSION["dol_login"].'|'.$_POST["entity"];
$entityCookieName = 'DOLENTITYID_'.md5($_SERVER["SERVER_NAME"].$_SERVER["DOCUMENT_ROOT"]); $entityCookieName = 'DOLENTITYID_'.md5($_SERVER["SERVER_NAME"].$_SERVER["DOCUMENT_ROOT"]);
// TTL : sera defini dans la page de config multicompany // TTL : sera defini dans la page de config multicompany
$ttl = (! empty($conf->global->MAIN_MULTICOMPANY_COOKIE_TTL) ? $conf->global->MAIN_MULTICOMPANY_COOKIE_TTL : time()+60*60*8 ); $ttl = (! empty($conf->global->MAIN_MULTICOMPANY_COOKIE_TTL) ? $conf->global->MAIN_MULTICOMPANY_COOKIE_TTL : time()+60*60*8 );
// Cryptkey : sera cree aleatoirement dans la page de config multicompany // Cryptkey : sera cree aleatoirement dans la page de config multicompany
$cryptkey = (! empty($conf->file->cookie_cryptkey) ? $conf->file->cookie_cryptkey : '' ); $cryptkey = (! empty($conf->file->cookie_cryptkey) ? $conf->file->cookie_cryptkey : '' );
$entityCookie = new DolCookie($cryptkey); $entityCookie = new DolCookie($cryptkey);
$entityCookie->_setCookie($entityCookieName, $entity, $ttl); $entityCookie->_setCookie($entityCookieName, $entity, $ttl);
} }
// Module webcalendar // Module webcalendar
if (! empty($conf->webcal->enabled) && $user->webcal_login != "") if (! empty($conf->webcal->enabled) && $user->webcal_login != "")
{ {
$domain=''; $domain='';
// Creation du cookie permettant de sauver le login // Creation du cookie permettant de sauver le login
$cookiename='webcalendar_login'; $cookiename='webcalendar_login';
if (! isset($_COOKIE[$cookiename])) if (! isset($_COOKIE[$cookiename]))
@ -534,7 +526,7 @@ if (! defined('NOLOGIN'))
setcookie($cookiename, 'TODO', 0, "/", $domain, 0); setcookie($cookiename, 'TODO', 0, "/", $domain, 0);
} }
} }
// Module Phenix // Module Phenix
if (! empty($conf->phenix->enabled) && $user->phenix_login != "" && $conf->phenix->cookie) if (! empty($conf->phenix->enabled) && $user->phenix_login != "" && $conf->phenix->cookie)
{ {
@ -545,7 +537,7 @@ if (! defined('NOLOGIN'))
} }
} }
} }
// Si user admin, on force droits sur les modules base // Si user admin, on force droits sur les modules base
if ($user->admin) if ($user->admin)
@ -557,7 +549,7 @@ if (! defined('NOLOGIN'))
$user->rights->user->self->creer=1; $user->rights->user->self->creer=1;
$user->rights->user->self->password=1; $user->rights->user->self->password=1;
} }
/* /*
* Overwrite configs global par configs perso * Overwrite configs global par configs perso
* ------------------------------------------ * ------------------------------------------
@ -634,7 +626,7 @@ if (! defined('NOLOGIN'))
// Si le login n'a pu etre recupere, on est identifie avec un compte qui n'existe pas. // Si le login n'a pu etre recupere, on est identifie avec un compte qui n'existe pas.
// Tentative de hacking ? // Tentative de hacking ?
if (! $user->login) accessforbidden(); if (! $user->login) accessforbidden();
// Check if user is active // Check if user is active
if ($user->statut < 1) if ($user->statut < 1)
{ {
@ -862,7 +854,7 @@ function top_menu($head, $title='', $target='')
if (! $result) // If failed to include, we try with standard if (! $result) // If failed to include, we try with standard
{ {
$conf->top_menu='eldy_backoffice.php'; $conf->top_menu='eldy_backoffice.php';
include_once(DOL_DOCUMENT_ROOT ."/includes/menus/barre_top/".$conf->top_menu); include_once(DOL_DOCUMENT_ROOT ."/includes/menus/barre_top/".$conf->top_menu);
} }
$menutop = new MenuTop($db); $menutop = new MenuTop($db);
$menutop->atarget=$target; $menutop->atarget=$target;