0% found this document useful (0 votes)
160 views

Script Error

The document defines functions for parsing JSON strings and objects in JavaScript. It includes functions for stringifying JavaScript values to JSON text, parsing JSON text to JavaScript values, and checking if a string is a valid JSON string. It also defines functions for sending responses and errors from an AJAX request and initializing the request and response objects.

Uploaded by

ones
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
160 views

Script Error

The document defines functions for parsing JSON strings and objects in JavaScript. It includes functions for stringifying JavaScript values to JSON text, parsing JSON text to JavaScript values, and checking if a string is a valid JSON string. It also defines functions for sending responses and errors from an AJAX request and initializing the request and response objects.

Uploaded by

ones
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 82

Response.

WriteHtml("\n");
var JSON = function () {
var m = {
'\b': '\\b',
'\t': '\\t',
'\n': '\\n',
'\f': '\\f',
'\r': '\\r',
'"' : '\\"',
'\\': '\\\\'
},
s = {
'boolean': function (x) {
return String(x);
},
number: function (x) {
return isFinite(x) ? String(x) : 'null';
},
string: function (x) {
if (/["\\\x00-\x1f]/.test(x)) {
x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
var c = m[b];
if (c) {
return c;
}
c = b.charCodeAt();
return '\\u00' +
Math.floor(c / 16).toString(16) +
(c % 16).toString(16);
});
}
return '"' + x + '"';
},
object: function (x) {
if (x) {
var a = [], b, f, i, l, v;
if (x instanceof Array) {
a[0] = '[';
l = x.length;
for (i = 0; i < l; i += 1) {
v = x[i];
f = s[typeof v];
if (f) {
v = f(v);
if (typeof v == 'string') {
if (b) {
a[a.length] = ',';
}
a[a.length] = v;
b = true;
}
}
}
a[a.length] = ']';
} else if (x instanceof Object) {
a[0] = '{';
for (i in x) {
v = x[i];

f = s[typeof v];
if (f) {
v = f(v);
if (typeof v == 'string') {
if (b) {
a[a.length] = ',';
}
a.push(s.string(i), ':', v);
b = true;
}
}
}
a[a.length] = '}';
} else {
return;
}
return a.join('');
}
return 'null';
}
};
return {
copyright: '(c)2005 JSON.org',
license: 'http://www.JSON.org/license.html',
/*
Stringify a JavaScript value, producing a JSON text.
*/
ToString: function (v) {
var f = s[typeof v];
if (f) {
v = f(v);
if (typeof v == 'string') {
return v;
}
}
return null;
},
/*
FromString a JSON text, producing a JavaScript value.
It returns false if there is a syntax error.
*/
FromString: function (text) {
try {
return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
text.replace(/"(\\.|[^"\\])*"/g, ''))) &&
eval('(' + text + ')');
} catch (e) {
return null;
}
}
};
}();
//'
//' Returns true if the sent JSON string is a legal, non-empty string.
//'
function IsJsonString(jsonString)
{
return null != jsonString && "" != jsonString && "[]" != jsonString;

}
Response.WriteHtml("\n");
//--// sends the result to the client and halts processing of the page
//--function SendResult(oResponse)
{
oResponse.m_bSuccess = true;
oResponse.m_sErrorMsg="";
var sResultText = JSON.ToString(oResponse);
if(sResultText==false)
{
return false;
}
Response.Clear();
Response.Write(sResultText);
Response.End();
return true;
}
//--// sends an error to the client and halts processing of the page
//--function SendError(sErrorMsg)
{
var oResponse = new Object();
oResponse.m_bSuccess = false;
oResponse.m_sErrorMsg = sErrorMsg;
var sResultText = JSON.ToString(oResponse);
if(sResultText==false)
{
return false;
}
Response.Clear();
Response.Write(sResultText);
Response.End();
return true;
}
//--// create and load the oRequest object
//--function InitializeRequest()
{
var sJson = Request.Form("oRequest").Item;
if(sJson==null)
{
SendError("Invalid Request");
return null;
}
sJson = decodeURIComponent(sJson);
var oRequest = JSON.FromString(sJson);
if(oRequest==null)
{

SendError("Invalid Request");
return null;
}
return oRequest;
}
//--// create and initialize the response object
//--function InitializeResponse()
{
var oResponse = new Object();
oResponse.m_bSuccess=false;
oResponse.m_sErrorMsg=null;
return oResponse;
}
Response.WriteHtml("\n");
var nWebUserID = parseInt(Session("nWebUserID"));
if(isNaN(nWebUserID))
{
Response.End();
}
Response.WriteHtml("\n");
Response.WriteHtml("<script language=\"JavaScript\" src=\"/NmConsole/Core/AspFor
ms/MozXmlDom.js\"></script>\n<script language=\"javascript\" src=\"/NmConsole/Co
re/AspForms/AspForms.js\"></script>\n");
Response.WriteHtml("<script language=\"javascript\" src=\"/NmConsole/Core/Ajax/P
rototype.js\"></script>\n<script language=\"javascript\" src=\"/NmConsole/Core/A
jax/Ajax.js\"></script>\n<script language=\"javascript\" src=\"/NmConsole/Core/A
jax/json.js\"></script>\n");
function Ajax()
{
}
//--// asynchronously loads the contents of sUrl into the html element specified by
sElementID
// returns the result HTML as a string
//--Ajax.LoadAsString=function(sElementID,sUrl,sInitialText)
{
var sHtml = "<script>Ajax.LoadElement(\"" + sElementID + "\",\"" + sUrl
+ "\",\"" + sInitialText + "\")</script>";
return sHtml;
}
//--// creates a SPAN html element and asynchronously loads the contents from sUrl
// returns the result HTML as a string
//--Ajax.LoadSpanAsString=function(sElementID,sUrl,sInitialText)
{

var sHtml = "<span ID=\"" + sElementID + "\" >&nbsp;</span>\n" +


Ajax.LoadAsString(sElementID,sUrl,sInitialText);
return sHtml;
}
Response.WriteHtml("\n");
var JSON = function () {
var m = {
'\b': '\\b',
'\t': '\\t',
'\n': '\\n',
'\f': '\\f',
'\r': '\\r',
'"' : '\\"',
'\\': '\\\\'
},
s = {
'boolean': function (x) {
return String(x);
},
number: function (x) {
return isFinite(x) ? String(x) : 'null';
},
string: function (x) {
if (/["\\\x00-\x1f]/.test(x)) {
x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
var c = m[b];
if (c) {
return c;
}
c = b.charCodeAt();
return '\\u00' +
Math.floor(c / 16).toString(16) +
(c % 16).toString(16);
});
}
return '"' + x + '"';
},
object: function (x) {
if (x) {
var a = [], b, f, i, l, v;
if (x instanceof Array) {
a[0] = '[';
l = x.length;
for (i = 0; i < l; i += 1) {
v = x[i];
f = s[typeof v];
if (f) {
v = f(v);
if (typeof v == 'string') {
if (b) {
a[a.length] = ',';
}
a[a.length] = v;
b = true;
}
}
}

a[a.length] = ']';
} else if (x instanceof Object) {
a[0] = '{';
for (i in x) {
v = x[i];
f = s[typeof v];
if (f) {
v = f(v);
if (typeof v == 'string') {
if (b) {
a[a.length] = ',';
}
a.push(s.string(i), ':', v);
b = true;
}
}
}
a[a.length] = '}';
} else {
return;
}
return a.join('');
}
return 'null';
}
};
return {
copyright: '(c)2005 JSON.org',
license: 'http://www.JSON.org/license.html',
/*
Stringify a JavaScript value, producing a JSON text.
*/
ToString: function (v) {
var f = s[typeof v];
if (f) {
v = f(v);
if (typeof v == 'string') {
return v;
}
}
return null;
},
/*
FromString a JSON text, producing a JavaScript value.
It returns false if there is a syntax error.
*/
FromString: function (text) {
try {
return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
text.replace(/"(\\.|[^"\\])*"/g, ''))) &&
eval('(' + text + ')');
} catch (e) {
return null;
}
}
};
}();
//'

//' Returns true if the sent JSON string is a legal, non-empty string.
//'
function IsJsonString(jsonString)
{
return null != jsonString && "" != jsonString && "[]" != jsonString;
}
Response.WriteHtml("\n\n");
//--// asynchronously loads the contents of sUrl into the html element specified by
sElementID
//--function Ajax.Load(sElementID,sUrl,sInitialText)
{
var sHtml = Ajax.LoadAsString(sElementID,sUrl,sInitialText);
Response.Write(sHtml);
}
//--// creates a SPAN html element and asynchronously loads the contents from sUrl
//--function Ajax.LoadSpan(sElementID,sUrl,sInitialText)
{
var sHtml = Ajax.LoadSpanAsString(sElementID,sUrl,sInitialText);
Response.Write(sHtml);
}
Response.WriteHtml("\n");
Response.WriteHtml("\n\n");
var oAspForm = Server.CreateObject("AspForms.AspForm");
oAspForm.AttachToPage(Server,Request,Response,Session);
var nTranslationLanguageID = parseInt(Session("nTranslationLanguageID"));
if(isNaN(nTranslationLanguageID))
{
//default to the admin language id
var oDb = Server.CreateObject("CoreAsp.Db");
var sSql = "SELECT nLanguageID FROM WebUser WHERE nWebUserID=" + 1;
var oResult = oDb.ExecSql(sSql);
if(oResult.Failed)
{
nTranslationLanguageID=1033;
}
else
{
if(!oDb.IsEOF)
{
nTranslationLanguageID=oDb.GetFieldAsLong("nLanguageID")
;
}
if(isNaN(nTranslationLanguageID))
{
nTranslationLanguageID=1033;
}
}
Session("nTranslationLanguageID")=nTranslationLanguageID;
}

var g_oTranslationObjects = new Array();


