You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
5.2 KiB

<?php
/*********************************************************************************
* The contents of this file are subject to the SugarCRM Public License Version 1.1.2
* ("License"); You may not use this file except in compliance with the
* License. You may obtain a copy of the License at http://www.sugarcrm.com/SPL
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Original Code is: SugarCRM Open Source
* The Initial Developer of the Original Code is SugarCRM, Inc.
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.;
* All Rights Reserved.
* Contributor(s): ______________________________________.
********************************************************************************/
/*********************************************************************************
* $Header: /advent/projects/wesat/vtiger_crm/sugarcrm/modules/Users/Authenticate.php,v 1.10 2005/02/28 05:25:22 jack Exp $
* Description: TODO: To be written.
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
* All Rights Reserved.
* Contributor(s): ______________________________________..
********************************************************************************/
require_once('modules/Users/User.php');
require_once('include/logging.php');
//require_once('modules/Users/AccessControl.php');
global $mod_strings;
$local_log =& LoggerManager::getLogger('authenticate');
$focus = new User();
// Add in defensive code here.
$focus->user_name = $_REQUEST['user_name'];
$user_password = $_REQUEST['user_password'];
$focus->load_user($user_password);
if($focus->is_authenticated())
{
// Recording the login info
$usip=$_SERVER['REMOTE_ADDR'];
$intime=date("Y/m/d H:i:s");
require_once('modules/Users/LoginHistory.php');
$loghistory=new LoginHistory();
$Signin = $loghistory->user_login($focus->user_name,$usip,$intime);
//Authentication for tutos
//include('modules/Calendar/Authenticate.php');
// save the user information into the session
// go to the home screen
//Security related entries start
require_once('modules/Users/UserInfoUtil.php');
//$rolename = fetchUserRole($focus->id);
//$profilename = fetchUserProfile($focus->id);
$profileid = fetchUserProfileId($focus->id);
//setting the role into the session
//$_SESSION['authenticated_user_roleid'] = $profilename;
//Setting the Object in Session
/*
$accessObj = new AccessControl();
$accessObj->authenticated_user_profileid = $profileid;
$accessObj->tab_permission_set = setPermittedTabs2Session($profileid);
$accessObj->action_permission_set = setPermittedActions2Session($profileid);
$_SESSION['access_privileges'] = $accessObj;
*/
$_SESSION['authenticated_user_profileid'] = $profileid;
setPermittedTabs2Session($profileid);
setPermittedActions2Session($profileid);
setPermittedDefaultSharingAction2Session($profileid);
//Security related entries end
header("Location: index.php?action=index&module=Home");
session_unregister('login_password');
session_unregister('login_error');
session_unregister('login_user_name');
$_SESSION['authenticated_user_id'] = $focus->id;
// store the user's theme in the session
if (isset($_REQUEST['login_theme'])) {
$authenticated_user_theme = $_REQUEST['login_theme'];
}
elseif (isset($_REQUEST['ck_login_theme'])) {
$authenticated_user_theme = $_REQUEST['ck_login_theme'];
}
else {
$authenticated_user_theme = $default_theme;
}
// store the user's language in the session
if (isset($_REQUEST['login_language'])) {
$authenticated_user_language = $_REQUEST['login_language'];
}
elseif (isset($_REQUEST['ck_login_language'])) {
$authenticated_user_language = $_REQUEST['ck_login_language'];
}
else {
$authenticated_user_language = $default_language;
}
// If this is the default user and the default user theme is set to reset, reset it to the default theme value on each login
if($reset_theme_on_default_user && $focus->user_name == $default_user_name)
{
$authenticated_user_theme = $default_theme;
}
if(isset($reset_language_on_default_user) && $reset_language_on_default_user && $focus->user_name == $default_user_name)
{
$authenticated_user_language = $default_language;
}
$_SESSION['authenticated_user_theme'] = $authenticated_user_theme;
$_SESSION['authenticated_user_language'] = $authenticated_user_language;
$log->debug("authenticated_user_theme is $authenticated_user_theme");
$log->debug("authenticated_user_language is $authenticated_user_language");
// Clear all uploaded import files for this user if it exists
global $import_dir;
$tmp_file_name = $import_dir. "IMPORT_".$focus->id;
if (file_exists($tmp_file_name))
{
unlink($tmp_file_name);
}
}
else
{
$_SESSION['login_user_name'] = $focus->user_name;
$_SESSION['login_password'] = $user_password;
$_SESSION['login_error'] = $mod_strings['ERR_INVALID_PASSWORD'];
// go back to the login screen.
// create an error message for the user.
header("Location: index.php");
}
?>