info('Begin: SoapHelperWebServices->validate_authenticated'); if(!empty($session_id)){ // only initialize session once in case this method is called multiple times if(!session_id()) { session_id($session_id); session_start(); } if(!empty($_SESSION['is_valid_session']) && $this->is_valid_ip_address('ip_address') && $_SESSION['type'] == 'user'){ global $current_user; require_once('modules/Users/User.php'); $current_user = new User(); $current_user->retrieve($_SESSION['user_id']); $this->login_success(); $GLOBALS['log']->info('Begin: SoapHelperWebServices->validate_authenticated - passed'); $GLOBALS['log']->info('End: SoapHelperWebServices->validate_authenticated'); return true; } $GLOBALS['log']->debug("calling destroy"); session_destroy(); } LogicHook::initialize(); $GLOBALS['logic_hook']->call_custom_logic('Users', 'login_failed'); $GLOBALS['log']->info('End: SoapHelperWebServices->validate_authenticated - validation failed'); return false; } function check_modules_access($user, $module_name, $action='write'){ if(!isset($_SESSION['avail_modules'])){ $_SESSION['avail_modules'] = get_user_module_list($user); } if(isset($_SESSION['avail_modules'][$module_name])){ if($action == 'write' && $_SESSION['avail_modules'][$module_name] == 'read_only'){ if(is_admin($user))return true; return false; }elseif($action == 'write' && strcmp(strtolower($module_name), 'users') == 0 && !$user->isAdminForModule($module_name)){ //rrs bug: 46000 - If the client is trying to write to the Users module and is not an admin then we need to stop them return false; } return true; } return false; } }