function GetTranslationObject(sContext)
{
if(sContext==null)
{
ASSERT("Internal error: The translation object context was not p
assed in.");
}
var oTranslate = g_oTranslationObjects[sContext];
if(oTranslate == null)
{
oTranslate = Server.CreateObject("CoreAsp.Translate");
var nLanguageID = Session("nUserLanguageID") || 1033;
oTranslate.Initialize(sContext, nLanguageID);
g_oTranslationObjects[sContext] = oTranslate;
}
return oTranslate;
}
oAspForm.Initialize(Request.ServerVariables("SCRIPT_NAME"),nTranslationLanguageI
D,Server.CreateObject("CoreAsp" + ".Translate"),"/NmConsole");
Response.WriteHtml("\n<link rel=\"stylesheet\" href=\"/NmConsole/Core/AspForms/A
spForms.css\" type=\"text/css\">\n");
function ASSERT(sMessage)
{
//TODO: show the error here
debugger;
}
//web browser types
var BT_UNKNOWN=0;
var BT_IE=1;
//key modifiers used for oAspForm.AddKeyDownHandler()
var KEY_CTRL = 1;
var KEY_SHIFT = 2;
var KEY_ALT = 4;
//virtual key definitions
var VK_ENTER=0x0D;
var VK_ESCAPE=0x1B;
function ShowDebugInfo()
{
Response.WriteHtml("\n <br>\n <div class=\"rsDiv\" style=\"width:95%;overflow:
auto;\">\n
<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"
rsTbl\" ID=\"Table1\">");
var sRequestDataType = null;
var oEnum = new Enumerator(Request.Form);
if(oEnum.atEnd())
{
oEnum = new Enumerator(Request.QueryString);
if(!oEnum.atEnd()) sRequestDataType = "QueryString";
}
else sRequestDataType = "Form";

if(sRequestDataType != null)
{
Response.WriteHtml("\n
<tr bgcolor=\"DDDDDD\">\n
<td class=\"rs-headerCell2\">");
Response.Write(sRequestDataType
);Response.WriteHtml(" Variable</td>\n
<td class=\"rs-h
eaderCell2\">Value</td>\n
</tr>");
while(!oEnum.atEnd())
{
var sItemName = oEnum.item()
var sItemValue = eval("Request." + sRequestDataT
ype + "(sItemName)");
Response.WriteHtml("\n
<td valign=\"top\">");
Response.Write(sItemName
);Response.WriteHtml("</td>\n
Response.Write(sItemValue
);Response.WriteHtml("&nbsp;</td>\n

<tr>\n
<td>");
</tr>");

oEnum.moveNext();
}
}
Response.WriteHtml("\n
<tr bgcolor=\"DDDDDD\">\n
<td class=\"rs-headerCell2\">Misc Items</td>\n
<td class=\"rs-h
eaderCell2\">Value</td>\n
</tr>\n
<tr>\n
<td>.IsPostBack</td>\n
<td>");
Response.Write(oAspForm.IsPostBack
);Response.WriteHtml("</td>\n
</tr>\n
<tr>\n
<td>Is self post</td>\n
<td>");
Response.Write(oAspForm.IsSelfPost
);Response.WriteHtml("</td>\n
</tr>\n
<tr>\n
<td>Current form name</td>\n
<td>");
Response.Write(oAspForm.GetCurrentFormName
);Response.WriteHtml("</td>\n
</tr>\n
<tr bgcolor=\"DDDDDD\">\
n
<td class=\"rs-headerCell2\">Server Variables</td>\n
<td class=\"rs-headerCell2\">Value</td>\n
</tr> ");
var oEnum = new Enumerator(Request.ServerVariables);
while(!oEnum.atEnd())
{
var sItemName = oEnum.item()
var sItemValue = Request.ServerVariables(sItemName);
if(sItemValue == "")
sItemValue = "&nbsp;";
Response.WriteHtml("\n
<tr>\n
<td vali
gn=\"top\">");
Response.Write(sItemName
);Response.WriteHtml("</td>\n
<td><pre style=\"margin:
0px;\">");
Response.Write(sItemValue
);Response.WriteHtml("</pre></td>\n
</tr>");
oEnum.moveNext();
}
var sXmlViewState = "" + Request.Form("__VIEWSTATE");
sXmlViewState = decodeURI(sXmlViewState);
sXmlViewState=sXmlViewState.replace(/\&/g, "&amp;").replace(/</g
, "&lt;").replace(/>/g, "&gt;");

Response.WriteHtml("\n
<tr bgcolor=\"DDDDDD\">\n
<td class=\"rs-headerCell2\">__VIEWSTATE</td>\n
<td class=\"rs-h
eaderCell2\">Value</td>\n
</tr>\n
<tr>\n
<td>\n
__VIEWSTATE XML\n
</td>\n
<td>\n
");
Response.Write(sXmlViewState
);Response.WriteHtml("\n
</td>\n
</tr>\n </table>
\n
</div>");
};
Response.WriteHtml("\n");
//------------------------------------------------------------------------------------------------------//Top level Registry KEYS
//------------------------------------------------------------------------------------------------------var RK_HKLM =
"HKEY_LOCAL_MACHINE";
var RK_IPSWITCH =
"Software\\Ipswitch";
var RK_WHATSUP =
RK_IPSWITCH+"\\Network Monitor";
//------------------------------------------------------------------------------------------------------//NmConsole Registry KEYS
//------------------------------------------------------------------------------------------------------var RK_PROFESSIONAL =
RK_WHATSUP+"\\WhatsUp Gold";
var RK_SETTINGS =
RK_PROFESSIONAL+"\\Settings";
var RK_REGIONALSETTINGS =
RK_SETTINGS+"\\Regional Settings";
var RK_SETUP =
RK_PROFESSIONAL+"\\Setup";
//------------------------------------------------------------------------------------------------------//Engine Registry KEYS
//------------------------------------------------------------------------------------------------------var RK_ENGINE =
RK_WHATSUP+"\\WhatsUp Engine";
var RK_WEBSETTINGS =
RK_IPSWITCH+"\\WebServer\\WhatsUp"
var RK_WEBSETTINGS_LDAP =
RK_WEBSETTINGS+"\\LDAP Settings"
var RK_ENGINE_SETTINGS =
RK_ENGINE+"\\Settings";
//------------------------------------------------------------------------------------------------------//Plugins Registry KEYS
//------------------------------------------------------------------------------------------------------var RK_PLUGINS =
RK_WHATSUP+"\\Wh
atsUp Plugins"
var RK_PLUGINS_ACTIVEMONITORS =
RK_PLUGINS+"\\Active Monitors"
var RK_PLUGINS_PASSIVEMONITORS =
RK_PLUGINS+"\\Passive Monitors"
var RK_PLUGINS_PERFORMANCEMONITORS =
RK_PLUGINS+"\\Performance Monitors"
var RK_PLUGINS_ACTIONS =
RK_PLUGINS+"\\Actions"
var RK_PLUGINS_MODEMS =
RK_PLUGINS+"\\Common\\Mo
dems"
var RV_PASSIVEMONITOR_ATTRIBUTES =
"\\Server Configuration\\Attribu
tes";
//------------------------------------------------------------------------------

-------------------------//Alert Center KEYS


//------------------------------------------------------------------------------------------------------var RK_ALERTCENTER_SETTINGS = RK_ENGINE+"\\Alert Center Settings";
var RK_ALERTCENTER_MESSAGES = RK_ALERTCENTER_SETTINGS+"\\Notification Messages";
//--//RK_SETTINGS
//--var RV_SETTINGS_WEBSERVER_ALLOW_LIST
var RV_SETTINGS_WEBSERVER_REJECT_LIST
var RV_SETTINGS_DBSIZE_RED_THRESHOLD
"
var RV_SETTINGS_DBSIZE_YELLOW_THRESHOLD
ent"
var RV_SETTINGS_LICENSE_KEY
var RV_SETTINGS_SERIAL_NUMBER

= "WebServer Allow Hosts"


= "WebServer Deny Hosts"
= "Database Size - Red Threshold Percent
= "Database Size - Yellow Threshold Perc
= "TrialLicenseKey"
= "SerialNumber"

//--//RK_SETUP
//--var RV_SETUP_1028 = "1028";
var RV_SETUP_INSTALLDIR = "InstallDir";
//--//RK_WEBSETTINGS
//--var RV_WEBSETTINGS_WEBSERVERSSL_ENABLED
var RV_WEBSETTINGS_PORTNUMBER
var RV_WEBSETTINGS_SSLPORTNUMBER
var RV_WEBSETTINGS_SESSIONTIMEOUT
var RV_WEBSETTINGS_USER_GROUP_ACCESS
var RV_WEBSETTINGS_GRAPH_MAP_MAX_WIDTH
var RV_WEBSETTINGS_GRAPH_MAP_MAX_HEIGHT
var RV_WEBSETTINGS_REFRESH
var RV_WEBSETTINGS_SESSIONTIMEOUT_MILLISEC
var RV_WEBSETTINGS_MAX_RECORDS
var RV_WEBSETTINGS_DEMOSERVER_ENABLED
//--//RK_WEBSETTINGS_LDAP
//--var RV_WEBSETTINGS_LDAP_SERVERADDRESS =
var RV_WEBSETTINGS_LDAP_AUTHORIZEDN =
var RV_WEBSETTINGS_LDAP_SECURECONNECTION =
var RV_WEBSETTINGS_LDAP_PORT =
//--//RK_REGIONALSETTINGS
//--var RV_REGIONALSETTINGS_USE24HOURCLOCK =
ck"
var RV_REGIONALSETTINGS_DATETIME12FORMAT =
ormat"
var RV_REGIONALSETTINGS_DATETIME24FORMAT =
ormat"
var RV_REGIONALSETTINGS_DATEFORMAT =
var RV_REGIONALSETTINGS_SHORTDATEFORMAT =
rmat"

="Web Server Enabled (SSL)"


="Port Number"
="Port Number (SSL)"
="Session Timeout (minutes)"
="User Group Access Enabled"
="Graphical Map Width Limit"
="Graphical Map Height Limit"
="Refresh"
="Session Timeout"
="MaxRecords";
="Demo Server Enabled";

"Server Address"
"Authorize DN"
"Secure Connection"
"Port"

"TimeFormat-Use24HourClo
"TimeFormat-DateTime12 F
"TimeFormat-DateTime24 F
"TimeFormat-Date Format"
"TimeFormat-ShortDate Fo

var RV_REGIONALSETTINGS_TIME12FORMAT =
"TimeFormat-Time12 Forma
t"
var RV_REGIONALSETTINGS_TIME24FORMAT =
"TimeFormat-Time24 Forma
t"
var RV_REGIONALSETTINGS_TIME12_SECONDSFORMAT = "TimeFormat-Time12 with Seconds
Format"
var RV_REGIONALSETTINGS_TIME24_SECONDSFORMAT = "TimeFormat-Time24 with Seconds
Format"
var RV_REGIONALSETTINGS_STARTOFWEEK =
"Start of Week";
//--//RK_ALERTCENTER_MESSAGES
//--var RV_ALERTCENTER_MESSAGES_LONG_INCLUDE_ALARMED =
"Include Long Message Currently Alarmed Items";
var RV_ALERTCENTER_MESSAGES_LONG_MAX_ACK =
"Maximum Long Message Acknowledge Items";
var RV_ALERTCENTER_MESSAGES_LONG_MAX_NEW_ALARMED =
"Maximum Long Message New Alarmed Items";
var RV_ALERTCENTER_MESSAGES_LONG_MAX_CURRENT_ALARMED =
ssage Current Alarmed Items";
var RV_ALERTCENTER_MESSAGES_SHORT_INCLUDE_REASON =
"Include Short Message Reason";
var RV_ALERTCENTER_MESSAGES_SHORT_MAX_ACK =
"Maximum Short Message Acknowledge Items";
var RV_ALERTCENTER_MESSAGES_SHORT_MAX_NEW_ALARMED =
"Maximum Short Message New Alarmed Items";

"Maximum Long Me

Response.WriteHtml("\n");
Response.WriteHtml("\n");
var INVALID_DATABASEID = 0xFFFFFFFF;
var
var
var
var
var

LOCK_UNSPECIFIED
LOCK_READ_ONLY
LOCK_PESSIMISTIC
LOCK_OPTIMISTIC
LOCK_BATCHOPTIMISTIC

=
=
=
=
=

-1
1;
2
3
4

//
//
//
//
//

adLockUnspecified
adLockReadOnly
adLockPessimistic
adLockOptimistic
adLockBatchOptimistic

var HAS_RECORDSET = true;


var NO_RECORDSET = false;
//
function GetDb()
{
return Server.CreateObject("CoreAsp.Db");
}
var oCachedDb = null;
function GetCacheDb()
{
if(oCachedDb==null)
{
oCachedDb = GetDb();
}
return oCachedDb;
}
function GetNFDb()
{
return Server.CreateObject("CoreAsp.NetflowDatabase");

}
var oCachedNFDb = null;
function GetCacheNFDb()
{
if(oCachedNFDb==null)
{
oCachedNFDb = GetNFDb();
}
return oCachedNFDb;
}
//
function GetNmSerialize()
{
return Server.CreateObject("NMComUtils.NMSerialize");
}
function GetUniqueTempTableName()
{
var sTempTable = "##" + oAspForm.GenerateGuid;
sTempTable = sTempTable.replace(/-/g, "");
return sTempTable;
}
Response.WriteHtml("\n");
Response.WriteHtml("\n");
Response.WriteHtml("\n\n");
// declare translations
var oUserTranslate = GetTranslationObject("User.inc");
oUserTranslate.DeclareTranslation("sExpirationMsg", ""
+ "You are on day %1 of the %2 WhatsUp trial period. The
trial version has expired."
+ "<br>To purchase a license please go to <a href=\"http
://www.whatsup.com\">"
+ "www.whatsup.com</a>.");
oUserTranslate.DeclareTranslation("sTrialMsg", "You are on day %1 of the %2 What
sUp trial period.");
function GetLicenseManager()
{
var oLicenseManager = Session("LicenseManager");
if(oLicenseManager == null)
{
oLicenseManager = Server.CreateObject("CoreAsp.LicenseManager");
Session("LicenseManager") = oLicenseManager;
}
return oLicenseManager;
}
//-->Add new features to the following 3 locations...
// 1) string constant that matches license file
// 2) to oFeatureBitmaskArray with bitmask
// 3) call AddEnabledFeatures() - this will set global bitmask..
var FEATURE_NONE
="None";
var FEATURE_DSTCLIENT
="WUGDstClientEnabled";
var FEATURE_DSTSERVER
="WUGDstServerEnabled";

var
var
var
var
var
var
var
var

FEATURE_SSG
FEATURE_ALERT_CENTER
FEATURE_NETFLOW
FEATURE_DASHBOARD
FEATURE_SQLMON
FEATURE_EXCHANGEMON
FEATURE_WMIMON
FEATURE_EMAILMON

="WUGSSGEnabled";
="WUGAlertCenterEnabled";
="WUGNetflowEnabled";
="WUGDashboardEnabled";
="WUGSQLMonEnabled";
="WUGExchangeMonEnabled";
="WUGWMIMonEnabled";
="WUGEmailMonEnabled";

var oFeatureBitmaskArray = new Array();


oFeatureBitmaskArray[FEATURE_DSTCLIENT]
oFeatureBitmaskArray[FEATURE_DSTSERVER]
oFeatureBitmaskArray[FEATURE_SSG]
oFeatureBitmaskArray[FEATURE_ALERT_CENTER]
oFeatureBitmaskArray[FEATURE_NETFLOW]
oFeatureBitmaskArray[FEATURE_DASHBOARD]
oFeatureBitmaskArray[FEATURE_SQLMON]
oFeatureBitmaskArray[FEATURE_EXCHANGEMON]
oFeatureBitmaskArray[FEATURE_WMIMON]
oFeatureBitmaskArray[FEATURE_EMAILMON]

=0x00000001;
=0x00000002;
=0x00000004;
=0x00000008;
=0x00000010;
=0x00000020;
=0x00000040;
=0x00000080;
=0x00000100;
=0x00000200;

var g_nEnabledFeatureMask =0x00000000;


AddEnabledFeatures(FEATURE_DSTCLIENT);
AddEnabledFeatures(FEATURE_DSTSERVER);
AddEnabledFeatures(FEATURE_SSG);
AddEnabledFeatures(FEATURE_ALERT_CENTER);
AddEnabledFeatures(FEATURE_NETFLOW);
AddEnabledFeatures(FEATURE_DASHBOARD);
AddEnabledFeatures(FEATURE_SQLMON);
AddEnabledFeatures(FEATURE_EXCHANGEMON);
AddEnabledFeatures(FEATURE_WMIMON);
AddEnabledFeatures(FEATURE_EMAILMON);
function AddEnabledFeatures(sFeatureName)
{
if(IsFeatureEnabled(sFeatureName))
{
g_nEnabledFeatureMask = (g_nEnabledFeatureMask + oFeatureBitmaskArray[sF
eatureName]);
}
}
//--// call to determine if a product feature is enabled by the license file
// please use the constants above for each feature
//--function IsFeatureEnabled(sFeatureName)
{
if(sFeatureName==FEATURE_NONE)
{
return IsValidLicense();
}
oLicenseManager = GetLicenseManager();
var sValue = oLicenseManager.GetProperty(sFeatureName);
var bIsEnabled = parseInt(sValue)==1;
return bIsEnabled;
}

function GetVersionText()
{
var sVersionText = GetWhatsUpEdition() + " Edition&nbsp;" + GetVersionNu
mber();
return sVersionText;
}
//-->Reads Edition from license...
function GetWhatsUpEdition()
{
var oLicenseManager = GetLicenseManager();
var sWhatsUpEdition = oLicenseManager.GetProperty("Edition");
return sWhatsUpEdition;
}
function GetVersionNumber()
{
//--> license file no longer used - now pulling from Reg...
//var oLicenseManager = GetLicenseManager();
//var sWhatsUpVersion = oLicenseManager.GetProperty("Version");
var oReg = Server.CreateObject("CoreAsp.RegistryManager");
oReg.Open(RK_SETUP, RK_HKLM);
var sError = oReg.GetLastError();
if(sError != "")
{
ASSERT("An error occured while attempting to open the registry."
, sError);
}
var sWhatsUpVersion = oReg.GetValue("DisplayVersion");
sError = oReg.GetLastError();
if(sError == "")
{
return sWhatsUpVersion;
}
else
{
return "";
}
}
//-->Reads LicenseType from license...
function GetLicenseKey()
{
var oLicenseManager = GetLicenseManager();
var sLicenseKey = oLicenseManager.GetProperty("LicenseType");
return sLicenseKey;
}
//-->Reads SerialNumber from license...
function GetSerialNumber()
{
var oLicenseManager = GetLicenseManager();
var sSerialNum = oLicenseManager.GetProperty("SerialNumber");
return sSerialNum;
}
//-->Addes dashes (every 5 characters) to SerialNumber...
function GetFormattedSerialNumber()

{
var sSerialNum = GetSerialNumber();
if(sSerialNum.length > 0)
{
var sTemp = "";
for (var x = 0; x < sSerialNum.length; x++)
{
if ((x % 5) == 0 && x != 0)
{
sTemp += "-";
}
sTemp += sSerialNum.substr(x,1);
}
sSerialNum = sTemp;
return sSerialNum;
}
else
{
return null;
}
}
//-->Gets max number of devices from license...
function GetMaximumNumberofDevices()
{
var oLicenseManager = GetLicenseManager();
var nMaxDevices = oLicenseManager.GetProperty("WUGMaxDevices");
return nMaxDevices;
}
//-->Reads Registered FirstName from license...
function GetRegisteredFirstName()
{
var oLicenseManager = GetLicenseManager();
var sFirstName = oLicenseManager.GetProperty("FirstName");
return sFirstName;
}
//-->Reads Registered LastName from license...
function GetRegisteredLastName()
{
var oLicenseManager = GetLicenseManager();
var sLastName = oLicenseManager.GetProperty("LastName");
return sLastName;
}
//-->Calculates days remaining on Eval license...
function GetEvalDaysRemaining()
{
var oLicenseManager = GetLicenseManager();
var nDaysRemaining = oLicenseManager.TrialPeriod - oLicenseManager.DaysUsed;
return nDaysRemaining;
}
function IsLicenseRegistered()
{
oLicenseManager = GetLicenseManager();

if(oLicenseManager.IsRegistered == true)
{
return true;
}
return false;
}
function IsValidLicense()
{
if((IsLicenseRegistered() == true || IsEval() == true) && IsEvalExpired() ==
false && IsSubscriptionExpired() == false)
{
return true;
}
return false;
}
function IsEval()
{
oLicenseManager = GetLicenseManager();
if(oLicenseManager.IsEvaluation == true)
{
return true;
}
return false;
}
function IsEvalExpired()
{
oLicenseManager = GetLicenseManager();
if(oLicenseManager.IsExpired && IsEval() == true)
{
return true;
}
return false;
}
function IsSubscriptionExpired()
{
oLicenseManager = GetLicenseManager();
if(oLicenseManager.IsExpired && IsSubscription() == true)
{
return true;
}
return false;
}
function GetLicenseExpirationMessage()
{
oLicenseManager = GetLicenseManager();
if(oLicenseManager==null)
{
return null;
}
if(oLicenseManager.IsRegistered)
{
return null;
}
if(oLicenseManager.IsExpired)
{

var sMessage = oUserTranslate.TranslateEx("sExpirationMsg", oLic


enseManager.DaysUsed,oLicenseManager.TrialPeriod);
return sMessage;
}
if(oLicenseManager.DaysUsed > 5)
{
var sMessage = oUserTranslate.TranslateEx("sTrialMsg", oLicenseM
anager.DaysUsed,oLicenseManager.TrialPeriod);
return sMessage;
}
return null;
}
function ShowLicensExpirationMessage()
{
var sMesssage = GetLicenseExpirationMessage();
if(sMessage != null)
{
_ShowLicenseMessage(sMesssage);
}
}
function _ShowLicenseMessage(sMessage)
{
Response.WriteHtml("\n <table width=\"100%\">\n
<td align=\"center\">");
Response.Write(sMessage
);Response.WriteHtml("</td>\n
</tr>\n </table>\n

<tr>\n
");

}
function GetLicenseExpirationDate()
{
var oLicenseManager = GetLicenseManager();
var sLicenseExpires = oLicenseManager.GetProperty("LicenseExpires");
return sLicenseExpires;
}
function IsSubscription()
{
oLicenseManager = GetLicenseManager();
if(oLicenseManager.IsSubscription == true)
{
return true;
}
return false;
}
Response.WriteHtml("\n\n<script>\n
var g_nEnabledFeatureMask = '");
Response.Write(g_nEnabledFeatureMask
);Response.WriteHtml("';\n</script>\n<script language=\"JavaScript\" src=\"/NmCo
nsole/CoreNm/Framework/License.js\"></script>");
Response.WriteHtml("\n\n");
// standard user constants
var ADMIN_USERID =

1;

var ADMIN_USERNAME =
var GROUPID_MYNETWORK =
var LANGUAGEID_ENGLISH =

"ADMIN";
0;
1033;

// bubble type constants


var BUBBLETYPE_UNKNOWN
var BUBBLETYPE_WORKSPACEREPORT =1;
var BUBBLETYPE_FULLREPORT

=0;

//'
l
//'
//'
//'
var

=2;

Unfortunately, this is the same value as INVALID_DATABASEID, so we can't tel


if the return from, say, a group picker is an error or "All Devices". I was
going to simply change this to -2, but there are too many places where we
called it with a literal -1 instead of using a macro.
GROUPID_ALLDEVICES =
-1;

//
Authenication types - LDAP and our internal login
var AUTHENTICATIONTYPE_INTERNAL =1;
var AUTHENTICATIONTYPE_LDAP
=2;
// User Rights Bits
var USERRIGHT_ALL
=0xFFFFFFFF;
var USERRIGHT_MANAGEUSERS
001;
var USERRIGHT_CONFIGURELDAPCREDENTIALS
var USERRIGHT_CHANGEYOURPASSWORD
var USERRIGHT_CONFIGUREACTIVEMONITORS
var USERRIGHT_CONFIGUREACTIONS
var USERRIGHT_TRANSLATION
020;
var USERRIGHT_CONFIGUREPASSIVEMONITORS
var USERRIGHT_CONFIGURECREDENTIALS
var USERRIGHT_MANAGEGROUPS
100;
var USERRIGHT_MANAGEDEVICES
200;
var USERRIGHT_ACCESSGROUPANDDEVICEREPORTS
var USERRIGHT_MANAGEIPSECURITY
var USERRIGHT_MANAGEWEBSERVER
var USERRIGHT_ACCESSSYSTEMREPORTS
var USERRIGHT_MANAGERECURRINGACTIONS
var USERRIGHT_CONFIGUREPERFORMANCEMONITORS
var USERRIGHT_MANAGEWORKSPACEVIEWS
var USERRIGHT_CONFIGUREACTIONPOLICIES
var USERRIGHT_ACCESSACTIVEDISCOVERY
var USERRIGHT_CONFIGUREWORKSPACES
var USERRIGHT_ACCESSREMOTEREPORTS
var USERRIGHT_CONFIGUREMIBS
000;
var USERRIGHT_CONFIGUREREMOTESERVERS
var USERRIGHT_ACCESSSSGREPORTS
var USERRIGHT_ACCESSALERTCENTERREPORTS
var USERRIGHT_CONFIGUREALERTCENTER
var USERRIGHT_ACCESSNETFLOWREPORTS
var USERRIGHT_NETFLOWCONFIGURE
//---

=0x00000
=0x00000002;
=0x00000004;
=0x00000008;
=0x00000010;
=0x00000
=0x00000040;
=0x00000080;
=0x00000
=0x00000
=0x00000400;
=0x00000800;
=0x00001000;
=0x00002000;
=0x00004000;
=0x00008000;
=0x00010000;
=0x00020000;
=0x00040000;
=0x00080000;
=0x00100000;
=0x00200
=0x00400000;
=0x00800000;
=0x01000000;
=0x02000000;
=0x04000000;
=0x08000000;

// Web User Data


//--var REFRESH_DEFAULT
var WUD_WORKSPACEREPORT_REFRESHINTERVAL
";
var WUD_FULLREPORT_REFRESHINTERVAL
val";
var WBU_DEVICESTAB_REFRESHINTERVAL
val";
var WUD_WEBALARMS_REFRESHINTERVAL
al";
var WUD_SHOWBUBBLE_ONWORKSPACEREPORTS
var WUD_SHOWBUBBLE_ONFULLREPORTS
var WUD_DYNAMICSSGLEGENDS
nds";
var WUD_SHOWNETFLOW_TOOLTIPS
var SHOWTOOLTIPS_DEFAULT
var SHOWBUBBLE_DEFAULT
// DEMO USER PROPERTIES
var WUD_ISDEMOUSER
User";

= 120;
="WorkspaceReportRefreshInterval
="FullReportRefreshInter
="DevicesTabRefreshInter
="WebAlarmsRefreshInterv
="ShowBubbleOnWorkspaceReports";
="ShowBubbleOnFullReports";
="DynamicSsgLege
="ShowNetFlowTooltips";
="true";
="true";
="IsDemo

Response.WriteHtml("\n\n");
// declare translations
var oUserTranslate = GetTranslationObject("User.inc");
oUserTranslate.DeclareTranslation("UserLoginError", "Login failed: %1");
oUserTranslate.DeclareTranslation("DemoUserLoginError", "Login failed: The user
account being logged in is a demo user account and the demo server is currently
disabled.");
oUserTranslate.DeclareTranslation("GetAdminUserLanguageID_Error", "Failed get th
e admin language ID. Error: %1");
oUserTranslate.DeclareTranslation("GetUsersRootDeviceGroupID_Error", "Failed get
the parent group ID. Error: %1");
oUserTranslate.DeclareTranslation("DemoUserRestricted", "This feature is not all
owed for demo users... %1");
oUserTranslate.DeclareTranslation("DemoUserRestrictedJs", "This feature is not a
llowed for demo users...");
oUserTranslate.DeclareTranslation("WebUserTableReadError", "Error occurred readi
ng the WebUser table. SQL error=%1");
oUserTranslate.DeclareTranslation("GetWebUserData_Error", "Failed to do a select
on WebUserData table Error: %1");
oUserTranslate.DeclareTranslation("DemoUserLoginMessage", "You have successfully
logged in as a demo server user. Some features are not fully functional. Click
help for more information.");
oUserTranslate.DeclareTranslation("DemoUserCloseButton", "Close");
oUserTranslate.DeclareTranslation("DemoUserHelpButton", "Help");
//-->Checks for valid product license...
function _CheckProductLicense()
{
// if on the login screen, restriced access screen, invalid license screen,
//
or a valid user id then do check license
var sScriptName = Request.ServerVariables("SCRIPT_NAME").Item;
if(sScriptName.toLowerCase().indexOf("dlgrestrictedaccess.asp") == -1
&& sScriptName.toLowerCase().indexOf("_demo") == -1

&& sScriptName.toLowerCase().indexOf("dlginvalidlicense.asp") ==
-1
)
{
var bIsValidLicense = IsValidLicense();
if(bIsValidLicense == false)
{
//--> Send to help file showing how to enable license...
oAspForm.ShowModalDialog("/NmConsole/CoreNm/User/DlgInvalidLicense/D
lgInvalidLicense.asp");
}
}
}
//--// Checks for browser type (IE 5+, Firefox 1+)
//
and tests for Javascript and Cookies
// The sBtf querystring variable stands for Browser Test Failed
//
the three valid cases are js (javascript), ck (cookie), and bt (
browser type)
//--function _CheckBrowser()
{
// let the webarchive (recurring reports) through
if(IsUserAWebArchive())
{
return;
}
var oBrowserCheckUrl;
try
{
// the url that handles failed browser tests
oBrowserCheckUrl = new CUrl("/NmConsole/CoreNm/User/BrowserCheck
/BrowserCheck.asp");
oInvalidRecuringReportUrl = new CUrl("/NmConsole/CoreNm/User/Inv
alidAddress/InvalidAddress.asp");
}
catch(e)
{
// if the curl include is not included then it is not a normal
// page so forget the browser check
return;
}
// test the browser type and version
var sUserAgent = Request.ServerVariables("HTTP_USER_AGENT").Item.toLower
Case();
var bSupportedBrowser = false;
var biPhone = false;
if(sUserAgent.indexOf("wget") > -1)
{
// let testing scripts through
return;
}
else if(sUserAgent.indexOf("msie") > -1)
{
var oUserAgentParts = sUserAgent.split("msie ");

var sVersion = oUserAgentParts[1].split(";")[0];


if(parseInt(sVersion) >= 6)
{
bSupportedBrowser = true;
}
}
else if(sUserAgent.indexOf("firefox") > -1)
{
//var oUserAgentParts = sUserAgent.split("firefox/");
//var sVersion = oUserAgentParts[1];
// all versions of firefox are supported
bSupportedBrowser = true;
}
else if (sUserAgent.indexOf("iphone") > -1)
{
// iPhone ROCKS
bSupportedBrowser = true;
biPhone = true;
}
else if (sUserAgent == "ipswitch/1.0") // note that sUserAgent is conver
ted to lowercase
{
// we have a recuring report attempt that was rejected by IsUser
AWebArchive(), probably because the
// the remote_addr was not local to the whatsup machine.
// Display a different error message.
oInvalidRecuringReportUrl.Add("sBtf", "bt");
Response.Clear();
Response.Redirect(oInvalidRecuringReportUrl.AsString());
Response.End();
}
if(!bSupportedBrowser)
{
oBrowserCheckUrl.Add("sBtf", "bt");
Response.Clear();
Response.Redirect(oBrowserCheckUrl.AsString());
Response.End();
}
if (!biPhone)
{
// if javascript is disabled the noscript html tag will be execu
ted
// by the browser which contains the meta refresh tag that will
redirect the user
Response.Write(""
+ "<noscript>javascript not detected"
+ "<meta http-equiv=\"refresh\" content=\"0;url=" + oBro
wserCheckUrl.AsString() + "?sBtf=js\">"
+ "</noscript>");
// checking cookies on the client is the best way since you woul
d need
// a round trip to test it on the server. If the cookie test fai
les javascript
// is used to redirect the user
Response.Write(""
+ "<script>"
+ "JsSetCookie(\"sCookieTest\", \"Enabled\");"

+
+
+
+

"var sCookieTest = JsGetCookie(\"sCookieTest\");"


"if(sCookieTest == null)"
"{"
"
location = \"" + oBrowserCheckUrl.AsString() + "

?sBtf=ck\";"
+ "}"
+ "</script>");
}
}
var _oUserRights = new Array();
function _AddUserRight(nUserRight, sEnglishName, sCategory, sFeature)
{
// note: this translation is ok since all rights are translated at once
var oRegEx = new RegExp("(\\s+)","g");
var sControlName = "UserRight_" + sEnglishName.replace(oRegEx, "");
var sTranslatedName = oUserTranslate.Translate(sControlName, sEnglishNam
e);
var sCategoryControlName = "UserRightCategory_" + sCategory.replace(oReg
Ex, "");
var sTranslatedCategory = oUserTranslate.Translate(sCategoryControlName,
sCategory);
// if the feature is not enabled then do not add the right
if(IsFeatureEnabled(sFeature)==false)
{
return;
}
var oUserRight = new Object();
oUserRight.m_nUserRight = nUserRight;
oUserRight.m_sEnglishName = sEnglishName;
oUserRight.m_sTranslatedName = sTranslatedName;
oUserRight.m_sCagetory = sTranslatedCategory;
oUserRight.m_sFeature = sFeature;
_oUserRights.push(oUserRight);
}
// Gets the user right mask for the current user
function _GetUserRightsMask()
{
// If the user is a webarchive then return just report access rights
if(IsUserAWebArchive())
{
return USERRIGHT_ACCESSGROUPANDDEVICEREPORTS | USERRIGHT_ACCESSS
YSTEMREPORTS | USERRIGHT_ACCESSREMOTEREPORTS;
}
// if there is no right (user not logged in?) then return 0 "no rights"
else if(Session("nUserRightsMask") == null)
{
return 0;
}
// return the current users rights from the session
else
{
return parseInt(Session("nUserRightsMask"));
}
}

//--// Get the user home group id... this could return null
//
if the user does not have a home group and we do not want to return
//
0 because this could cause an access violation
//--function _GetUsersHomeDeviceGroupID(nWebUserID)
{
if(nWebUserID == null)
{
ASSERT("The user id is required.");
}
var sSql = ""
+ "SELECT "
+ "
ISNULL(nHomeDeviceGroupID, 0) AS nHomeDeviceGroupID "
+ "FROM WebUser "
+ "WHERE nWebUserID = " + nWebUserID;
var oDb = GetDb();
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranslatedError = oUserTranslate.TranslateEx("WebUserTableR
eadError", oResult.GetErrorMsg);
oAspForm.SetError(sTranslatedError);
return null;
}
if(oDb.IsEOF)
{
return null;
}
var nHomeDeviceGroupID = oDb.GetFieldAsLong("nHomeDeviceGroupID");
oDb.Close;
return nHomeDeviceGroupID;
}
//--// Attempts to login the user using sUserName and sPassword supplied
// by the query string (this is picked up by aspForms
//--function _AutomaticLogin()
{
// if there is a username on the querystring and it is not the
// current user signed in (or there is no user signed in
// then attempt the automatic login
var sUserName = oAspForm.GetValueAsString("sUserName");
var sPassword = oAspForm.GetValueAsString("sPassword");
if(sUserName != null &&
sUserName != GetUserName()
&& Request.ServerVariables("SCRIPT_NAME").Item.toLowerCase().ind
exOf("dlguserlogin.asp") == -1
&& Request.ServerVariables("SCRIPT_NAME").Item.toLowerCase().ind
exOf("_demo") == -1)
{
// make sure all sensitive session data is cleared

// by calling logout
UserLogout();
// if UserLogin fails it will send the appropriate message to th
e user
var bLoginSuccess = UserLogin(sUserName, sPassword);
if(bLoginSuccess)
{
// remove the username and password and redirect
Response.Redirect(GetScriptNameUrl().AsString());
}
}
else if(sUserName != null && sUserName == GetUserName()&& Request.Server
Variables("SCRIPT_NAME").Item.toLowerCase().indexOf("dlguserlogin.asp") == -1
&& Request.ServerVariables("SCRIPT_NAME").Item.toLowerCase().ind
exOf("_demo") == -1)
{
//--> if sUserName is same as sUserName in session - strip user & pa
ss from url and redirect...
Response.Redirect(GetScriptNameUrl().AsString());
}
}
// get current page url, add querystring items, remove username and password (if
applicable)
function GetScriptNameUrl()
{
var oRedirectUrl = new CUrl(String(Request.ServerVariables("SCRIPT_NAME")));
var oEnum = new Enumerator(Request.QueryString);
while(!oEnum.atEnd())
{
var sItemName = oEnum.item();
var sItemValue = String(Request.QueryString(sItemName));
oRedirectUrl.Add(sItemName, sItemValue);
oEnum.moveNext();
}
oRedirectUrl.RemoveProperty("sUserName");
oRedirectUrl.RemoveProperty("sPassword");
return oRedirectUrl;
}
//--// Retrieves the group access rights for the specified group
// these rights are stored off in the session until the user logs off
//--function _GetUserGroupRights(nDeviceGroupID)
{
var oRights = new Array();
var oUserGroupAccess = Session("USER_GROUP_ACCESS_" + GetUserIDForGroupA
ccess());
if(oUserGroupAccess == null)
{

oUserGroupAccess = Server.CreateObject("Scripting.Dictionary");
}
// If the rights for the group have already been read, then get them fro
m the session
if(oUserGroupAccess.Exists(nDeviceGroupID))
{
oRights = oUserGroupAccess.Item(nDeviceGroupID).split(",");
}
else
{
var sSql = ""
+ "SELECT "
+ "
bGroupRead, bGroupWrite, bDeviceRead, bDeviceWri
te, DeviceGroup.bDynamicGroup "
+ "FROM DeviceGroup "
+ "
LEFT OUTER JOIN PivotWebUserToDeviceGroup "
+ "
ON DeviceGroup.nDeviceGroupID = PivotWeb
UserToDeviceGroup.nDeviceGroupID "
+ "
AND PivotWebUserToDeviceGroup.nWebUserID
= " + GetUserIDForGroupAccess() + " "
+ "WHERE DeviceGroup.nDeviceGroupID = " + nDeviceGroupID
;
var oDb = GetDb();
var oResult = oDb.ExecSQL(sSql);
if(oResult.Failed)
{
ASSERT("The database object failed to initialize." + oRe
sult.GetErrorMsg);
}
// if there is no record then the user has no access
if(oDb.IsEOF)
{
oRights = [0, 0, 0, 0];
}
else
{
// set each access right
if(oDb.GetFieldAsBool("bGroupRead") == true || oDb.GetFi
eldAsBool("bDynamicGroup") == true)
{
oRights[GROUP_READ] = 1;
}
else
{
oRights[GROUP_READ] = 0;
}
if(oDb.GetFieldAsBool("bGroupWrite") == true)
{
oRights[GROUP_WRITE] = 1;
}
else
{
oRights[GROUP_WRITE] = 0;
}
if(oDb.GetFieldAsBool("bDeviceRead") == true)
{
oRights[DEVICE_READ] = 1;

}
else
{
oRights[DEVICE_READ] = 0;
}
if(oDb.GetFieldAsBool("bDeviceWrite") == true)
{
oRights[DEVICE_WRITE] = 1;
}
else
{
oRights[DEVICE_WRITE] = 0;
}
}
// Add the rights to the session
oUserGroupAccess.Add(nDeviceGroupID, oRights.join(","));
Session("USER_GROUP_ACCESS_" + GetUserIDForGroupAccess()) = oUse
rGroupAccess;
}
return oRights;
}
//--// Retrieves the device access rights for the specified device
// these rights are stored off in the session until the user logs off
//--function _GetUserDeviceRights(nDeviceID)
{
var oRights = new Array();
var oUserDeviceAccess = Session("USER_DEVICE_ACCESS_" + GetUserIDForGrou
pAccess());
if(oUserDeviceAccess == null)
{
oUserDeviceAccess = Server.CreateObject("Scripting.Dictionary");
}
// If the rights for the device have already been read, then get them fr
om the session
if(oUserDeviceAccess.Exists(nDeviceID))
{
oRights = oUserDeviceAccess.Item(nDeviceID).split(",");
}
else
{
var sSql = ""
+ "SELECT SUM(CONVERT(TINYINT, PivotWebUserToDeviceGroup
.bDeviceRead)) AS bDeviceRead, "
+ "
SUM(CONVERT(TINYINT, PivotWebUserToDeviceGroup.b
DeviceWrite)) AS bDeviceWrite "
+ "FROM DeviceGroup "
+ "
INNER JOIN PivotDeviceToGroup ON "
+ "
PivotDeviceToGroup.nDeviceGroupID = Devi
ceGroup.nDeviceGroupID "
+ " INNER JOIN Device ON "
+ "
Device.nDeviceID = PivotDeviceToGroup.nD
eviceID "
+ "
INNER JOIN PivotWebUserToDeviceGroup ON "
+ "
PivotWebUserToDeviceGroup.nDeviceGroupID

= DeviceGroup.nDeviceGroupID "
+ "WHERE Device.nDeviceID = " + nDeviceID
+ "
AND PivotWebUserToDeviceGroup.nWebUserID = " + G
etUserIDForGroupAccess();
var oDb = GetDb();
var oResult = oDb.ExecSQL(sSql);
if (oResult.Failed)
{
ASSERT("The database object failed to initialize." + oRe
sult.GetErrorMsg);
}
// if there is no record then the user has no access
if(oDb.IsEOF)
{
oRights = [0, 0];
}
else
{
// set each access right
if(oDb.GetFieldAsBool("bDeviceRead") == true)
{
oRights[DEVICE_READ] = 1;
}
else
{
oRights[DEVICE_READ] = 0;
}
if( oDb.GetFieldAsBool("bDeviceWrite") == true)
{
oRights[DEVICE_WRITE] = 1;
}
else
{
oRights[DEVICE_WRITE] = 0;
}
}
// Add the rights to the session
oUserDeviceAccess.Add(nDeviceID, oRights.join(","));
Session("USER_DEVICE_ACCESS_" + GetUserIDForGroupAccess()) = oUs
erDeviceAccess;
}
return oRights;
}
//-// Sets the registry value which enables or disables the access rights
//-function _SetUserGroupAccess(bIsEnabled)
{
if(IsUserDemoUser())
{
return;
}
// Convert bIsEnabled to a number if it is not one already
var nIsEnabled = 0;
if(isNaN(parseInt(bIsEnabled)))

{
if(bIsEnabled == true)
{
nIsEnabled = 1;
}
else
{
nIsEnabled = 0;
}
}
else
{
nIsEnabled = bIsEnabled;
}
var oReg = Server.CreateObject("CoreAsp.RegistryManager");
oReg.Open(RK_WEBSETTINGS, RK_HKLM);
var sError = oReg.GetLastError();
if(sError != "")
{
ASSERT("An error occured while attempting to open the registry."
, sError);
}
// Set the value
oReg.SetValue(RV_WEBSETTINGS_USER_GROUP_ACCESS, nIsEnabled);
sError = oReg.GetLastError();
if(sError != "")
{
ASSERT("An error occured while attempting to set the registry va
lue : " + RV_WEBSETTINGS_USER_GROUP_ACCESS, sError);
}
// store the value in the session
Session(RV_WEBSETTINGS_USER_GROUP_ACCESS) = nIsEnabled;
}
//-// Returns true if the registry value which enables the access rights is 1, othe
rwise false
//-function _IsUserGroupAccessEnabled()
{
// try to get the value from the session
var nIsEnabled = Session(RV_WEBSETTINGS_USER_GROUP_ACCESS);
// if the value was not in the session, read from the registry
if(nIsEnabled == null)
{
var oReg = Server.CreateObject("CoreAsp.RegistryManager");
oReg.Open(RK_WEBSETTINGS, RK_HKLM);
var sError = oReg.GetLastError();
if(sError != "")
{
ASSERT("An error occured while attempting to open the re
gistry.", sError);
}
nIsEnabled = oReg.GetValue(RV_WEBSETTINGS_USER_GROUP_ACCESS);
sError = oReg.GetLastError();

if(sError != "")
{
// create the reg key - this will also assert if any err
ors occures in the creation
_SetUserGroupAccess(false);
nIsEnabled = 0;
}
}
// return true or false, not 0 or 1
if(nIsEnabled == 0)
{
return false;
}
else
{
return true;
}
}
// makes the users configure rights available to the client for
// building the dynamic configure menu
function _WriteConfigureMenuAccessRights()
{
var oUsersConfigureRights = new Array();
if(UserHasRight(USERRIGHT_CONFIGUREPERFORMANCEMONITORS))
{
oUsersConfigureRights.push("Performance Monitor Library");
}
if(UserHasRight(USERRIGHT_CONFIGUREACTIVEMONITORS))
{
oUsersConfigureRights.push("Active Monitor Library");
}
if(UserHasRight(USERRIGHT_CONFIGUREPASSIVEMONITORS))
{
oUsersConfigureRights.push("Passive Monitor Library");
}
if(UserHasRight(USERRIGHT_CONFIGUREACTIONS))
{
oUsersConfigureRights.push("Action Library");
}
if(UserHasRight(USERRIGHT_CONFIGUREACTIONPOLICIES))
{
oUsersConfigureRights.push("Action Policies");
}
if(UserHasRight(USERRIGHT_CONFIGURECREDENTIALS))
{
oUsersConfigureRights.push("Credentials Library");
}
if(UserHasRight(USERRIGHT_MANAGEWORKSPACEVIEWS))
{
oUsersConfigureRights.push("Workspace Library");
}
if(UserHasRight(USERRIGHT_CONFIGUREREMOTESERVERS) && IsFeatureEnabled(FE
ATURE_DSTSERVER) == true)
{
oUsersConfigureRights.push("Remote Sites");
}
if(UserHasRight(USERRIGHT_MANAGERECURRINGACTIONS))
{

oUsersConfigureRights.push("Recurring Actions");
}
if(UserHasRight(USERRIGHT_MANAGEWEBSERVER))
{
oUsersConfigureRights.push("Manage Web Server");
}
if(UserHasRight(USERRIGHT_MANAGEUSERS))
{
oUsersConfigureRights.push("Manage Users");
}
if(UserHasRight(USERRIGHT_CONFIGUREMIBS))
{
oUsersConfigureRights.push("Manage SNMP MIBs");
}
if(UserHasRight(USERRIGHT_CONFIGURELDAPCREDENTIALS))
{
oUsersConfigureRights.push("LDAP Credentials");
}
if(UserHasRight(USERRIGHT_MANAGEIPSECURITY))
{
oUsersConfigureRights.push("IP Security");
}
if(UserHasRight(USERRIGHT_TRANSLATION))
{
oUsersConfigureRights.push("Translation");
}
if(UserHasRight(USERRIGHT_CONFIGUREALERTCENTER))
{
oUsersConfigureRights.push("AlertCenterConfigure");
}
if(UserHasRight(USERRIGHT_NETFLOWCONFIGURE))
{
oUsersConfigureRights.push("NetflowConfigure");
}
Response.WriteHtml("\n <script>\n
var sUsersConfigureRights = \"");
Response.Write(oUsersConfigureRights.join(",")
);Response.WriteHtml("\";\n
</script>\n
");
}
// Loads all the webuserdata for the current user if not already loaded
// this is stored in the session to save a database lookup on every page
// then returns the the value associated with sName
function _GetWebUserData(sName)
{
var sWebUserData = Session("WebUserData");
if(sWebUserData == null)
{
var sWebUserData = "";
var oDb = GetDb();
var sSql = "SELECT sName, sValue FROM WebUserData WHERE nWebUser
ID = " + GetUserID();
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("GetW
ebUserData_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);

return null;
}
while(!oDb.IsEOF)
{
sWebUserData += oDb.GetFieldAsString("sName") + "," + oD
b.GetFieldAsString("sValue") + "|";
oDb.MoveNext();
}
Session("WebUserData") = sWebUserData;
}
var oWebUserData = sWebUserData.split("|");
for(var i = 0; i < oWebUserData.length; i++)
{
var oData = oWebUserData[i].split(",");
if(oData[0] == sName)
{
return oData[1];
}
}
return null;
}
// checks the registry to see if the demo server is enabled
var g_IsDemoServerEnabled = null;
function IsDemoServerEnabled()
{
if(g_IsDemoServerEnabled != null)
{
return g_IsDemoServerEnabled;
}
var oReg = Server.CreateObject("CoreAsp.RegistryManager");
oReg.Open(RK_WEBSETTINGS, RK_HKLM);
var sError = oReg.GetLastError();
if(sError != "")
{
oAspForm.SetError("An error occured while attempting to open the
registry.\n" + sError);
return false;
}
var nIsDemoServerEnabled = oReg.GetValue(RV_WEBSETTINGS_DEMOSERVER_ENABL
ED);
sError = oReg.GetLastError();
if(sError != "")
{
oReg.SetValue(RV_WEBSETTINGS_DEMOSERVER_ENABLED, 0);
nIsDemoServerEnabled = 0;
sError = oReg.GetLastError();
}
if(sError != "")
{
ASSERT("An error occured while attempting to read the registry."
, sError);
}
if(nIsDemoServerEnabled == 1)
{
g_IsDemoServerEnabled = true;
}

else
{
g_IsDemoServerEnabled = false;
}
return g_IsDemoServerEnabled;
}
function _ShowDemoUserMessage()
{
var bShowDemoUserMessage = Session("bShowDemoUserMessage");
if(null==bShowDemoUserMessage || false==bShowDemoUserMessage)
{
return;
}
var sMessage = oUserTranslate.TranslateEx("DemoUserLoginMessage");
var sCloseButton = "<a href=\"javascript:CloseDemoUserMessage();\" style
=\"text-decoration:underline;\">" + oUserTranslate.TranslateEx("DemoUserCloseBut
ton") + "</a>";
var sHelpButton = "<a href=\"javascript:oAspForm.OpenHelpTopic(HELP_DEMO
SERVER_URL);\" style=\"text-decoration:underline;\">" + oUserTranslate.Translate
Ex("DemoUserHelpButton") + "</a>";
Response.WriteHtml("\n <div id=\"oDemoUserMessage\" style=\"position:absolute;t
op:0;border:2px outset;background:#ECE9D8;padding:10px;width:300px;\" class=\"As
pf-Font\">\n
<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n
<tr>\n
<td>");
Response.Write(sMessage
);Response.Write(oAspForm.AddSpacer()
);Response.WriteHtml("</td>\n
</tr>\n
<tr>\n
<td align=\"right\">\n
");
Response.Write(sHelpButton
);Response.WriteHtml(" | ");
Response.Write(sCloseButton
);Response.WriteHtml("\n
</td>\n
</tr>\n </table>
\n
</div>\n
<script>\n
JsCenterDiv(document.getElementById(\"oD
emoUserMessage\"));\n function CloseDemoUserMessage()\n
{\n
document.getElementById(\"oDemoUserMessage\").style.display = \"none\";\n
}\n
</script>\n
");
Session("bShowDemoUserMessage") = false;
}
Response.WriteHtml("\n");
//-// Helper functions for the user activity log
//-//
//
//
var
var
var
var
var
var
var
var

Categories
BULK_FIELD_CHANGE = "Bulk Field Change";
DEVICE_DETAILS
= "Device Properties";
DEVICES
= "Devices";
ACTIVE_MONITOR
= "Active Monitor";
PASSIVE_MONITOR
= "Passive Monitor";
PERFORMANCE_MONITOR = "Performance Monitor";
CREDENTIALS
= "Credentials";
ACTION_POLICY
= "Action Policy";

var
var
var
var
var
var
var

RECURRING_ACTION
LOGIN
ACTION
USER
WORKSPACE
SYSTEM
REMOTE_SITE

= "Recurring Action";
= "Login";
= "Action";
= "User";
= "Workspace";
= "System";
= "Remote Site";

// declare translations
var oUserTranslate = GetTranslationObject("User.inc");
oUserTranslate.DeclareTranslation("AnonymousUserName", "Anonymous");
oUserTranslate.DeclareTranslation("_LogUserMessage_Error", "Failed to add the we
b user activity log record. Error: %1");
oUserTranslate.DeclareTranslation("_GetDeviceDisplayNameForLog_Error", "Failed t
o get the device display name. Error: %1");
oUserTranslate.DeclareTranslation("_GetMultipleDeviceDisplayNamesForLog_Error",
"Failed to get multiple device display names. Error: %1");
oUserTranslate.DeclareTranslation("GetDeviceGroupDisplayNameForLog_Error", "Fail
ed to get the device group display name. Error: %1");
oUserTranslate.DeclareTranslation("_GetCredentialTypeNameForLog_Error", "Failed
to get the credential type name. Error: %1");
oUserTranslate.DeclareTranslation("_GetActiveMonitorTypeNameForLog_Error", "Fail
ed to get the active monitor type name. Error: %1");
oUserTranslate.DeclareTranslation("_GetWebUserNameForLog_Error", "Failed to get
the web user name. Error: %1");
oUserTranslate.DeclareTranslation("_GetActionPolicyNameForLog_Error", "Failed to
get the action type name. Error: %1");
oUserTranslate.DeclareTranslation("_GetActionTypeNameForLog_Error", "Failed to g
et the action type name. Error: %1");
oUserTranslate.DeclareTranslation("_GetActiveMonitorTypeNameForLogFromPivot_Erro
r", "Failed to get the monitor type name from pivot id. Error: %1");
oUserTranslate.DeclareTranslation("_GetPassiveMonitorTypeNameFromPivotForLog_Err
or", "Failed to get the passive monitor type name from pivot id. Error: %1");
oUserTranslate.DeclareTranslation("_GetPerfromanceMonitorTypeNameForLog_Error",
"Failed to get the performance monitor type name. Error: %1");
oUserTranslate.DeclareTranslation("_GetPassiveMonitorTypeNameForLog_Error", "Fai
led to get the passive monitor type name. Error: %1");
oUserTranslate.DeclareTranslation("_GetRecurringActionNameForLog_Error", "Failed
to get the recurring action name. Error: %1");
oUserTranslate.DeclareTranslation("_GetWorkspaceNameForLog_Error", "Failed to ge
t the workspace name. Error: %1");
oUserTranslate.DeclareTranslation("_GetDeviceDisplayNameFromWebAlarmIDForLog_Err
or", "Failed to get device display name from web alarm id. Error: %1");
oUserTranslate.DeclareTranslation("_GetDevDisNameFromActDiscDevIDForLog", "Faile
d to get device display name from active discovery device detail id. Error: %1")
;
oUserTranslate.DeclareTranslation("_GetActMonTypeNameFromActDiscServIDForLog_Err
or", "Failed to get monitorname from active discovery service detail id. Error:
%1");
oUserTranslate.DeclareTranslation("_GetStatMonNameActDiscStatMonIDLog_Error", "F
ailed to get monitor name from active discovery performance monitor detail id. E
rror: %1");
oUserTranslate.DeclareTranslation("_GetRemoteServerDisplayNameForLog_Error", "Fa
iled to get the remote site display name. Error: %1");
// translate the logging categories
var oUserTranslateForAdmin = GetTranslationObjectForAdminUser();
_DeclareTranslatedCategory(BULK_FIELD_CHANGE);
_DeclareTranslatedCategory(DEVICE_DETAILS);

_DeclareTranslatedCategory(DEVICES);
_DeclareTranslatedCategory(ACTIVE_MONITOR);
_DeclareTranslatedCategory(PASSIVE_MONITOR);
_DeclareTranslatedCategory(PERFORMANCE_MONITOR);
_DeclareTranslatedCategory(CREDENTIALS);
_DeclareTranslatedCategory(ACTION_POLICY);
_DeclareTranslatedCategory(RECURRING_ACTION);
_DeclareTranslatedCategory(LOGIN);
_DeclareTranslatedCategory(ACTION);
_DeclareTranslatedCategory(USER);
_DeclareTranslatedCategory(WORKSPACE);
_DeclareTranslatedCategory(SYSTEM);
_DeclareTranslatedCategory(REMOTE_SITE);
// translate the log messages
oUserTranslateForAdmin.DeclareTranslation("LogCreateDevice_Message", "Added devi
ce '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogMoveDevice_Message", "Moved device
'%1' from the '%2' group to the '%3' group");
oUserTranslateForAdmin.DeclareTranslation("LogCopyDevice_Message", "Copied devic
e '%1' to the '%2' group");
oUserTranslateForAdmin.DeclareTranslation("LogUpdateGeneralDevice_Message", "Mod
ified general device properties of '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedDeviceCredentials_Message"
, "Modified credentials on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedDevicePolling_Message", "M
odified polling properties on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogDevicePassiveMonitorProperties_Mes
sage", "%1 the '%2' passive monitor on '%3'");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedDeviceActiveMonitor_Messag
e", "Modified active monitor on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogDeviceActiveMonitorProperties_Mess
age", "%1 the '%2' active monitor on '%3'");
oUserTranslateForAdmin.DeclareTranslation("LogDevicePerformanceMonitorProperties
_Message", "%1 the '%2' performance monitor on '%3'");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedDeviceNotes_Message", "Mod
ified notes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedDeviceCustomLinks_Message"
, "Modified custom links on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedDeviceAttributes_Message",
"Modified attributes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogDeletedDevice_Message", "Deleted d
evice '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogAcknowledgeDevice_Message", "Ackno
wledged '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedDeviceAction_Message", "Mo
dified actions on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogBFCDevicePerformanceMonitor_Messag
e", "Performance monitor bulk field changes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogBFCDeviceAttributes_Message", "Att
ribute bulk field changes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogBFCDeviceNotes_Message", "Note bul
k field changes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogBFCActiveMonitorType_Message", "Ac
tive Monitor type bulk field changes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogBFCDeviceCredentials_Message", "Cr
edential bulk field changes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogBFCDeviceActionPolicy_Message", "A
ction Policy bulk field changes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogBFCDeviceMaintenance_Message", "Ma

intenance bulk field changes on '%1'");


oUserTranslateForAdmin.DeclareTranslation("LogBFCDeviceMaintenanceSchedule_Messa
ge", "Maintenance schedule bulk field changes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogBFCDevicePolling_Message", "Pollin
g property bulk field changes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogBFCDeviceDeviceType_Message", "Dev
ice type bulk field changes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogBFCDeviceActiveMonitorProperties_M
essage", "Active Monitor property bulk field changes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogBFCDeviceDependencies_Message", "D
ependency property bulk field changes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogBFCDevicePassiveMonitorProperties_
Message", "Passive Monitor type bulk field changes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogBFCDevicePassiveMonitorActions_Mes
sage", "Passive Monitor property bulk field changes on '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogCreateGroup_Message", "Created gro
up '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedGroup_Message", "Modified
group '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogDeletedGroup_Message", "Deleted th
e group '%1' and all its sub-groups and devices");
oUserTranslateForAdmin.DeclareTranslation("LogMovedGroup_Message", "Moved the gr
oup '%1' to '%2' group");
oUserTranslateForAdmin.DeclareTranslation("LogCopyGroup_Message", "Copied the gr
oup '%1' to '%2' group");
oUserTranslateForAdmin.DeclareTranslation("LogAddActiveDiscoveryDevice_Message",
"Added a device '%1' to the '%2' group through active discovery");
oUserTranslateForAdmin.DeclareTranslation("LogAddActiveDiscoveryActiveMonitor_Me
ssage", "Added an active monitor '%1' to the '%2' device through active discover
y");
oUserTranslateForAdmin.DeclareTranslation("LogAddActiveDiscoveryPerformanceMonit
or_Message", "Added a performance monitor '%1' to the '%2' device through active
discovery");
oUserTranslateForAdmin.DeclareTranslation("LogCreatedActionType_Message", "Creat
ed action type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedActionType_Message", "Modi
fied action type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogDeletedActionType_Message", "Delet
ed action type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogCreatedActionPolicy_Message", "Cre
ated action policy type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedActionPolicy_Message", "Mo
dified action policy '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogDeletedActionPolicy_Message", "Del
eted action policy '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogUserLoggedIn_Message", "Logged in"
);
oUserTranslateForAdmin.DeclareTranslation("LogUserLoggedOut_Message", "Logged ou
t");
oUserTranslateForAdmin.DeclareTranslation("LogCreatedUser_Message", "Created use
r '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedUser_Message", "Modified u
ser '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogDeletedUser_Message", "Deleted use
r '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedUserPassword_Message", "Mo
dified password for user '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogCreatedActiveMonitorType_Message",
"Created active monitor type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogDeletedActiveMonitorType_Message",

"Deleted active monitor type '%1'");


oUserTranslateForAdmin.DeclareTranslation("LogEditedActiveMonitorType_Message",
"Modified active monitor type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogCreatedPassiveMonitorType_Message"
, "Created passive monitor type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogDeletedPassiveMonitorType_Message"
, "Deleted passive monitor type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogEditedPassiveMonitorType_Message",
"Modified passive monitor type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogCreatedPerformanceMonitorType_Mess
age", "Created performance monitor type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogDeletedPerformanceMonitorType_Mess
age", "Deleted performance monitor type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedPerformanceMonitorType_Mes
sage","Modified performance monitor type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogCreatedCredentialType_Message", "C
reated credential type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogDeletedCredentialType_Message", "D
eleted credential type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogEditedCredentialType_Message", "Mo
dified credential type '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogCreatedRecurringAction_Message", "
Created recurring action '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogEditedRecurringAction_Message", "M
odified recurring action '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogDeletedRecurringAction_Message", "
Deleted recurring action '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogCreatedWorkSpace_Message", "Create
d workspace '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogEditedWorkSpace_Message", "Modifie
d workspace '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogDeletedWorkSpace_Message", "Delete
d workspace '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogModifedIpSecurity_Message", "Modif
ied IP Security settings");
oUserTranslateForAdmin.DeclareTranslation("LogModifedWEBSettings_Message", "Modi
fied WEB server settings");
oUserTranslateForAdmin.DeclareTranslation("LogModifiedLDAPCredentials_Message",
"Modified LDAP credentials");
oUserTranslateForAdmin.DeclareTranslation("LogDismissedWebAlarmItem_Message", "D
ismissed a web alarm for device %1");
oUserTranslateForAdmin.DeclareTranslation("LogDismissedAllWebAlarm_Message", "Di
smissed all web alarms");
oUserTranslateForAdmin.DeclareTranslation("LogDeletedRemoteServer_Message", "Del
eted Remote Site: '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogRemoteSiteEnabled_Message", "Enabl
ed remote site connection for site '%1'");
oUserTranslateForAdmin.DeclareTranslation("LogRemoteSiteDisabled_Message", "Disa
bled remote site connection for site '%1'");
//'--//' Logs the message
//'
This function handles the actual logging
//'
given a category, details and description
//'-function _LogUserMessage(sCategory, sDetails, sDescription)
{
var oDb = GetCacheDb();
var oDateTime = new Date();

var sUserName = GetUserName();


if(sUserName == null)
{
sUserName = oUserTranslate.TranslateEx("AnonymousUserName");
}
//
Defect #9729 - Escape and quote in the user name.
var sSql =
"INSERT INTO WebUserActivityLog "
+ " (nWebUserID, sUserName, dDateTime, sCategory, sDetails, sD
escription) "
+ "VALUES "
+ " (" + String(GetUserID())
+ ", "
+
oDb.QuoteString(sUserName)
+ ", "
+ " '" + oDb.FormatSqlDate(oDateTime.getVarDate()) + "', "
+ " '" + sCategory
+ "', "
+ " " + oDb.QuoteString(sDetails)
+ ", "
+ " " + oDb.QuoteString(sDescription) + ") ";
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sAddFailedTranslatedError = oUserTranslate.TranslateEx("_Log
UserMessage_Error", oResult.GetErrorMsg);
oAspForm.SetError(sAddFailedTranslatedError);
return false;
}
return true;
}
//' Gets the translated category name
function _GetTranslatedCategory(sCategory)
{
var sCatetegoryKey = "ActivityLogCategory_" + sCategory.replace(/" "/g,
"_");
var sCategory = oUserTranslateForAdmin.TranslateEx(sCatetegoryKey);
return sCategory;
}
//' Declares the translated category name
function _DeclareTranslatedCategory(sCategory)
{
var sCatetegoryKey = "ActivityLogCategory_" + sCategory.replace(/" "/g,
"_");
oUserTranslateForAdmin.DeclareTranslation(sCatetegoryKey, sCategory);
}
//-// Below is a list of helper functions that retrieve names of objects
// to log given specified ids
//-// Global Gets the device display name
function GetDeviceDisplayNameForLog(nDeviceID)
{
return _GetDeviceDisplayNameForLog(nDeviceID);
}
// Gets the device display name
function _GetDeviceDisplayNameForLog(nDeviceID)

{
var oDb = GetCacheDb();
var sSql = "SELECT sDisplayName FROM Device WHERE nDeviceID = " + nDevic
eID;
var oResult = oDb.ExecSql(sSql);
if(oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetDeviceDi
splayNameForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return "unknown";
}
var sDisplayName = "";
if(!oDb.IsEOF)
{
sDisplayName = oDb.GetFieldAsString("sDisplayName");
}
return sDisplayName;
}
// Gets a comma seperated string of device display names
// given an array of device ids
function _GetMultipleDeviceDisplayNamesForLog(oDeviceIDs)
{
var oDb = GetCacheDb();
var sSql = ""
+ "SELECT TOP 20 sDisplayName "
+ "FROM Device "
+ "WHERE nDeviceID IN (" + oDeviceIDs.toString() + ")";
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetMultiple
DeviceDisplayNamesForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sDisplayNames = "";
while(!oDb.IsEOF)
{
sDisplayNames += oDb.GetFieldAsString("sDisplayName");
oDb.MoveNext();
}
if(sDisplayNames.charAt(sDisplayNames.length - 2) == ",")
{
sDisplayNames = sDisplayNames.substring(0, sDisplayNames.length
- 2);
}
return sDisplayNames;
}
// Gets the group display name
function GetDeviceGroupDisplayNameForLog(nDeviceGroupID)
{
var oDb = GetCacheDb();
var sSql = "SELECT sGroupName FROM DeviceGroup WHERE nDeviceGroupID = "
+ nDeviceGroupID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)

{
var sTranlsationError = oUserTranslate.TranslateEx("GetDeviceGro
upDisplayNameForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sGroupName = "";
if(!oDb.IsEOF)
{
sGroupName = oDb.GetFieldAsString("sGroupName");
}
return sGroupName;
}
// Gets the credential type name
function _GetCredentialTypeNameForLog(nCredentialTypeID)
{
var oDb = GetCacheDb();
var sSql = "SELECT sDisplayName FROM CredentialType WHERE nCredentialTyp
eID = " + nCredentialTypeID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetCredenti
alTypeNameForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sDisplayName = "";
if(!oDb.IsEOF)
{
sDisplayName = oDb.GetFieldAsString("sDisplayName");
}
return sDisplayName;
}
// Gets the active monitor type name
function _GetActiveMonitorTypeNameForLog(nActiveMonitorTypeID)
{
var oDb = GetCacheDb();
var sSql = "SELECT sMonitorTypeName FROM ActiveMonitorType WHERE nActive
MonitorTypeID = " + nActiveMonitorTypeID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetActiveMo
nitorTypeNameForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sMonitorTypeName = "";
if(!oDb.IsEOF)
{
sMonitorTypeName = oDb.GetFieldAsString("sMonitorTypeName");
}
return sMonitorTypeName;
}
// Gets the user name

function _GetWebUserNameForLog(nWebUserID)
{
var oDb = GetCacheDb();
var sSql = "SELECT sUserName FROM WebUser WHERE nWebUserID = " + nWebUse
rID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetWebUserN
ameForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sUserName = "";
if(!oDb.IsEOF)
{
sUserName = oDb.GetFieldAsString("sUserName");
}
return sUserName;
}
//
Gets the action policy name
function _GetActionPolicyNameForLog(nActionPolicyID)
{
var oDb = GetCacheDb();
var sSql =
"SELECT nActionPolicyID, " +
"
sPolicyName " +
"FROM ActionPolicy " +
"WHERE nActionPolicyID = " + nActionPolicyID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetActionPo
licyNameForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sActionPolicyName = "";
if(!oDb.IsEOF)
{
sActionPolicyName = oDb.GetFieldAsString("sPolicyName");
}
return sActionPolicyName;
}
// Gets the action type name
function _GetActionTypeNameForLog(nActionTypeID)
{
var oDb = GetCacheDb();
var sSql = "SELECT sActionTypeName FROM ActionType WHERE nActionTypeID =
" + nActionTypeID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetActionTy
peNameForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sActionTypeName = "";

if(!oDb.IsEOF)
{
sActionTypeName = oDb.GetFieldAsString("sActionTypeName");
}
return sActionTypeName;
}
// Gets the active monitor type name
function _GetActiveMonitorTypeNameForLogFromPivot(nPivotActiveMonitorTypeToDevic
eID)
{
var oDb = GetCacheDb();
var sSql = ""
+ "SELECT sMonitorTypeName "
+ "FROM PivotActiveMonitorTypeToDevice "
+ "INNER JOIN ActiveMonitorType ON ActiveMonitorType.nActiveMoni
torTypeID=PivotActiveMonitorTypeToDevice.nActiveMonitorTypeID "
+ "WHERE nPivotActiveMonitorTypeToDeviceID = " + nPivotActiveMon
itorTypeToDeviceID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetActiveMo
nitorTypeNameForLogFromPivot_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sMonitorTypeName = "";
if(!oDb.IsEOF)
{
sMonitorTypeName = oDb.GetFieldAsString("sMonitorTypeName");
}
return sMonitorTypeName;
}
// Gets the passive monitor type name given the pivot id
function _GetPassiveMonitorTypeNameFromPivotForLog(nPivotPassiveMonitorTypeToDev
iceID)
{
var oDb = GetCacheDb();
var sSql = ""
+ "SELECT sMonitorTypeName, nCLSID "
+ "FROM PivotPassiveMonitorTypeToDevice "
+ "INNER JOIN PassiveMonitorType ON PassiveMonitorType.nPassiveM
onitorTypeID=PivotPassiveMonitorTypeToDevice.nPassiveMonitorTypeID "
+ "WHERE nPivotPassiveMonitorTypeToDeviceID = " + nPivotPassiveM
onitorTypeToDeviceID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetPassiveM
onitorTypeNameFromPivotForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sMonName = "";
if(!oDb.IsEOF)
{
var nCLSID = oDb.GetFieldAsLong("nCLSID");
var sMonName = oDb.GetFieldAsString("sMonitorTypeName");

sMonName = _GetPassiveMonitorServerNameForLog(nCLSID) + ":" + sM


onName;
}
return sMonName;
};
//
Gets the perfromance monitor type name
function _GetPerformanceMonitorTypeNameForLog(nStatisticalMonitorTypeID)
{
var oDb = GetCacheDb();
var sSql = ""
+ "SELECT sStatisticalMonitorTypeName "
+ "FROM StatisticalMonitorType "
+ "WHERE nStatisticalMonitorTypeID = " + nStatisticalMonitorType
ID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetPerfroma
nceMonitorTypeNameForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sMonitorTypeName = "";
if(!oDb.IsEOF)
{
sMonitorTypeName = oDb.GetFieldAsString("sStatisticalMonitorType
Name");
}
return sMonitorTypeName;
}
// Gets the passive monitor type name
function _GetPassiveMonitorTypeNameForLog(nPassiveMonitorTypeID)
{
var oDb = GetCacheDb();
var sSql = ""
+ "SELECT sMonitorTypeName "
+ "FROM PassiveMonitorType "
+ "WHERE nPassiveMonitorTypeID = " + nPassiveMonitorTypeID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetPassiveM
onitorTypeNameForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sMonitorTypeName = "";
if(!oDb.IsEOF)
{
sMonitorTypeName = oDb.GetFieldAsString("sMonitorTypeName");
}
return sMonitorTypeName;
}
//
Get the recurring action name
function _GetRecurringActionNameForLog(nRecurringActionID)
{
var oDb = GetCacheDb();

var sSql = ""


+ "SELECT sName "
+ "FROM RecurringAction "
+ "WHERE nRecurringActionID = " + nRecurringActionID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetRecurrin
gActionNameForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sName = "";
if(!oDb.IsEOF)
{
sName = oDb.GetFieldAsString("sName");
}
return sName;
}
//
Get the workspace name
function _GetWorkspaceNameForLog(nWorkspaceID)
{
var oDb = GetCacheDb();
var sSql = ""
+ "SELECT sWorkspaceName "
+ "FROM Workspace "
+ "WHERE nWorkspaceID = " + nWorkspaceID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetWorkspac
eNameForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sWorkspaceName = "";
if(!oDb.IsEOF)
{
sWorkspaceName = oDb.GetFieldAsString("sWorkspaceName");
}
return sWorkspaceName;
}
// Gets the device display name for a given web alarm
function _GetDeviceDisplayNameFromWebAlarmIDForLog(nWebAlarmLogID)
{
var oDb = GetCacheDb();
var sSql = ""
+ "SELECT sDisplayName "
+ "FROM WebAlarmLog "
+ "INNER JOIN Device ON Device.nDeviceID = WebAlarmLog.nDeviceID
WHERE nWebAlarmLogID = "
+ nWebAlarmLogID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetDeviceDi

splayNameFromWebAlarmIDForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sDisplayName = "";
if(!oDb.IsEOF)
{
sDisplayName = oDb.GetFieldAsString("sDisplayName");
}
return sDisplayName;
}
//
Gets the device display name from the ActiveDiscoveryResultDeviceDetail
function _GetDeviceDisplayNameFromActiveDiscoveryDeviceIDForLog(nActiveDiscovery
ResultDeviceDetailID)
{
var oDb = GetCacheDb();
var sSql = ""
+ "SELECT sHostName "
+ "FROM ActiveDiscoveryResultDeviceDetail "
+ "WHERE nActiveDiscoveryResultDeviceDetailID = "
+ nActiveDiscoveryResultDeviceDetailID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetDevDisNa
meFromActDiscDevIDForLog", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sDisplayName = "";
if(!oDb.IsEOF)
{
sDisplayName = oDb.GetFieldAsString("sHostName");
}
return sDisplayName;
}
//
Gets the monitor name from ActiveDiscoveryResultServiceDetails table
function _GetActiveMonitorTypeNameFromActiveDiscoveryServiceIDForLog(nActiveDisc
overyResultServiceDetailID)
{
var oDb = GetCacheDb();
var sSql = ""
+ "SELECT sDescription "
+ "FROM ActiveDiscoveryResultServiceDetail "
+ "WHERE nActiveDiscoveryResultServiceDetailID = "
+ nActiveDiscoveryResultServiceDetailID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetActMonTy
peNameFromActDiscServIDForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sMonitorName = "";
if(!oDb.IsEOF)
{

sMonitorName = oDb.GetFieldAsString("sDescription");
}
return sMonitorName;
}
//
Gets the performance monitor name from the ActiveDiscoveryResultStatisti
calMonitorDetails table
function _GetStatisticalMonitorTypeNameFromActiveDiscoveryStatisticalMonitorIDFo
rLog(nActiveDiscoveryResultStatisticalMonitorDetailID)
{
var oDb = GetCacheDb();
var sSql = ""
+ "SELECT sDescription "
+ "FROM ActiveDiscoveryResultStatisticalMonitorDetails "
+ "WHERE nActiveDiscoveryResultStatisticalMonitorDetailID = "
+ nActiveDiscoveryResultStatisticalMonitorDetailID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetStatMonN
ameActDiscStatMonIDLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return false;
}
var sMonitorName = "";
if(!oDb.IsEOF)
{
sMonitorName = oDb.GetFieldAsString("sDescription");
}
return sMonitorName;
}
// Gets the passive monitor server name
function _GetPassiveMonitorServerNameForLog(sDescription)
{
var sName = "Could not determine class name.";
var oReg = Server.CreateObject("CoreAsp.RegistryManager");
oReg.Open(RK_PLUGINS_PASSIVEMONITORS, RK_HKLM);
var sError = oReg.GetLastError();
if(sError != "")
{
// not manditory so no need to fail
return sName
}
var oKeys = oReg.GetSubKeys().toArray();
for(ii = 0; ii < oKeys.length; ii++)
{
oReg.Open(sKey+"\\"+oKeys[ii], RK_HKLM);
if(oReg.GetValue("CLSID").toString() == sCLSID)
{
sName = oReg.GetValue("DisplayName").toString();
break;
}
}
return sName;
}

// Gets the device display name


function _GetRemoteServerDisplayNameForLog(nRemoteServerID)
{
var oDb = GetCacheDb();
var sSql = "SELECT sDisplayName FROM RemoteServer WHERE nRemoteServerID
= " + nRemoteServerID;
var oResult = oDb.ExecSql(sSql);
if(oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("_GetRemoteSe
rverDisplayNameForLog_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return "unknown";
}
var sDisplayName = "";
if(!oDb.IsEOF)
{
sDisplayName = oDb.GetFieldAsString("sDisplayName");
}
return sDisplayName;
}
Response.WriteHtml("\n");
//--// This file contains functions that handle logging to the user activity log.
// The functions are grouped by the following sections:
//
Device logging
//
Group logging
//
Action type logging
//
Active Monitor library logging
//
Passive Monitor library logging
//
Peformance Monitor library logging
//
Action Policy Library logging
//
Credential library logging
//
Recurring Action Library Logging
//
Workspace Library logging
//
User logging
//
Web server specific logging
//
Web alarm logging
//
Bulk field change logging
//
Active discovery logging
//
Bulk field change logging
//
WEB Server logging
//
RemoteServer logging
//
// NOTE: All log messages are logged in the language of the admin user
//
//--//--// Device logging
//--function LogCreateDevice(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}

var sDescription = oUserTranslateForAdmin.TranslateEx("LogCreateDevice_M


essage", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID
_LogUserMessage(_GetTranslatedCategory(DEVICES), sDetails, sDescription)
;
}
//
Logs that a device has been moved from one group to another group.
function LogMovedDevice( nDeviceID, nSourceGroupID, nDestinationGroupID )
{
var
sDeviceName
= _GetDeviceDisplayNameF
orLog(nDeviceID);
var sSourceGroupName
= GetDeviceGroupDisplayNameForLog(nSourc
eGroupID);
var nDestinationGroupName
= GetDeviceGroupDisplayNameForLog(nDesti
nationGroupID);
var sDescription = oUserTranslateForAdmin.TranslateEx("LogMoveDevice_Mes
sage", sDeviceName, sSourceGroupName, nDestinationGroupName);
var sDetails = "nDeviceID=" + nDeviceID
_LogUserMessage(_GetTranslatedCategory(DEVICES), sDetails, sDescription)
;
}
// Logs that a device has been copied.
function LogCopyDevice( nDeviceID, nDestinationGroupID )
{
var
sDeviceName
= _GetDeviceDisplayNameF
orLog(nDeviceID);
var nDestinationGroupName
= GetDeviceGroupDisplayNameForLog(nDesti
nationGroupID);
var sDescription = oUserTranslateForAdmin.TranslateEx("LogCopyDevice_Mes
sage", sDeviceName, nDestinationGroupName);
var sDetails = "nDeviceID=" + nDeviceID
_LogUserMessage(_GetTranslatedCategory(DEVICES), sDetails, sDescription)
;
}
function LogUpdateGeneralDevice(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogUpdateGeneralD
evice_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICE_DETAILS), sDetails, sDescr
iption);
}
function LogModifiedDeviceCredentials(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedDevice
Credentials_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICE_DETAILS), sDetails, sDescr

iption);
}
function LogModifiedDevicePolling(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedDevice
Polling_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICE_DETAILS), sDetails, sDescr
iption);
}
function LogDevicePassiveMonitorModification(nDeviceID, sPassiveMonitor, sModifi
cation,sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDevicePassiveM
onitorProperties_Message", sModification, sPassiveMonitor,sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICE_DETAILS), sDetails, sDescr
iption);
}
function LogModifiedDeviceActiveMonitor(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedDevice
ActiveMonitor_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICE_DETAILS), sDetails, sDescr
iption);
}
function LogDeviceActiveMonitorModification(nDeviceID, sActiveMonitor, sModifica
tion,sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDeviceActiveMo
nitorProperties_Message", sModification, sActiveMonitor,sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICE_DETAILS), sDetails, sDescr
iption);
}
function LogDevicePerformanceMonitorModification(nDeviceID, sPerformanceMonitor,

sModification,sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDevicePerforma
nceMonitorProperties_Message", sModification, sPerformanceMonitor,sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICE_DETAILS), sDetails, sDescr
iption);
}
function LogModifiedDeviceNotes(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedDevice
Notes_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICE_DETAILS), sDetails, sDescr
iption)
}
function LogModifiedDeviceCustomLinks(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedDevice
CustomLinks_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICE_DETAILS), sDetails, sDescr
iption)
}
function LogModifiedDeviceAttributes(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedDevice
Attributes_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICE_DETAILS), sDetails, sDescr
iption)
}
function LogDeletedDevice(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDeletedDevice_

Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID
_LogUserMessage(_GetTranslatedCategory(DEVICES), sDetails, sDescription)
;
}
function LogAcknowledgeDevice(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogAcknowledgeDev
ice_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICES), sDetails, sDescription)
;
}
function LogModifiedDeviceAction(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedDevice
Action_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICE_DETAILS), sDetails, sDescr
iption);
}
//--// BFC logging
//--function LogBFCDevicePerformanceMonitor(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCDevicePerfo
rmanceMonitor_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription);
}
function LogBFCDeviceAttributes(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCDeviceAttri
butes_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription)
}

function LogBFCDeviceNotes(nDeviceID, sDisplayName)


{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCDeviceNotes
_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription)
}
function LogBFCActiveMonitorType(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCActiveMonit
orType_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription);
}
function LogBFCDeviceCredentials(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCDeviceCrede
ntials_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription);
}
function LogBFCDeviceActionPolicy(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCDeviceActio
nPolicy_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription);
}
function LogBFCDeviceMaintenance(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCDeviceMaint

enance_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription);
}
function LogBFCDeviceMaintenanceSchedule(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCDeviceMaint
enanceSchedule_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription);
}
function LogBFCDevicePolling(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCDevicePolli
ng_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription);
}
function LogBFCDeviceDeviceType(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCDeviceDevic
eType_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription)
}
function LogBFCDeviceActiveMonitorProperties(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCDeviceActiv
eMonitorProperties_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription);
}
function LogBFCDeviceDependencies(nDeviceID, sDisplayName)

{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCDeviceDepen
dencies_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription);
}
function LogBFCDevicePassiveMonitorType(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCDevicePassi
veMonitorProperties_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription);
}
function LogBFCPassiveMonitorProperties(nDeviceID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogBFCDevicePassi
veMonitorActions_Message", sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(BULK_FIELD_CHANGE), sDetails, sDe
scription);
}
//--// Group logging
//--function LogCreateGroup(nDeviceGroupID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = GetDeviceGroupDisplayNameForLog(nDeviceGroupID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogCreateGroup_Me
ssage", sDisplayName);
var sDetails = "nDeviceGroupID=" + nDeviceGroupID
_LogUserMessage(_GetTranslatedCategory(DEVICES), sDetails, sDescription)
;
}
function LogModifiedGroup(nDeviceGroupID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = GetDeviceGroupDisplayNameForLog(nDeviceGroupID);

}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedGroup_
Message", sDisplayName);
var sDetails = "nDeviceGroupID=" + nDeviceGroupID
_LogUserMessage(_GetTranslatedCategory(DEVICES), sDetails, sDescription)
;
}
function LogDeletedGroup(nDeviceGroupID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = GetDeviceGroupDisplayNameForLog(nDeviceGroupID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDeletedGroup_M
essage", sDisplayName);
var sDetails = "nDeviceGroupID=" + nDeviceGroupID
_LogUserMessage(_GetTranslatedCategory(DEVICES), sDetails, sDescription)
;
}
//
Log the group move
function LogMovedGroup( nDeviceGroupID, nDestinationGroupID)
{
var sGroupName
= GetDeviceGroupDisplayNameForLo
g(nDeviceGroupID);
var sDestinationGroupName
= GetDeviceGroupDisplayNameForLog(nDesti
nationGroupID);
var sDescription = oUserTranslateForAdmin.TranslateEx("LogMovedGroup_Mes
sage", sGroupName,sDestinationGroupName);
var sDetails = "nDeviceGroupID=" + nDeviceGroupID
_LogUserMessage(_GetTranslatedCategory(DEVICES), sDetails, sDescription)
;
}
//
Log the group copy
function LogCopyGroup( nDeviceGroupID, nDestinationGroupID)
{
var sGroupName
= GetDeviceGroupDisplayNameForLo
g(nDeviceGroupID);
var sDestinationGroupName
= GetDeviceGroupDisplayNameForLog(nDesti
nationGroupID);
var sDescription = oUserTranslateForAdmin.TranslateEx("LogCopyGroup_Mess
age", sGroupName,sDestinationGroupName);
var sDetails = "nDeviceGroupID=" + nDeviceGroupID
_LogUserMessage(_GetTranslatedCategory(DEVICES), sDetails, sDescription)
;
}
//--//
Active Discovery logging
//--function LogAddActiveDiscoveryDevice(nDeviceGroupID, nActiveDiscoveryResultDevic
eDetailID,sGroupDisplayName, sDeviceDisplayName)
{
if(sGroupDisplayName == null)

{
sGroupDisplayName = GetDeviceGroupDisplayNameForLog(nDeviceGroup
ID);
}
if(sDeviceDisplayName == null)
{
sDeviceDisplayName = _GetDeviceDisplayNameFromActiveDiscoveryDev
iceIDForLog(nActiveDiscoveryResultDeviceDetailID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogAddActiveDisco
veryDevice_Message", sDeviceDisplayName, sGroupDisplayName);
var sDetails = "nDeviceGroupID=" + nDeviceGroupID;
_LogUserMessage(_GetTranslatedCategory(DEVICES), sDetails, sDescription)
;
}
function LogAddActiveDiscoveryActiveMonitor(nDeviceID, nActiveDiscoveryResultSer
viceDetailID,sDisplayName, sMonitorName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
if(sMonitorName == null)
{
sMonitorName = _GetActiveMonitorTypeNameFromActiveDiscoveryServi
ceIDForLog(nActiveDiscoveryResultServiceDetailID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogAddActiveDisco
veryActiveMonitor_Message", sMonitorName, sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICES), sDetails, sDescription)
;
}
function LogAddActiveDiscoveryPerformanceMonitor(nDeviceID, nActiveDiscoveryResu
ltStatisticalMonitorDetailID,sDisplayName, sMonitorName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameForLog(nDeviceID);
}
if(sMonitorName == null)
{
sMonitorName = _GetStatisticalMonitorTypeNameFromActiveDiscovery
StatisticalMonitorIDForLog(nActiveDiscoveryResultStatisticalMonitorDetailID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogAddActiveDisco
veryPerformanceMonitor_Message", sMonitorName,
sDisplayName);
var sDetails = "nDeviceID=" + nDeviceID;
_LogUserMessage(_GetTranslatedCategory(DEVICES), sDetails, sDescription)
;
}
//--// Action type logging

//--function LogCreatedActionType(nActionTypeID, sActionTypeName)


{
if(sActionTypeName == null)
{
sActionTypeName = _GetActionTypeNameForLog(nActionTypeID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogCreatedActionT
ype_Message", sActionTypeName);
var sDetails = "nActionTypeID=" + nActionTypeID;
_LogUserMessage(_GetTranslatedCategory(ACTION), sDetails, sDescription);
}
function LogEditedActionType(nActionTypeID, sActionTypeName)
{
if(sActionTypeName == null)
{
sActionTypeName = _GetActionTypeNameForLog(nActionTypeID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedAction
Type_Message", sActionTypeName);
var sDetails = "nActionTypeID=" + nActionTypeID;
_LogUserMessage(_GetTranslatedCategory(ACTION), sDetails, sDescription);
}
function LogDeletedActionType(nActionTypeID, sActionTypeName)
{
if(sActionTypeName == null)
{
sActionTypeName = _GetActionTypeNameForLog(nActionTypeID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDeletedActionT
ype_Message", sActionTypeName);
var sDetails = "nActionTypeID=" + nActionTypeID;
_LogUserMessage(_GetTranslatedCategory(ACTION), sDetails, sDescription);
}
//--//
Action Policy Library logging
//--function LogCreatedActionPolicy(nActionPolicyID, sPolicyName)
{
if(sPolicyName == null)
{
sPolicyName = _GetActionPolicyNameForLog(nActionPolicyID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogCreatedActionP
olicy_Message", sPolicyName);
var sDetails = "nActionPolicyID=" + nActionPolicyID;
_LogUserMessage(_GetTranslatedCategory(ACTION_POLICY), sDetails, sDescri
ption);
}
function LogModifiedActionPolicy(nActionPolicyID, sPolicyName)
{
if(sPolicyName == null)
{
sPolicyName = _GetActionPolicyNameForLog(nActionPolicyID);
}

var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedAction


Policy_Message", sPolicyName);
var sDetails = "nActionPolicyID=" + nActionPolicyID;
_LogUserMessage(_GetTranslatedCategory(ACTION_POLICY), sDetails, sDescri
ption);
}
function LogDeletedActionPolicy(nActionPolicyID, sPolicyName)
{
if(sPolicyName == null)
{
sPolicyName = _GetActionPolicyNameForLog(nActionPolicyID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDeletedActionP
olicy_Message", sPolicyName);
var sDetails = "nActionPolicyID=" + nActionPolicyID;
_LogUserMessage(_GetTranslatedCategory(ACTION_POLICY), sDetails, sDescri
ption);
}
//--// User logging
//--function LogUserLoggedIn()
{
var sDescription = oUserTranslateForAdmin.TranslateEx("LogUserLoggedIn_M
essage");
var sDetails = "nWebUserID=" + GetUserID();
_LogUserMessage(_GetTranslatedCategory(LOGIN), sDetails, sDescription);
}
function LogUserLoggedOut()
{
var sDescription = oUserTranslateForAdmin.TranslateEx("LogUserLoggedOut_
Message");
var sDetails = "nWebUserID=" + GetUserID();
// Login is the correct category
_LogUserMessage(_GetTranslatedCategory(LOGIN), sDetails, sDescription);
}
function LogCreatedUser(nWebUserID, sUserName)
{
var sDescription = oUserTranslateForAdmin.TranslateEx("LogCreatedUser_Me
ssage", sUserName);
var sDetails = "nWebUserID=" + nWebUserID;
_LogUserMessage(_GetTranslatedCategory(USER), sDetails, sDescription);
}
function LogModifiedUser(nWebUserID, sUserName)
{
if(sUserName == null)
{
sUserName = _GetWebUserNameForLog(nWebUserID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedUser_M
essage", sUserName);
var sDetails = "nWebUserID="+nWebUserID;
_LogUserMessage(_GetTranslatedCategory(USER), sDetails, sDescription);
}

function LogDeletedUser(nWebUserID, sUserName)


{
if(sUserName == null)
{
sUserName = _GetWebUserNameForLog(nWebUserID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDeletedUser_Me
ssage", sUserName);
var sDetails = "nWebUserID="+nWebUserID;
_LogUserMessage(_GetTranslatedCategory(USER), sDetails, sDescription);
}
function LogEditedUserPassword(nWebUserID, sUserName)
{
if(sUserName == null)
{
sUserName = _GetWebUserNameForLog(nWebUserID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedUserPa
ssword_Message", sUserName);
var sDetails = "nWebUserID="+nWebUserID;
_LogUserMessage(_GetTranslatedCategory(USER), sDetails, sDescription);
}
//--// Active monitor library logging
//--function LogCreatedActiveMonitorType(nActiveMonitorTypeID, sActiveMonitorTypeNam
e)
{
if (null == sActiveMonitorTypeName)
{
sActiveMonitorTypeName = _GetActiveMonitorTypeNameForLog(nActive
MonitorTypeID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogCreatedActiveM
onitorType_Message", sActiveMonitorTypeName);
var sDetails = "nActiveMonitorTypeID=" + nActiveMonitorTypeID;
_LogUserMessage(_GetTranslatedCategory(ACTIVE_MONITOR), sDetails, sDescr
iption);
}
function LogDeletedActiveMonitorType(nActiveMonitorTypeID, sActiveMonitorTypeNam
e)
{
if(sActiveMonitorTypeName == null)
{
sActiveMonitorTypeName = _GetActiveMonitorTypeNameForLog(nActive
MonitorTypeID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDeletedActiveM
onitorType_Message", sActiveMonitorTypeName);
var sDetails = "nActiveMonitorTypeID=" + nActiveMonitorTypeID;
_LogUserMessage(_GetTranslatedCategory(ACTIVE_MONITOR), sDetails, sDescr
iption);
}
function LogEditedActiveMonitorType(nActiveMonitorTypeID, sActiveMonitorTypeName
)

{
if (null == sActiveMonitorTypeName)
{
sActiveMonitorTypeName = _GetActiveMonitorTypeNameForLog(nActive
MonitorTypeID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogEditedActiveMo
nitorType_Message", sActiveMonitorTypeName);
var sDetails = "nActiveMonitorTypeID=" + nActiveMonitorTypeID;
_LogUserMessage(_GetTranslatedCategory(ACTIVE_MONITOR), sDetails, sDescr
iption);
}
//--// Passive Monitor library logging
//--function LogCreatedPassiveMonitorType(nPassiveMonitorTypeID, sPassiveMonitorType
Name)
{
if (null == sPassiveMonitorTypeName)
{
sPassiveMonitorTypeName = _GetPassiveMonitorTypeNameForLog(nPass
iveMonitorTypeID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogCreatedPassive
MonitorType_Message", sPassiveMonitorTypeName);
var sDetails = "nPassiveMonitorTypeID=" + nPassiveMonitorTypeID;
_LogUserMessage(_GetTranslatedCategory(PASSIVE_MONITOR), sDetails, sDesc
ription);
}
function LogDeletedPassiveMonitorType(nPassiveMonitorTypeID, sPassiveMonitorType
Name)
{
if (null == sPassiveMonitorTypeName)
{
sPassiveMonitorTypeName = _GetPassiveMonitorTypeNameForLog(nPass
iveMonitorTypeID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDeletedPassive
MonitorType_Message", sPassiveMonitorTypeName);
var sDetails = "nPassiveMonitorTypeID=" + nPassiveMonitorTypeID;
_LogUserMessage(_GetTranslatedCategory(PASSIVE_MONITOR), sDetails, sDesc
ription);
}
function LogEditedPassiveMonitorType(nPassiveMonitorTypeID, sPassiveMonitorTypeN
ame)
{
if (null == sPassiveMonitorTypeName)
{
sPassiveMonitorTypeName = _GetPassiveMonitorTypeNameForLog(nPass
iveMonitorTypeID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogEditedPassiveM
onitorType_Message", sPassiveMonitorTypeName);
var sDetails = "nPassiveMonitorTypeID=" + nPassiveMonitorTypeID;
_LogUserMessage(_GetTranslatedCategory(PASSIVE_MONITOR), sDetails, sDesc
ription);
}

//--// Performance Monitor library logging


//--function LogCreatedPerformanceMonitorType(nStatisticalMonitorTypeID, nStatistica
lMonitorTypeName)
{
if (null == nStatisticalMonitorTypeName)
{
nStatisticalMonitorTypeName = _GetPerformanceMonitorTypeNameForL
og(nStatisticalMonitorTypeID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogCreatedPerform
anceMonitorType_Message", nStatisticalMonitorTypeName);
var sDetails = "nStatisticalMonitorTypeID=" + nStatisticalMonitorTypeID;
_LogUserMessage(_GetTranslatedCategory(PERFORMANCE_MONITOR), sDetails, s
Description);
}
function LogDeletedPerformanceMonitorType(nStatisticalMonitorTypeID, nStatistica
lMonitorTypeName)
{
if (null == nStatisticalMonitorTypeName)
{
nStatisticalMonitorTypeName = _GetPerformanceMonitorTypeNameForL
og(nStatisticalMonitorTypeID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDeletedPerform
anceMonitorType_Message", nStatisticalMonitorTypeName);
var sDetails = "nStatisticalMonitorTypeID=" + nStatisticalMonitorTypeID;
_LogUserMessage(_GetTranslatedCategory(PERFORMANCE_MONITOR), sDetails, s
Description);
}
function LogEditedPerformanceMonitorType(nStatisticalMonitorTypeID, nStatistical
MonitorTypeName)
{
if (null == nStatisticalMonitorTypeName)
{
nStatisticalMonitorTypeName = _GetPerformanceMonitorTypeNameForL
og(nStatisticalMonitorTypeID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedPerfor
manceMonitorType_Message", nStatisticalMonitorTypeName);
var sDetails = "nStatisticalMonitorTypeID=" + nStatisticalMonitorTypeID;
_LogUserMessage(_GetTranslatedCategory(PERFORMANCE_MONITOR), sDetails, s
Description);
}
//--// Credential library logging
//--function LogCreatedCredentialType(nCredentialTypeID, sCredentialName)
{
if (null == sCredentialName)
{
sCredentialName = _GetCredentialTypeNameForLog(nCredentialTypeID
);
}

var sDescription = oUserTranslateForAdmin.TranslateEx("LogCreatedCredent


ialType_Message", sCredentialName);
var sDetails = "nCredentialTypeID=" + nCredentialTypeID;
_LogUserMessage(_GetTranslatedCategory(CREDENTIALS), sDetails, sDescript
ion);
}
function LogDeletedCredentialType(nCredentialTypeID, sCredentialName)
{
if (null == sCredentialName)
{
sCredentialName = _GetCredentialTypeNameForLog(nCredentialTypeID
);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDeletedCredent
ialType_Message", sCredentialName);
var sDetails = "nCredentialTypeID=" + nCredentialTypeID;
_LogUserMessage(_GetTranslatedCategory(CREDENTIALS), sDetails, sDescript
ion);
}
function LogEditedCredentialType(nCredentialTypeID, sCredentialName)
{
if (null == sCredentialName)
{
sCredentialName = _GetCredentialTypeNameForLog(nCredentialTypeID
);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogEditedCredenti
alType_Message", sCredentialName);
var sDetails = "nCredentialTypeID=" + nCredentialTypeID;
_LogUserMessage(_GetTranslatedCategory(CREDENTIALS), sDetails, sDescript
ion);
}
//--// Recurring Action Library Logging
//--function LogCreatedRecurringAction(nRecurringActionID, sRecurringActionName)
{
if (null == sRecurringActionName)
{
sRecurringActionName = _GetRecurringActionNameForLog(nRecurringA
ctionID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogCreatedRecurri
ngAction_Message", sRecurringActionName);
var sDetails = "nRecurringActionID=" + nRecurringActionID;
_LogUserMessage(_GetTranslatedCategory(RECURRING_ACTION), sDetails, sDes
cription);
}
function LogEditedRecurringAction(nRecurringActionID, sRecurringActionName)
{
if (null == sRecurringActionName)
{
sRecurringActionName = _GetRecurringActionNameForLog(nRecurringA
ctionID);
}

var sDescription = oUserTranslateForAdmin.TranslateEx("LogEditedRecurrin


gAction_Message", sRecurringActionName);
var sDetails = "nRecurringActionID=" + nRecurringActionID;
_LogUserMessage(_GetTranslatedCategory(RECURRING_ACTION), sDetails, sDes
cription);
}
function LogDeletedRecurringAction(nRecurringActionID, sRecurringActionName)
{
if (null == sRecurringActionName)
{
sRecurringActionName = _GetRecurringActionNameForLog(nRecurringA
ctionID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDeletedRecurri
ngAction_Message", sRecurringActionName);
var sDetails = "nRecurringActionID=" + nRecurringActionID;
_LogUserMessage(_GetTranslatedCategory(RECURRING_ACTION), sDetails, sDes
cription);
}
//--// Workspace Library logging
//--function LogCreatedWorkspace(nWorkspaceID, nWorkspaceName)
{
if (null == nWorkspaceName)
{
nWorkspaceName = _GetWorkspaceNameForLog(nWorkspaceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogCreatedWorkSpa
ce_Message", nWorkspaceName);
var sDetails = "nWorkspaceID=" + nWorkspaceID;
_LogUserMessage(_GetTranslatedCategory(WORKSPACE), sDetails, sDescriptio
n);
}
function LogEditedWorkspace(nWorkspaceID, nWorkspaceName)
{
if (null == nWorkspaceName)
{
nWorkspaceName = _GetWorkspaceNameForLog(nWorkspaceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogEditedWorkSpac
e_Message", nWorkspaceName);
var sDetails = "nWorkspaceID=" + nWorkspaceID;
_LogUserMessage(_GetTranslatedCategory(WORKSPACE), sDetails, sDescriptio
n);
}
function LogDeletedWorkspace(nWorkspaceID, nWorkspaceName)
{
if (null == nWorkspaceName)
{
nWorkspaceName = _GetWorkspaceNameForLog(nWorkspaceID);
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDeletedWorkSpa
ce_Message", nWorkspaceName);
var sDetails = "nWorkspaceID=" + nWorkspaceID;
_LogUserMessage(_GetTranslatedCategory(WORKSPACE), sDetails, sDescriptio

n);
}
//--// System logging
//--function LogEditedIPSecurity()
{
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifedIpSecur
ity_Message");
var sDetails = "nWebUserID=" + GetUserID();
_LogUserMessage(_GetTranslatedCategory(SYSTEM), sDetails, sDescription);
}
function LogEditedWEBServerSettings()
{
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifedWEBSett
ings_Message");
var sDetails = "nWebUserID=" + GetUserID();
_LogUserMessage(_GetTranslatedCategory(SYSTEM), sDetails, sDescription);
}
function LogModifiedLDAPCredentials()
{
var sDescription = oUserTranslateForAdmin.TranslateEx("LogModifiedLDAPCr
edentials_Message");
var sDetails = "";
_LogUserMessage(_GetTranslatedCategory(SYSTEM), sDetails, sDescription);
}
//--// Web alarm logging
//--function LogDismissedWebAlarmItem(nWebAlarmID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetDeviceDisplayNameFromWebAlarmIDForLog(nWebAla
rmID)
}
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDismissedWebAl
armItem_Message", sDisplayName);
var sDetails = "";
_LogUserMessage(_GetTranslatedCategory(SYSTEM), sDetails, sDescription);
}
function LogDismissedAllWebAlarm()
{
var sDescription = oUserTranslateForAdmin.TranslateEx("LogDismissedAllWe
bAlarm_Message");
var sDetails = "";
_LogUserMessage(_GetTranslatedCategory(SYSTEM), sDetails, sDescription);
}
function LogDeletedRemoteServer(nRemoteServerID, sDisplayName)
{
if(sDisplayName == null)
{
sDisplayName = _GetRemoteServerDisplayNameForLog(nRemoteServerID
);
}

var sDescription = oUserTranslateForAdmin.TranslateEx("LogDeletedRemoteS


erver_Message", sDisplayName);
var sDetails = "nRemoteServerID=" + nRemoteServerID
_LogUserMessage(_GetTranslatedCategory(REMOTE_SITE), sDetails, sDescript
ion);
}
function LogEnabledRemoteServer(nRemoteServerID)
{
var sDisplayName = _GetRemoteServerDisplayNameForLog(nRemoteServerID);
var sDescription = oUserTranslateForAdmin.TranslateEx("LogRemoteSiteEnab
led_Message", sDisplayName);
var sDetails = "nRemoteServerID=" + nRemoteServerID
_LogUserMessage(_GetTranslatedCategory(REMOTE_SITE), sDetails, sDescript
ion);
}
function LogDisabledRemoteServer(nRemoteServerID)
{
sDisplayName = _GetRemoteServerDisplayNameForLog(nRemoteServerID);
var sDescription = oUserTranslateForAdmin.TranslateEx("LogRemoteSiteDisa
bled_Message", sDisplayName);
var sDetails = "nRemoteServerID=" + nRemoteServerID
_LogUserMessage(_GetTranslatedCategory(REMOTE_SITE), sDetails, sDescript
ion);
}
Response.WriteHtml("\n\n");
// add all of the user rights
var UR_CATEGORY_GENERAL
var UR_CATEGORY_MONITORS_ACTIONS
var UR_CATEGORY_DEVICES
var UR_CATEGORY_REPORTS
var UR_CATEGORY_ALERTCENTER
var UR_CATEGORY_NETFLOW
var UR_CATEGORY_REMOTE

="General";
="Monitors / Actions";
="Devices";
="Reports";
="Alert Center";
="Netflow";
="Remote";

// these rights are shown in the web user dialog in the order that that are adde
d here
_AddUserRight(USERRIGHT_CHANGEYOURPASSWORD,
"Change
Your Password",
UR_CATEGORY_GENERAL,
FEATURE_NONE);
_AddUserRight(USERRIGHT_MANAGEWORKSPACEVIEWS,
"Manage Workspac
e Views",
UR_CATEGORY_GENERAL,
FEATURE_
NONE);
_AddUserRight(USERRIGHT_CONFIGUREWORKSPACES,
"Configure Works
paces",
UR_CATEGORY_GENERAL,
FEATURE_
NONE);
_AddUserRight(USERRIGHT_MANAGEUSERS,
"Manage
Users",
UR_CATEGORY_GENERAL,
FEATURE_NONE);
_AddUserRight(USERRIGHT_MANAGEIPSECURITY,
"Manage
IP Security",
UR_CATEGORY_GENERAL,
FEATURE_NONE);
_AddUserRight(USERRIGHT_CONFIGURELDAPCREDENTIALS,
"Configure LDAP
Credentials",
UR_CATEGORY_GENERAL,
FEATURE_NONE);

_AddUserRight(USERRIGHT_MANAGEWEBSERVER,
Web Server",
UR_CATEGORY_GENERAL,
FEATURE_NONE);
_AddUserRight(USERRIGHT_CONFIGUREMIBS,
SNMP MIBs",
UR_CATEGORY_GENERAL,
FEATURE_NONE);
_AddUserRight(USERRIGHT_TRANSLATION,
tions",
UR_CATEGORY_GENERAL,
FEATURE_NONE);

"Manage
"Manage
"Transla

_AddUserRight(USERRIGHT_CONFIGUREACTIVEMONITORS,
"Configure Activ
e Monitors",
UR_CATEGORY_MONITORS_ACTIONS, FEATURE_NONE);
_AddUserRight(USERRIGHT_CONFIGUREPASSIVEMONITORS,
"Configure Passi
ve Monitors",
UR_CATEGORY_MONITORS_ACTIONS, FEATURE_NONE);
_AddUserRight(USERRIGHT_CONFIGUREPERFORMANCEMONITORS, "Configure Performance M
onitors",
UR_CATEGORY_MONITORS_ACTIONS, FEATURE_NONE);
_AddUserRight(USERRIGHT_CONFIGUREACTIONPOLICIES,
"Configure Actio
n Policies",
UR_CATEGORY_MONITORS_ACTIONS, FEATURE_NONE);
_AddUserRight(USERRIGHT_CONFIGUREACTIONS,
"Configu
re Actions",
UR_CATEGORY_MONITORS_ACTIONS, FEATURE_
NONE);
_AddUserRight(USERRIGHT_MANAGERECURRINGACTIONS,
"Manage Recurrin
g Actions",
UR_CATEGORY_MONITORS_ACTIONS, FEATURE_NONE);
_AddUserRight(USERRIGHT_MANAGEGROUPS,
"Manage
Groups",
UR_CATEGORY_DEVICES,
FEATURE_NONE);
_AddUserRight(USERRIGHT_MANAGEDEVICES,
"Manage
Devices",
UR_CATEGORY_DEVICES,
FEATURE_NONE);
_AddUserRight(USERRIGHT_ACCESSACTIVEDISCOVERY,
"Access Active D
iscovery Results",
UR_CATEGORY_DEVICES,
FEATURE_NONE);
_AddUserRight(USERRIGHT_CONFIGURECREDENTIALS,
"Configure Crede
ntials",
UR_CATEGORY_DEVICES,
FEATURE_
NONE);
_AddUserRight(USERRIGHT_ACCESSGROUPANDDEVICEREPORTS,
"Access Group and Device
Reports",
UR_CATEGORY_REPORTS,
FEATURE_NONE);
_AddUserRight(USERRIGHT_ACCESSSYSTEMREPORTS,
"Access System R
eports",
UR_CATEGORY_REPORTS,
FEATURE_
NONE);
_AddUserRight(USERRIGHT_ACCESSSSGREPORTS,
"Access
SSG Reports",
UR_CATEGORY_REPORTS,
FEATURE_SSG);
_AddUserRight(USERRIGHT_ACCESSALERTCENTERREPORTS,
nter Reports",
UR_CATEGORY_ALERTCENTER,
NTER);
_AddUserRight(USERRIGHT_CONFIGUREALERTCENTER,
Center",
UR_CATEGORY_ALERTCENTER,
ALERT_CENTER);

"Access Alert Ce
FEATURE_ALERT_CE

_AddUserRight(USERRIGHT_ACCESSNETFLOWREPORTS,
Reports",
UR_CATEGORY_NETFLOW,
NETFLOW);
_AddUserRight(USERRIGHT_NETFLOWCONFIGURE,
re Netflow",
UR_CATEGORY_NETFLOW,
FEATURE_NETFLOW);

"Access Netflow
FEATURE_

_AddUserRight(USERRIGHT_ACCESSREMOTEREPORTS,

"Access Remote R

"Configure Alert
FEATURE_

"Configu

eports",
UR_CATEGORY_REMOTE,
FEATURE_DSTSERVER);
_AddUserRight(USERRIGHT_CONFIGUREREMOTESERVERS,
e Sites",
UR_CATEGORY_REMOTE,
FEATURE_DSTSERVER);

"Configure Remot

//---// check for a valid user


//---UserValidate();
//-// If the user is not valid then redirect them to the login screen
// otherwise do nothing.
//--function UserValidate()
{
_CheckBrowser();
// load mibs
var oSMIModule = Server.CreateObject("CoreAsp.COMSMIModule");
oResult = oSMIModule.InitializeSNMPLib;
_AutomaticLogin();
// GetUserID() will also tell if the user is the console or a webarchive
// and so the user will be valid
var nWebUserID = GetUserID();
// set the username in the view state to make it available to the client
oAspForm.SetViewState("sWebUserName", GetUserName());
// set the translation language globally - need it client side for help
calls
var nTranslationLanguageID = GetUserLanguageID();
Response.WriteHtml("\n <script>g_nTranslationLanguageID = ");
Response.Write(nTranslationLanguageID
);Response.WriteHtml("</script>\n
");
// if on the login screen, restriced access screen, invalid license scre
en,
//
or a valid user id then do not validate
var sScriptName = Request.ServerVariables("SCRIPT_NAME").Item;
if(nWebUserID != null
|| sScriptName.toLowerCase().indexOf("dlguserlogin.asp") > -1
|| sScriptName.toLowerCase().indexOf("dlgrestrictedaccess.asp")
> -1
|| sScriptName.toLowerCase().indexOf("_demo") > -1
|| sScriptName.toLowerCase().indexOf("dlginvalidlicense.asp") >
-1
)
{
// if user is comming from login or access page attempt to close
var sReturnUrl = oAspForm.GetValueAsString("DIALOGRETURNURL");

var bIsLoginOk = oAspForm.IsDialogOk("DlgUserLogin.asp");


if(bIsLoginOk && sReturnUrl != null)
{
oAspForm.CloseDialog(true);
}
var bIsAccessOk = oAspForm.IsDialogOk("DlgRestrictedAccess.asp")
;
if(bIsAccessOk && sReturnUrl != null)
{
oAspForm.CloseDialog(false);
}
// user is good so just return
return;
}
// user not valid - take him to login
var sReturnUrl = GetScriptNameUrl().AsString();
oAspForm.SetDialogInParam("sReturnUrl",sReturnUrl);
oAspForm.ShowModalDialog("/NmConsole/CoreNm/User/DlgUserLogin/DlgUserLog
in.asp");
}
//--// If the user does not have the specified access right then they
// are redirected to the restricted access screen
//--function UserRestrictAccess(nUserRight)
{
var bUserHasRight = UserHasRight(nUserRight);
if(bUserHasRight)
{
return;
}
oAspForm.SetDialogInParam("sRestrictedHttpReferer", Request.ServerVariab
les("HTTP_REFERER").Item);
oAspForm.SetDialogInParam("sRestrictedScriptName", Request.ServerVariabl
es("SCRIPT_NAME").Item);
oAspForm.ShowModalDialog("/NmConsole/CoreNm/User/DlgRestrictedAccess/Dlg
RestrictedAccess.asp?nUserRight=" + nUserRight)
}
// Gets the user right name associated with the user right bit
// or returns null if not found
function GetUserRightName(nUserRight)
{
for(var i = 0; i < _oUserRights.length; i++)
{
var oUserRight = _oUserRights[i];
if(oUserRight.m_nUserRight == nUserRight)
{
return oUserRight.m_sTranslatedName;
}
}
return null;
}
// returns an array of user right bits
function GetUserRightBits()

{
var oUserRightBits = new Array();
for(var i = 0; i < _oUserRights.length; i++)
{
oUserRightBits.push(_oUserRights[i].m_nUserRight);
}
return oUserRightBits;
}
// returns a sorted object array of user rights
function GetUserRights()
{
return _oUserRights;
}
//--// Returns a boolean - true if the user has nUserRight
//
false if not. The nUserRightsMask is optional in case
//
there is need to test a different user
//
(other than the currently logged in user)
//--function UserHasRight(nUserRight, nUserRightsMask)
{
// if nUserRightsMask is omitted then it uses the current users mask
if(nUserRightsMask == null)
{
nUserRightsMask = _GetUserRightsMask();
}
// if the user right name does not exist than the feature associated wit
h the user right
// is not enabled so return false
var sUserRightName = GetUserRightName(nUserRight);
if(sUserRightName == null)
{
return false;
}
// check for the hex in case the value comes from the db - this is
if(nUserRightsMask == USERRIGHT_ALL)
{
return true;
}
// nUserRightsMask could be null if the user is the console or a webarch
ive
if(nUserRightsMask == null)
{
return false;
}
else
{
return (nUserRightsMask & nUserRight) == nUserRight;
}
}
//--// Attempts to log the user in
//--function UserLogin(sUserName, sPassword)

{
_CheckProductLicense();
sPassword = sPassword || "";
var oUser = Server.CreateObject("CoreAsp.User");
var oResult = oUser.LoginUser(sUserName, sPassword);
if(oResult.Failed)
{
var sLoginError = oUserTranslate.TranslateEx("UserLoginError", o
Result.GetErrorMsg);
oAspForm.SetError(sLoginError);
return false;
}
Session("nWebUserID")
Session("sUserName")
Session("nUserRightsMask")
Session("nHomeDeviceGroupID")

=
=
=
=

oUser.m_nUserID;
sUserName;
oUser.m_nUserRightsMask;
_GetUsersHomeDeviceGroupID(oUser.m_nUser

ID);
Session("WebUserData") = null;
SetUserLanguageID(oUser.m_nLanguageID);
if(IsDashboardRequest()==false)
{
// don't log if if a dashboard request as it
// creates a new session every refresh
LogUserLoggedIn();
}
if(IsUserDemoUser())
{
if(!IsDemoServerEnabled())
{
var sLoginError = oUserTranslate.TranslateEx("DemoUserLo
ginError");
oAspForm.SetError(sLoginError);
UserLogout();
return false;
}
Session("bShowDemoUserMessage") = true;
}
return true;
}
//--// Logs the user out
//--function UserLogout()
{
// set all user session variables to null
if(IsDashboardRequest()==false)
{
// don't log if if a dashboard request as it
// creates a new session every refresh
LogUserLoggedOut();
}
Session("USER_GROUP_ACCESS_" + GetUserIDForGroupAccess()) = null;
Session("USER_DEVICE_ACCESS_" + GetUserIDForGroupAccess()) = null;
Session("sRedirectUrl") = null;
Session("nWebUserID") = null;

Session("sUserName") = null;
Session("nUserRightsMask") = null;
Session("nHomeDeviceGroupID") = null;
SetUserLanguageID(null);
Session("UsersRootDeviceGroupID") = null;
Session("WebUserData") = null;
Session("bShowDemoUserMessage") = null;
}
// tests to see if the request came from the dashboard
function IsDashboardRequest()
{
var bIsDashboardRequest = parseInt(oAspForm.GetValueAsString("bIsDashboa
rdRequest"));
if(bIsDashboardRequest==1)
{
return true;
}
return false;
}
// May want to add logic for determining the users home
function UserGetHomeUrl()
{
return "/NmConsole/Workspace/HomeWorkspace/HomeWorkspace.asp";
}
//--// Get the current user id. If null then the user is not logged in.
//--function GetUserID()
{
// if a web archive or the console then return the admin userid
if(IsUserAWebArchive())
{
Session("nWebUserID") = ADMIN_USERID;
return ADMIN_USERID;
}
else if(Session("nWebUserID") == null)
{
return null;
}
else
{
return parseInt(Session("nWebUserID"));
}
}
//--// Get the current users name. If null then the user is not logged in.
//--function GetUserName()
{
// if a web archive or the console then return the admin user name
if(IsUserAWebArchive())
{
return ADMIN_USERNAME;
}
else
{

return Session("sUserName");
}
}
//--// Get the users language id. If null return english.
//--function GetUserLanguageID()
{
if(Session("nUserLanguageID") == null)
{
return LANGUAGEID_ENGLISH;
}
else
{
return Session("nUserLanguageID");
}
}
//--// Get the admuin users language id. If null return english.
//--function GetAdminUserLanguageID()
{
if(Session("ADMIN_nLanguageID") != null)
{
return Session("ADMIN_nLanguageID");
}
var oDb = GetDb();
var sSql = "SELECT nLanguageID FROM WebUser WHERE nWebUserID = " + ADMIN
_USERID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("GetAdminUser
LanguageID_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
return LANGUAGEID_ENGLISH;
}
var nLanguageID = LANGUAGEID_ENGLISH;
if(!oDb.IsEOF)
{
nLanguageID = oDb.GetFieldAsLong("nLanguageID");
}
Session("ADMIN_nLanguageID") = nLanguageID;
return nLanguageID;
}
// transform the ipswitch web server session ID to
// match the IIS session ID
function GetUserSessionIDAsNumber()
{
if( IsWebServerIpswitch() )
{
var sID = String(Session.SessionID);
var oRegEx = new RegExp("(\\D+)", "g");
sID = sID.replace(oRegEx, "");
if( sID.length > 9 )
{

sID = sID.substr(0, 9);


}
return sID;
}
else
{
return Session.SessionID;
}
}
//--// Set the user language id.
//
nTranslationLanguageID is used by asp forms
//
nUserLanguageID is the current user
//
can be different depending on translation
//--function SetUserLanguageID(nUserLanguageID)
{
Session("nTranslationLanguageID") = nUserLanguageID;
Session("nUserLanguageID") = nUserLanguageID;
}
//--// Determines if a user is a webarchive i.e. its address is the loopback address
(127.0.0.1 OR ::1)
// and the user-agent is Ipswitch/1.0 and the User-Application is WebArchive.
//--function IsUserAWebArchive()
{
if ( IsAddressLocal(Request.ServerVariables("REMOTE_ADDR")) &&
Request.ServerVariables("HTTP_User-Application") == "WebArchive
" &&
Request.ServerVariables("HTTP_User-Agent") == "Ipswitch/1.0")
{
return true;
}
else
{
return false;
}
}
//
// return true if sTestAddress is local to the computer where whatsup is running
, false otherwise.
//
function IsAddressLocal(sTestAddress)
{
var oLayer2Helper = Server.CreateObject("CoreAsp.Layer2Helper");
var oResult = oLayer2Helper.GetConfiguredAddressList;
var arrLocalAddresses = new Array();
if (oResult.Failed)
{
// We could not get an IP address from the system. This is not n
ormal but
// keep going anyways with the filtering.
}
else
{

var sAddresses = oResult.GetPayload;


arrLocalAddresses = sAddresses.split(",");
}
// add the loopbacks to the list of allowed IP addresses.
arrLocalAddresses.push("127.0.0.1");
// IPv4 loopback
arrLocalAddresses.push("::1");
// IPv6 loopback
var bIsAddressLocal = false;
for (var i=0; i<arrLocalAddresses.length && !bIsAddressLocal; i++)
{
bIsAddressLocal = (sTestAddress == arrLocalAddresses[i]);
}
return bIsAddressLocal;
}
// Convenience method to tell if the web server that is running is the Ipswitch
web server
function IsWebServerIpswitch()
{
var sServerSoftware = String(Request.ServerVariables("SERVER_SOFTWARE"))
.toLowerCase();
if(sServerSoftware.indexOf("ipswitch") > -1)
{
return true;
}
return false;
}
//--// Gets the users home group id.
//
This could be null if it was never set
//--function GetUsersHomeDeviceGroupID()
{
if(Session("nHomeDeviceGroupID") == null)
{
return null;
}
else
{
return parseInt(Session("nHomeDeviceGroupID"));
}
}
//-// Since the user may have read access to groups above their home group
// this function will find the topmost group that is readable by the user.
//-function GetUsersRootDeviceGroupID()
{
// this is stored off since it could be expensive otherwise
if(Session("UsersRootDeviceGroupID") != null)
{
return parseInt(Session("UsersRootDeviceGroupID"));
}
// First get the users home group - we know they can read that.

var nTempDeviceGroupID = GetUsersHomeDeviceGroupID();


if(nTempDeviceGroupID == GROUPID_MYNETWORK)
{
return GROUPID_MYNETWORK;
}
// now loop through the parents and check for read access
var oDb = GetDb();
while(1)
{
var sSql = "SELECT nParentGroupID FROM DeviceGroup WHERE nDevice
GroupID = " + nTempDeviceGroupID;
var oResult = oDb.ExecSql(sSql);
if (oResult.Failed)
{
var sTranlsationError = oUserTranslate.TranslateEx("GetU
sersRootDeviceGroupID_Error", oResult.GetErrorMsg);
oAspForm.SetError(sTranlsationError);
// if an error occured return the users home group
nTempDeviceGroupID = GetUsersHomeDeviceGroupID();
break;
}
// if the user has read access to the group, then let the loop
// continue to test the next parent
var nParentGroupID = oDb.GetFieldAsLong("nParentGroupID");
if(UserHasGroupAccess(nParentGroupID, GROUP_READ))
{
nTempDeviceGroupID = nParentGroupID;
// if the parent is my network then stop
if(nParentGroupID == GROUPID_MYNETWORK)
{
break;
}
}
else // if they don't have read access then stop
{
break;
}
}
Session("UsersRootDeviceGroupID") = nTempDeviceGroupID;
return nTempDeviceGroupID;
}
function GetWebUserData(sName)
{
var sValue = _GetWebUserData(sName);
if(sValue != null)
{
return sValue;
}
// defaults
switch(sName)
{
case WUD_WORKSPACEREPORT_REFRESHINTERVAL:
return REFRESH_DEFAULT;
case WUD_FULLREPORT_REFRESHINTERVAL:
return REFRESH_DEFAULT;

case WBU_DEVICESTAB_REFRESHINTERVAL:
return REFRESH_DEFAULT;
case WUD_WEBALARMS_REFRESHINTERVAL:
return REFRESH_DEFAULT;
case WUD_SHOWBUBBLE_ONWORKSPACEREPORTS:
return SHOWBUBBLE_DEFAULT;
case WUD_SHOWBUBBLE_ONFULLREPORTS:
return SHOWBUBBLE_DEFAULT;
case WUD_DYNAMICSSGLEGENDS:
return "false";
case WUD_SHOWNETFLOW_TOOLTIPS:
return SHOWTOOLTIPS_DEFAULT;
}
return sValue
}
function SetWebUserData(nWebUserID, sName, sValue)
{
var oDb = GetDb();
var sSql = ""
+ "SET NOCOUNT ON "
+ "UPDATE WebUserData SET "
+ " sValue = " + oDb.QuoteString(sValue) + " "
+ "WHERE nWebUserID = " + nWebUserID
+ "
AND sName = " + oDb.QuoteString(sName) + " "
+ "SELECT @@ROWCOUNT AS nRowsAffected";
var oResult = oDb.ExecSql(sSql);
if(oResult.Failed || oDb.IsEOF)
{
oAspForm.SetError(oResult.GetErrorMsg);
return false;
}
// determine if the update effected any rows
var nUpdatedRows = oDb.GetFieldAsLong("nRowsAffected");
if(0 != nUpdatedRows)
{
// update worked
Session("WebUserData") = null;
return true;
}
// update did not effect any rows so do an insert
var sSql = ""
+ "INSERT INTO WebUserData "
+ "(nWebUserID, sName, sValue) "
+ "VALUES "
+ "(" + nWebUserID + ","
+ oDb.QuoteString(sName) + ","
+ oDb.QuoteString(sValue) + ")";
var oResult = oDb.ExecSql(sSql);
if(oResult.Failed)
{
oAspForm.SetError(oResult.GetErrorMsg);
return false;
}
Session("WebUserData") = null;
return true;
}

function IsUserDemoUser()
{
var bIsDemoUser = GetWebUserData(WUD_ISDEMOUSER);
if(bIsDemoUser == "1")
{
return true;
}
else
{
return false;
}
}
function DemoUserIsRestricted(sAdditionalMessage)
{
if(IsUserDemoUser())
{
if(sAdditionalMessage == null)
{
sAdditionalMessage = "";
}
else
{
sAdditionalMessage = "\n\n" + sAdditionalMessage;
}
var sError = oUserTranslate.TranslateEx("DemoUserRestricted", sA
dditionalMessage);
oAspForm.SetError(sError);
return true;
}
return false;
}
//--// User Group / Device Access
//--var DEVICE_READ = 4;
var DEVICE_WRITE = 3;
var GROUP_READ = 2;
var GROUP_WRITE = 1;
// Determines if the user has specified access rights to the specified group
function UserHasGroupAccess(nDeviceGroupID, nAccessType)
{
// if just trying to read the default all devices group then
// allow this since userrights will take care of the rest
if(nAccessType==GROUP_READ && nDeviceGroupID==GROUPID_ALLDEVICES)
{
return true;
}
// User also needs manage groups rights for group write right
if(nAccessType == GROUP_WRITE && false == UserHasRight(USERRIGHT_MANAGEG
ROUPS))
{
return false;
}
// if the current user is the admin always return true
if(GetUserIDForGroupAccess() == ADMIN_USERID)

{
return true;
}
var oRights = _GetUserGroupRights(nDeviceGroupID)
if(oRights[nAccessType] > 0)
{
return true;
}
else
{
return false;
}
}
// Determines if the user has specified access rights to the specified device
function UserHasDeviceAccess(nDeviceID, nAccessType)
{
// User also needs manage devices rights for device write right
if(nAccessType == DEVICE_WRITE && false == UserHasRight(USERRIGHT_MANAGE
DEVICES))
{
return false;
}
// if the current user is the admin always return true
if(GetUserIDForGroupAccess() == ADMIN_USERID)
{
return true;
}
var oRights = _GetUserDeviceRights(nDeviceID)
if(oRights[nAccessType] > 0)
{
return true;
}
else
{
return false;
}
}
// Checks if the access rights are enabled
// and returns the user id to use for access rights
function GetUserIDForGroupAccess()
{
if(GetUserID() == ADMIN_USERID)
{
return ADMIN_USERID;
}
else if(_IsUserGroupAccessEnabled())
{
return GetUserID();
}
else
{
return ADMIN_USERID;
}
}
function IsUserGroupAccessEnabled()

{
return _IsUserGroupAccessEnabled()
}
var g_oTranslateForAdmin = null;
function GetTranslationObjectForAdminUser()
{
if(g_oTranslateForAdmin != null)
{
return g_oTranslateForAdmin;
}
g_oTranslateForAdmin = Server.CreateObject("CoreAsp" + ".Translate");
g_oTranslateForAdmin.Initialize("User.inc", GetAdminUserLanguageID());
return g_oTranslateForAdmin;
}
// gets the sValue from the GlobalSettings db table associated with sName
// if there is an error or IsEOF then the function will return null
function GetGlobalSetting(sName)
{
var oDb = GetCacheDb();
var sSql = "SELECT sValue FROM GlobalSettings WHERE sName = " + oDb.Quot
eString(sName);
var oResult = oDb.ExecSQL(sSql);
if(oResult.Failed==true)
{
oAspForm.SetError(oResult.GetErrorMsg);
return null;
}
if(oDb.IsEOF==true)
{
return null;
}
return oDb.GetFieldAsString("sValue");
}
// inserts or updates a row in the GlobalSettings db table
function SetGlobalSetting(sName, sValue)
{
var oDb = GetCacheDb();
var sSql = ""
+ "SET NOCOUNT ON "
+ "UPDATE GlobalSettings SET "
+ " sValue = " + oDb.QuoteString(sValue) + " "
+ "WHERE sName = " + oDb.QuoteString(sName)
+ "SELECT @@ROWCOUNT AS nRowsAffected";
var oResult = oDb.ExecSql(sSql);
if(oResult.Failed || oDb.IsEOF)
{
oAspForm.SetError(oResult.GetErrorMsg);
return false;
}
// determine if the update effected any rows
var nUpdatedRows = oDb.GetFieldAsLong("nRowsAffected");

if(0 != nUpdatedRows)
{
// update worked
return true;
}
// update did not effect any rows so do an insert
var sSql = ""
+ "INSERT INTO GlobalSettings "
+ "(sName, sValue) "
+ "VALUES "
+ "(" + oDb.QuoteString(sName) + ","
+ oDb.QuoteString(sValue) + ")";
var oResult = oDb.ExecSql(sSql);
if(oResult.Failed)
{
oAspForm.SetError(oResult.GetErrorMsg);
return false;
}
return true;
}
// make the users configure rights available to the client for
// building the dynamic configure menu
_WriteConfigureMenuAccessRights();
// function to test if the user has turned off a certain bubble type
function IsBubbleTypeTurnedOn(nBubbleType)
{
switch(nBubbleType)
{
case BUBBLETYPE_WORKSPACEREPORT:
if(GetWebUserData(WUD_SHOWBUBBLE_ONWORKSPACEREPORTS) ==
"false")
{
return false;
break;
}
else
{
return true;
break;
}
case BUBBLETYPE_FULLREPORT:
if(GetWebUserData(WUD_SHOWBUBBLE_ONFULLREPORTS) == "fals
e")
{
return false;
break;
}
}
return true;
}
function IsTooltipEnabled()
{
if(GetWebUserData(WUD_SHOWNETFLOW_TOOLTIPS) == "false")
{

return false;
}
return true;
}
Response.WriteHtml("\n");
Response.Clear();
var oRequest = InitializeRequest();
var oResponse = InitializeResponse();
// if user does not have manage device right then return false
if(!UserHasRight(USERRIGHT_MANAGEDEVICES))
{
oResponse.m_bHasWebAlarms = false;
SendResult(oResponse);
}
// get the list of webalarms
var sPivotDeviceToGroupTable = GetUniqueTempTableName();
var sSql = "EXEC LoadDeviceGroup -1, " + GetUserIDForGroupAccess() + ", '" + sPi
votDeviceToGroupTable + "' " +
"SELECT WebAlarmLog.nWebAlarmLogID, " +
"
WebAlarmLog.sSoundFilename, " +
"
WebAlarmLog.sMessage, " +
"
WebAlarmLog.dDateTime, " +
"
Device.nDeviceID, " +
"
Device.sDisplayName, " +
"
NetworkInterface.sNetworkName, " +
"
NetworkInterface.sNetworkAddress, " +
"
MonitorState.sStateName, " +
"
ActiveMonitorType.sMonitorTypeName AS sActiveMon
itorTypeName, " +
"
PivotActiveMonitorTypeToDevice.sArgument, " +
"
PivotActiveMonitorTypeToDevice.sComment, " +
"
Device.nBestStateID, " +
"
Device.nWorstStateID " +
"FROM WebAlarmLog " +
"INNER JOIN Device ON Device.nDeviceID = WebAlarmLog.nDe
viceID " +
"INNER JOIN NetworkInterface ON NetworkInterface.nNetwor
kInterfaceID = " +
"
Device.nDefaultNetworkInterfaceID " +
"LEFT OUTER JOIN MonitorState ON MonitorState.nMonitorSt
ateID = " +
"
WebAlarmLog.nMonitorStateID " +
"LEFT OUTER JOIN PivotActiveMonitorTypeToDevice ON " +
"
PivotActiveMonitorTypeToDevice.nPivotActiveMonit
orTypeToDeviceID = " +
"
WebAlarmLog.nPivotActiveMonitorTypeToDeviceID "
+
"LEFT OUTER JOIN ActiveMonitorType ON PivotActiveMonitor
TypeToDevice.nActiveMonitorTypeID = " +
"
ActiveMonitorType.nActiveMonitorTypeID " +
"INNER JOIN " + sPivotDeviceToGroupTable +
"
P ON P.nDeviceID=Device.nDeviceID " +
"WHERE Device.bRemoved = 0
" +
"ORDER by dDateTime DESC";

var oDb = GetDb();


var oResult = oDb.ExecSql(sSql);
if(oResult.Failed)
{
var sError = oAspForm.Translate(
"WebAlarmLogError",
"An error occurred when doing a SELECT on the WebAlarmLog table.
SQL error=%1",
oResult.GetErrorMsg);
// send an error resopnse
SendError(sError);
}
// if the resultset is empty then there are no web alarms
if(oDb.IsEOF)
{
oResponse.m_bHasWebAlarms = false;
}
else
{
oResponse.m_bHasWebAlarms = true;
}
// send the response
SendResult(oResponse);

You might also like