if($record->fields->Access_Level__c == "OtherDatabaseAccessGroup"){
// ==== This user has access to the file structure in Modx
$username = "ModxUserName"; // Modx user to impersonate
$password = "somapassword"; // Modx password for that user
}
// ================================================= HANDLE MODX LOGIN =================================
if(isset($username)){
$dbase = $modx->dbConfig['dbase'];
$table_prefix = $modx->dbConfig['table_prefix'];
$sql = "SELECT $dbase.`".$table_prefix."web_users`.*, $dbase.`".$table_prefix."web_user_attributes`.* FROM $dbase.`".$table_prefix."web_users`, $dbase.`".$table_prefix."web_user_attributes` WHERE BINARY $dbase.`".$table_prefix."web_users`.username = '".$username."' and $dbase.`".$table_prefix."web_user_attributes`.internalKey=$dbase.`".$table_prefix."web_users`.id;";
$ds = $modx->db->query($sql);
$limit = $modx->db->getRecordCount($ds);
if($limit==0 || $limit>1) {
$output = webLoginAlert("Incorrect username or password entered!");
return;
}
$row = $modx->db->getRow($ds);
$internalKey = $row['internalKey'];
$dbasePassword = $row['password'];
$failedlogins = $row['failedlogincount'];
$blocked = $row['blocked'];
$blockeduntildate = $row['blockeduntil'];
$blockedafterdate = $row['blockedafter'];
$registeredsessionid = $row['sessionid'];
$role = $row['role'];
$lastlogin = $row['lastlogin'];
$nrlogins = $row['logincount'];
$fullname = $row['fullname'];
// $sessionRegistered = checkSession();
$email = $row['email'];
// load user settings
if($internalKey){
$result = $modx->db->query("SELECT setting_name, setting_value FROM ".$dbase.".`".$table_prefix."web_user_settings` WHERE webuser='$internalKey'");
while ($row = $modx->fetchRow($result, 'both')) $modx->config[$row[0]] = $row[1];
}
$_SESSION['webShortname']=$username;
$_SESSION['webFullname']=$UserFullName ;
$_SESSION['webEmail']=$_SESSION['USEREMAIL'];
$_SESSION['webValidated']=1;
$_SESSION['webInternalKey']=$internalKey;
$_SESSION['webValid']=base64_encode($password);
$_SESSION['webUser']=base64_encode($username);
$_SESSION['webFailedlogins']=$failedlogins;
$_SESSION['webLastlogin']=$lastlogin;
$_SESSION['webnrlogins']=$nrlogins;
$_SESSION['webUserGroupNames'] = ''; // reset user group names
// get user's document groups
$dg='';$i=0;
$tblug = $dbase.".`".$table_prefix."web_groups`";
$tbluga = $dbase.".`".$table_prefix."webgroup_access`";
$sql = "SELECT uga.documentgroup
FROM $tblug ug
INNER JOIN $tbluga uga ON uga.webgroup=ug.webgroup
WHERE ug.webuser =".$internalKey;
$ds = $modx->db->query($sql);
while ($row = $modx->db->getRow($ds,'num')) $dg[$i++]=$row[0];
$_SESSION['webDocgroups'] = $dg;
} // end if isset modx user
//==================================================END MODX LOGIN =====================================