BUG 9363 What is the difference between Default lang in Login and System

- In the login screen for the classic skin was not selected the language set in the ADMIN
This commit is contained in:
Julio Cesar Laura
2012-07-09 19:08:34 -04:00
parent 41e013196a
commit 3cb00f3de2
2 changed files with 222 additions and 199 deletions

View File

@@ -23,59 +23,68 @@
* *
*/ */
$aFields = array();
if (! isset ( $_GET ['u'] )) { if (!isset($_GET['u'])) {
$aFields ['URL'] = ''; $aFields['URL'] = '';
} } else {
else { $aFields['URL'] = urldecode($_GET['u']);
$aFields ['URL'] = urldecode ( $_GET ['u'] ); }
}
if (! isset ( $_SESSION ['G_MESSAGE'] )) {
$_SESSION ['G_MESSAGE'] = '';
}
if (! isset ( $_SESSION ['G_MESSAGE_TYPE'] )) {
$_SESSION ['G_MESSAGE_TYPE'] = '';
}
$msg = $_SESSION ['G_MESSAGE']; if (!isset($_SESSION['G_MESSAGE'])) {
$msgType = $_SESSION ['G_MESSAGE_TYPE']; $_SESSION['G_MESSAGE'] = '';
}
if (! isset ( $_SESSION ['FAILED_LOGINS'] )) { if (!isset($_SESSION['G_MESSAGE_TYPE'])) {
$_SESSION ['FAILED_LOGINS'] = 0; $_SESSION['G_MESSAGE_TYPE'] = '';
} }
$sFailedLogins = $_SESSION ['FAILED_LOGINS'];
require_once 'classes/model/LoginLog.php'; $msg = $_SESSION['G_MESSAGE'];
$msgType = $_SESSION['G_MESSAGE_TYPE'];
$aFields ['LOGIN_VERIFY_MSG'] = G::loadTranslation ( 'LOGIN_VERIFY_MSG' ); if (!isset($_SESSION['FAILED_LOGINS'])) {
$_SESSION['FAILED_LOGINS'] = 0;
}
if ( isset ($_SESSION ['USER_LOGGED']) ) { $sFailedLogins = $_SESSION['FAILED_LOGINS'];
require_once 'classes/model/LoginLog.php';
$aFields['LOGIN_VERIFY_MSG'] = G::loadTranslation('LOGIN_VERIFY_MSG');
if (isset ($_SESSION['USER_LOGGED'])) {
//close the session, if the current session_id was used in PM. //close the session, if the current session_id was used in PM.
$oCriteria = new Criteria ( 'workflow' ); $oCriteria = new Criteria('workflow');
$oCriteria->add ( LoginLogPeer::LOG_SID, session_id () );
$oCriteria->add ( LoginLogPeer::USR_UID, isset ( $_SESSION ['USER_LOGGED'] ) ? $_SESSION ['USER_LOGGED'] : '-' ); $oCriteria->add(LoginLogPeer::LOG_SID, session_id());
$oCriteria->add ( LoginLogPeer::LOG_STATUS, 'ACTIVE' ); $oCriteria->add(LoginLogPeer::USR_UID, isset($_SESSION['USER_LOGGED']) ? $_SESSION['USER_LOGGED'] : '-');
$oCriteria->add ( LoginLogPeer::LOG_END_DATE, NULL, Criteria::ISNULL ); $oCriteria->add(LoginLogPeer::LOG_STATUS, 'ACTIVE');
$oDataset = LoginLogPeer::doSelectRS ( $oCriteria ); $oCriteria->add(LoginLogPeer::LOG_END_DATE, null, Criteria::ISNULL);
$oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
$oDataset->next (); $oDataset = LoginLogPeer::doSelectRS($oCriteria);
$aRow = $oDataset->getRow ();
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();
if ($aRow) { if ($aRow) {
if ($aRow ['LOG_STATUS'] != 'CLOSED' && $aRow ['LOG_END_DATE'] == NULL) { if ($aRow['LOG_STATUS'] != 'CLOSED' && $aRow['LOG_END_DATE'] == null) {
$weblog = new LoginLog ( ); $weblog = new LoginLog();
$aLog ['LOG_UID'] = $aRow ['LOG_UID'];
$aLog ['LOG_STATUS'] = 'CLOSED'; $aLog['LOG_UID'] = $aRow['LOG_UID'];
$aLog ['LOG_IP'] = $aRow ['LOG_IP']; $aLog['LOG_STATUS'] = 'CLOSED';
$aLog ['LOG_SID'] = session_id (); $aLog['LOG_IP'] = $aRow['LOG_IP'];
$aLog ['LOG_INIT_DATE'] = $aRow ['LOG_INIT_DATE']; $aLog['LOG_SID'] = session_id();
$aLog ['LOG_END_DATE'] = date ( 'Y-m-d H:i:s' ); $aLog['LOG_INIT_DATE'] = $aRow['LOG_INIT_DATE'];
$aLog ['LOG_CLIENT_HOSTNAME'] = $aRow ['LOG_CLIENT_HOSTNAME']; $aLog['LOG_END_DATE'] = date('Y-m-d H:i:s');
$aLog ['USR_UID'] = $aRow ['USR_UID']; $aLog['LOG_CLIENT_HOSTNAME'] = $aRow['LOG_CLIENT_HOSTNAME'];
$weblog->update ( $aLog ); $aLog['USR_UID'] = $aRow['USR_UID'];
$weblog->update($aLog);
} }
} }
} } else {
else {
// Execute SSO trigger // Execute SSO trigger
$pluginRegistry =& PMPluginRegistry::getSingleton(); $pluginRegistry =& PMPluginRegistry::getSingleton();
if (defined('PM_SINGLE_SIGN_ON')) { if (defined('PM_SINGLE_SIGN_ON')) {
@@ -85,91 +94,114 @@
@session_destroy(); @session_destroy();
session_start(); session_start();
session_regenerate_id(); session_regenerate_id();
// Authenticate // Authenticate
require_once 'authentication.php'; require_once 'authentication.php';
die(); die();
} }
} }
} }
} }
//end log //end log
//start new session //start new session
@session_destroy (); @session_destroy();
session_start (); session_start();
session_regenerate_id (); session_regenerate_id();
if (strlen ( $msg ) > 0) { if (strlen($msg) > 0) {
$_SESSION ['G_MESSAGE'] = $msg; $_SESSION['G_MESSAGE'] = $msg;
} }
if (strlen ( $msgType ) > 0) { if (strlen($msgType) > 0) {
$_SESSION ['G_MESSAGE_TYPE'] = $msgType; $_SESSION['G_MESSAGE_TYPE'] = $msgType;
} }
$_SESSION ['FAILED_LOGINS'] = $sFailedLogins;
//translation $_SESSION['FAILED_LOGINS'] = $sFailedLogins;
$Translations = G::getModel("Translation");
$translationsTable = $Translations->getTranslationEnvironments();
$availableLangArray = array (); //translation
$availableLangArray [] = array ('LANG_ID' => 'char', 'LANG_NAME' => 'char' ); $Translations = G::getModel("Translation");
foreach ( $translationsTable as $locale ) { $translationsTable = $Translations->getTranslationEnvironments();
$availableLangArray = array ();
$availableLangArray [] = array ('LANG_ID' => 'char', 'LANG_NAME' => 'char' );
foreach ($translationsTable as $locale) {
$row['LANG_ID'] = $locale['LOCALE']; $row['LANG_ID'] = $locale['LOCALE'];
if( $locale['COUNTRY'] != '.' )
if ($locale['COUNTRY'] != '.') {
$row['LANG_NAME'] = $locale['LANGUAGE'] . ' (' . (ucwords(strtolower($locale['COUNTRY']))) . ')'; $row['LANG_NAME'] = $locale['LANGUAGE'] . ' (' . (ucwords(strtolower($locale['COUNTRY']))) . ')';
else } else {
$row['LANG_NAME'] = $locale['LANGUAGE']; $row['LANG_NAME'] = $locale['LANGUAGE'];
}
$availableLangArray [] = $row; $availableLangArray [] = $row;
} }
global $_DBArray;
$_DBArray ['langOptions'] = $availableLangArray;
$G_PUBLISH = new Publisher ( ); global $_DBArray;
$G_PUBLISH->AddContent ( 'xmlform', 'xmlform', 'login/login', '', $aFields, SYS_URI . 'login/authentication.php' ); $_DBArray ['langOptions'] = $availableLangArray;
G::LoadClass ( 'serverConfiguration' );
//get the serverconf singleton, and check if we can send the heartbeat G::LoadClass('configuration');
$oServerConf = & serverConf::getSingleton ();
$sflag = $oServerConf->getHeartbeatProperty('HB_OPTION','HEART_BEAT_CONF'); $oConf = new Configurations();
$sflag = (trim($sflag)!='')?$sflag:'1'; $oConf->loadConfig($obj, 'ENVIRONMENT_SETTINGS', '');
$aFields['USER_LANG'] = isset($oConf->aConfig['login_defaultLanguage'])
? $oConf->aConfig['login_defaultLanguage']
: 'en';
//get date of next beat $G_PUBLISH = new Publisher();
$nextBeatDate = $oServerConf->getHeartbeatProperty('HB_NEXT_BEAT_DATE','HEART_BEAT_CONF'); $G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/login', '', $aFields, SYS_URI . 'login/authentication.php');
$sflag = 1; G::LoadClass('serverConfiguration');
//if flag to send heartbeat is enabled, and it is time to send heartbeat, sent it using asynchronous beat.
if( ($sflag=="1") && ((strtotime ( "now" ) > $nextBeatDate) || is_null($nextBeatDate) ) ){ //get the serverconf singleton, and check if we can send the heartbeat
$oServerConf = & serverConf::getSingleton();
$sflag = $oServerConf->getHeartbeatProperty('HB_OPTION', 'HEART_BEAT_CONF');
$sflag = (trim($sflag) != '') ? $sflag : '1';
//get date of next beat
$nextBeatDate = $oServerConf->getHeartbeatProperty('HB_NEXT_BEAT_DATE', 'HEART_BEAT_CONF');
$sflag = 1;
//if flag to send heartbeat is enabled, and it is time to send heartbeat, sent it using asynchronous beat.
if (($sflag == "1") && ((strtotime("now") > $nextBeatDate) || is_null($nextBeatDate))) {
$oHeadPublisher =& headPublisher::getSingleton(); $oHeadPublisher =& headPublisher::getSingleton();
//To do: we need to change to ExtJs //To do: we need to change to ExtJs
$oHeadPublisher->addScriptCode( 'var flagHeartBeat = 1; '); $oHeadPublisher->addScriptCode('var flagHeartBeat = 1;');
} } else {
else $oHeadPublisher->addScriptCode('var flagHeartBeat = 0;');
$oHeadPublisher->addScriptCode( 'var flagHeartBeat = 0; '); }
//check if we show the panel with the getting started info //check if we show the panel with the getting started info
require_once 'classes/model/Configuration.php'; require_once 'classes/model/Configuration.php';
$oConfiguration = new Configuration ( ); $oConfiguration = new Configuration ( );
$oCriteria = new Criteria ( 'workflow' ); $oCriteria = new Criteria ( 'workflow' );
$oCriteria->add ( ConfigurationPeer::CFG_UID, 'getStarted' ); $oCriteria->add(ConfigurationPeer::CFG_UID, 'getStarted');
$oCriteria->add ( ConfigurationPeer::OBJ_UID, '' ); $oCriteria->add(ConfigurationPeer::OBJ_UID, '');
$oCriteria->add ( ConfigurationPeer::CFG_VALUE, '1' ); $oCriteria->add(ConfigurationPeer::CFG_VALUE, '1');
$oCriteria->add ( ConfigurationPeer::PRO_UID, '' ); $oCriteria->add(ConfigurationPeer::PRO_UID, '');
$oCriteria->add ( ConfigurationPeer::USR_UID, '' ); $oCriteria->add(ConfigurationPeer::USR_UID, '');
$oCriteria->add ( ConfigurationPeer::APP_UID, '' ); $oCriteria->add(ConfigurationPeer::APP_UID, '');
$flagGettingStarted = ConfigurationPeer::doCount ( $oCriteria ); $flagGettingStarted = ConfigurationPeer::doCount($oCriteria);
if( $flagGettingStarted == 0 ) { if ($flagGettingStarted == 0) {
$oHeadPublisher->addScriptCode( 'var flagGettingStarted = 1; '); $oHeadPublisher->addScriptCode('var flagGettingStarted = 1;');
} } else {
else $oHeadPublisher->addScriptCode('var flagGettingStarted = 0;');
$oHeadPublisher->addScriptCode( 'var flagGettingStarted = 0; '); }
G::loadClass('configuration'); $dummy = '';
$oConf = new Configurations;
$oConf->loadConfig($obj, 'ENVIRONMENT_SETTINGS','');
$flagForgotPassword = isset($oConf->aConfig['login_enableForgotPassword'])? $oConf->aConfig['login_enableForgotPassword']: 'off'; G::loadClass('configuration');
$oHeadPublisher->addScriptCode("var flagForgotPassword = '$flagForgotPassword';");
$oConf = new Configurations();
$oConf->loadConfig($dummy, 'ENVIRONMENT_SETTINGS', '');
$flagForgotPassword = isset($oConf->aConfig['login_enableForgotPassword'])
? $oConf->aConfig['login_enableForgotPassword']
: 'off';
$oHeadPublisher->addScriptCode("var flagForgotPassword = '$flagForgotPassword';");
G::RenderPage('publish');
G::RenderPage ( "publish" );

View File

@@ -1,54 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dynaForm name="login" version="1.0" basedir="" xmlform_type="NORMAL" width="400px" enabletemplate="1"> <dynaForm name="login" version="1.0" basedir="" xmlform_type="NORMAL" width="400px" enabletemplate="1">
<TITLE type="title"> <TITLE type="title">
<en>Login</en> <en>Login</en>
</TITLE> </TITLE>
<USR_USERNAME type="text" size="30" maxlength="50" validate="Any"> <USR_USERNAME type="text" size="30" maxlength="50" validate="Any">
<en>User</en> <en>User</en>
</USR_USERNAME> </USR_USERNAME>
<USR_PASSWORD type="password" size="30" maxlength="32"> <USR_PASSWORD type="password" size="30" maxlength="32">
<en>Password</en> <en>Password</en>
</USR_PASSWORD> </USR_PASSWORD>
<USER_LANG type="dropdown" sqlconnection="dbarray"> <USER_LANG type="dropdown" sqlconnection="dbarray">
SELECT LANG_ID, LANG_NAME FROM langOptions SELECT LANG_ID, LANG_NAME FROM langOptions
<en>Language</en> <en>Language</en>
</USER_LANG> </USER_LANG>
<URL type="hidden"/> <URL type="hidden"/>
<LOGIN_VERIFY_MSG type="private" showInTable="0"/> <LOGIN_VERIFY_MSG type="private" showInTable="0"/>
<BSUBMIT type="submit"> <BSUBMIT type="submit">
<en>Login</en> <en>Login</en>
</BSUBMIT> </BSUBMIT>
<FORGOT_PASWORD_LINK type="link" link="forgotPassword" onclick="" colAlign="right" colWidth="135" style="display:none;">
<FORGOT_PASWORD_LINK type="link" link="forgotPassword" onclick="" colAlign="right" colWidth="135" style="display:none;">
<en>Forgot Password</en> <en>Forgot Password</en>
</FORGOT_PASWORD_LINK> </FORGOT_PASWORD_LINK>
<JS type="javascript">
<![CDATA[
<JS type="javascript"><![CDATA[
// enable/disable forgot password link // enable/disable forgot password link
if(flagForgotPassword == 'on' || flagForgotPassword == '1') if(flagForgotPassword == 'on' || flagForgotPassword == '1') {
document.getElementById("form[FORGOT_PASWORD_LINK]").style.display = 'block';//hideRowById('FORGOT_PASWORD_LINK'); document.getElementById("form[FORGOT_PASWORD_LINK]").style.display = 'block';//hideRowById('FORGOT_PASWORD_LINK');
}
var panel; var panel;
function processHbInfo(){ function processHbInfo() {
ajax_server="../services/processHeartBeat_Ajax.php"; ajax_server = "../services/processHeartBeat_Ajax.php";
parameters="action=processInformation"; parameters = "action=processInformation";
method="POST"; method = "POST";
callback=""; callback = "";
asynchronous=true; asynchronous = true;
ajax_post(ajax_server, parameters, method, callback, asynchronous ); ajax_post(ajax_server, parameters, method, callback, asynchronous);
}; };
function showGettingStarted () { function showGettingStarted() {
panel = new leimnud.module.panel(); panel = new leimnud.module.panel();
panel.options={ panel.options = {
size :{w:620,h:500}, size: {w:620,h:500},
position:{x:50,y:50,center:true}, position: {x:50,y:50,center:true},
control :{close:true,resize:false},fx:{modal:true}, control: {close:true,resize:false},fx:{modal:true},
statusBar:false, statusBar: false,
fx :{shadow:true,modal:true} fx: {shadow:true,modal:true}
}; };
panel.make(); panel.make();
panel.loader.show(); panel.loader.show();
@@ -56,7 +54,7 @@ function showGettingStarted () {
url:"../services/login_getStarted.php", url:"../services/login_getStarted.php",
method:"POST" method:"POST"
}); });
r.callback=function(rpc) { r.callback = function(rpc) {
panel.loader.hide(); panel.loader.hide();
panel.addContent(rpc.xmlhttp.responseText); panel.addContent(rpc.xmlhttp.responseText);
}; };
@@ -64,12 +62,12 @@ function showGettingStarted () {
}; };
var saveConfig = function() { var saveConfig = function() {
if(document.getElementById("getStarted").checked==true) { if (document.getElementById("getStarted").checked == true) {
var oRPC = new leimnud.module.rpc.xmlhttp({ var oRPC = new leimnud.module.rpc.xmlhttp({
url : '../login/login_Ajax', url: '../login/login_Ajax',
async : false, async: false,
method: 'POST', method: 'POST',
args : 'function=getStarted_save' args: 'function=getStarted_save'
}); });
oRPC.make(); oRPC.make();
} }
@@ -77,24 +75,28 @@ var saveConfig = function() {
} }
var dynaformOnload = function() { var dynaformOnload = function() {
setFocus (getField ('USR_USERNAME')); setFocus(getField('USR_USERNAME'));
if (flagHeartBeat) processHbInfo(); if (flagHeartBeat) {
if (flagGettingStarted) showGettingStarted(); processHbInfo();
}
if (flagGettingStarted) {
showGettingStarted();
}
}; };
var openInfoPanel = function() { var openInfoPanel = function() {
var oInfoPanel = new leimnud.module.panel(); var oInfoPanel = new leimnud.module.panel();
oInfoPanel.options = { oInfoPanel.options = {
size :{w:500,h:424}, size: {w:500,h:424},
position:{x:0,y:0,center:true}, position: {x:0,y:0,center:true},
title :'@G::LoadTranslation(ID_SYSTEM_INFO)', title: '@G::LoadTranslation(ID_SYSTEM_INFO)',
theme :'processmaker', theme: 'processmaker',
control :{ control: {
close :true, close: true,
drag :false drag: false
}, },
fx:{ fx:{
modal:true modal: true
} }
}; };
oInfoPanel.setStyle = {modal: { oInfoPanel.setStyle = {modal: {
@@ -102,10 +104,10 @@ var openInfoPanel = function() {
}}; }};
oInfoPanel.make(); oInfoPanel.make();
var oRPC = new leimnud.module.rpc.xmlhttp({ var oRPC = new leimnud.module.rpc.xmlhttp({
url : '../login/dbInfo', url: '../login/dbInfo',
async : false, async: false,
method: 'POST', method: 'POST',
args : '' args: ''
}); });
oRPC.make(); oRPC.make();
oInfoPanel.addContent(oRPC.xmlhttp.responseText); oInfoPanel.addContent(oRPC.xmlhttp.responseText);
@@ -114,26 +116,15 @@ var openInfoPanel = function() {
leimnud.event.add(document.getElementById('form[BSUBMIT]'), 'click', function() { leimnud.event.add(document.getElementById('form[BSUBMIT]'), 'click', function() {
setNestedProperty(this, Array('disabled'), 'true'); setNestedProperty(this, Array('disabled'), 'true');
setNestedProperty(this, Array('value'), @@LOGIN_VERIFY_MSG); setNestedProperty(this, Array('value'), @@LOGIN_VERIFY_MSG);
lang = getField('USER_LANG').value;
createCookie('pmos_generik', '{"lang":"'+lang+'"}', 365);
var client = getBrowserClient(); var client = getBrowserClient();
if (client.browser != "firefox"){ if (client.browser != "firefox") {
document.login.submit(); document.login.submit();
} }
}.extend(document.getElementById('form[BSUBMIT]'))); }.extend(document.getElementById('form[BSUBMIT]')));
try{ ]]>
c = new String(readCookie('pmos_generik')); </JS>
o = eval("("+c+")");
if( o != null){
getField('USER_LANG').value = o.lang;
}
}
catch(e){}
]]></JS>
</dynaForm> </dynaForm>