11 $monLibrary= dirname(__FILE__) .
"/../library";
12 $monIncludes= dirname(__FILE__) .
"/../includes";
13 $sharedLibrary= dirname(__FILE__) .
"/../../shared/library";
14 require_once(
"$monLibrary/cu_top.i");
15 require_once(
"$monLibrary/ck_hticket.i");
16 require_once(
"$monIncludes/cu_remote_top.prg");
17 require_once(
"$sharedLibrary/commonPhpFunctions.i");
19 if (!CheckPerm($link, $Hu, basename($_SERVER[
'SCRIPT_NAME']), $_SERVER[
'REMOTE_ADDR'])) {
22 header(
"Location: /hcuadm/hcu_noperm.prg");
26 dms_import_v2($DATA_PARAMETERS,
"TOP_LEVEL", array(
'operation' =>
'string'));
27 $operation= $DATA_PARAMETERS[
"TOP_LEVEL"][
'operation'];
31 case "readTrustedVendors":
32 $returnArray= readTrustedVendors($dbh);
34 case "createTrustedId":
35 $returnArray= createOrUpdateTrustedId($dbh,
true);
37 case "updateTrustedId":
38 $returnArray= createOrUpdateTrustedId($dbh,
false);
40 case "removeTrustedId":
41 $returnArray= removeTrustedId($dbh);
43 case "addTrustedDetail":
44 $returnArray= changeTrustedDetail($dbh,
"add");
46 case "updateTrustedDetail":
47 $returnArray= changeTrustedDetail($dbh,
"update");
49 case "removeTrustedDetail":
50 $returnArray= changeTrustedDetail($dbh,
"delete");
52 case "addServerProperty":
53 $returnArray= changeServerProperty($dbh,
"add");
55 case "updateServerProperty":
56 $returnArray= changeServerProperty($dbh,
"update");
58 case "removeServerProperty":
59 $returnArray= changeServerProperty($dbh,
"delete");
61 case "reorderTrustedDetail":
62 $returnArray= reorderTrustedDetail($dbh);
64 default: $returnArray= array(
"sql" => array(),
"error" => array(
"Operation not specified: '$operation'"),
"record" =>
"",
"operation" =>
"");
68 unset($returnArray[
"sql"]);
69 header(
'Content-type: application/json');
70 print json_encode($returnArray);
73 function getOptionList()
75 return array(
"APP" =>
"usesApps",
"CLS" =>
"usesCls",
"MBL" =>
"usesMbl",
"ADA" =>
"usesAda",
"CMB" =>
"usesCmb");
79 function getTypeList()
81 return array(
"BillPay" =>
"BillPay",
"SSO" =>
"SSO",
"E" =>
"E-Statement",
"C" =>
"Credit Card Info",
"RDC" =>
"Remote Deposit Capture",
"O" =>
"Other");
85 function getFieldTypeList()
87 return array(
"string" =>
"String",
"digits" =>
"Number",
"boolean" =>
"Boolean",
"list" =>
"List");
91 function getServerOptions()
93 return array(
"N" =>
"Active",
"U" =>
"Offline (Auto Up)",
"Y" =>
"Offline (Stay Down)");
97 function updateRemoteServers($trustedId, $vendorName, $trustedType, $optionsEncoded, $detailsEncoded)
99 $updateServers=
false;
100 if (isset($trustedId))
102 Remote_Field_Add(
"trustvendor",
"trustedid", $trustedId);
103 $updateServers=
true;
105 if (isset($vendorName))
107 Remote_Field_Add(
"trustvendor",
"trustedvendor", $vendorName);
108 $updateServers=
true;
110 if (isset($trustedType))
112 Remote_Field_Add(
"trustvendor",
"trustedtype", $trustedType);
113 $updateServers=
true;
115 if (isset($optionsEncoded))
117 Remote_Field_Add(
"trustvendor",
"hcuinterface", $optionsEncoded);
118 $updateServers=
true;
120 if (isset($detailsEncoded))
122 Remote_Field_Add(
"trustvendor",
"trustedfields", $detailsEncoded);
123 $updateServers=
true;
127 Remote_Update_All(
"U",
"trustvendor");
132 function readTrustedVendors($dbh)
134 $optionList= getOptionList();
135 $typeList= getTypeList();
136 $fieldTypeList= getFieldTypeList();
138 $sql=
"select trustedid, trustedvendor, trustedtype, trustedfields from cutrustedmaster order by trustedid, trustedvendor";
139 $queryResults= runSelectStatement($sql, $dbh, array(
"trustedid" =>
"trustedId",
"trustedvendor" =>
"vendorName",
"trustedtype" =>
"typeValue",
"trustedfields" =>
"details"));
142 $serverOptions= getServerOptions();
143 $serverOptionsDDL= array();
144 foreach($serverOptions as $key => $value)
146 $serverOptionsDDL[]= array(
"value" => $key,
"text" => $value);
151 foreach($queryResults[
"record"] as $record)
154 foreach ($optionList as $key => $value)
156 $record[$value]=
false;
158 $expandedOptions= json_decode($record[
"options"],
true);
159 if (is_array($expandedOptions))
161 foreach($expandedOptions as $option)
163 $gridColumn= $optionList[$option];
164 $record[$gridColumn]=
true;
167 unset($record[
"options"]);
170 $expandedDetails= json_decode($record[
"details"],
true);
172 if (is_array($expandedDetails))
174 $theseDetails= array();
175 if ($record[
"vendorName"] ==
"HOMECU" && $record[
"trustedId"] ==
"HOMECUSERVICE")
178 foreach($expandedDetails as $key => $detailRecord)
180 $pos= stripos($key,
"_MSG");
181 if ($pos !==
false && strlen($key) - $pos == 4)
182 $messages[stripslashes(substr($key, 0, $pos))]= stripslashes($detailRecord[
"Default"]);
184 $theseDetails[]= array(
"detailName" => stripslashes($key),
"defaultValue" => stripslashes($detailRecord[
"Default"]),
"trustedId" => $record[
"trustedId"]);
187 for($i=0, $count= count($theseDetails); $i != $count; $i++)
189 $key= $theseDetails[$i][
"detailName"];
190 $theseDetails[$i][
"defaultMessage"]= strval($messages[$key]);
192 $details= array_merge($details, $theseDetails);
197 foreach($expandedDetails as $key => $detailRecord)
199 $detail= array(
"detailName" => $key,
"fieldType" =>
"",
"fieldTypeText" =>
"",
"defaultValue" =>
"",
"trustedId" => $record[
"trustedId"],
200 "defaultMessage" =>
"",
"displayOrder" => $displayOrder++);
201 if (is_array($detailRecord))
202 foreach($detailRecord as $lowerKey => $value)
204 if ($lowerKey ==
"Type")
206 $detail[
"fieldType"]= $value;
207 $detail[
"fieldTypeText"]= $fieldTypeList[$value];
209 else if ($lowerKey ==
"Default")
210 $detail[
"defaultValue"]= stripslashes($value);
211 else if ($lowerKey ==
"Message")
212 $detail[
"defaultMessage"]= stripslashes($value);
218 unset($record[
"details"]);
220 $record[
"typeText"]= $typeList[$record[
"typeValue"]];
226 foreach($typeList as $value => $text)
228 $types[]= array(
"value" => $value,
"text" => $text);
230 $fieldTypes= array();
231 foreach($fieldTypeList as $value => $text)
233 $fieldTypes[]= array(
"value" => $value,
"text" => $text);
236 return array(
"error" => $queryResults[
"error"],
"sql" => $queryResults[
"sql"],
"record" => $records,
"operation" =>
"read",
"detailRecords" => $details,
237 "optionDDL" => array_keys($optionList),
"typeDDL" => $types,
"fieldTypeDDL" => $fieldTypes,
"serverOptions" => $serverOptionsDDL);
241 function createOrUpdateTrustedId($dbh, $isCreate)
243 $parameters= array();
244 dms_import_v2($parameters,
"BOTTOM_LEVEL", array(
"trustedId" =>
"string",
"vendorName" =>
"string",
"typeValue" =>
"string",
"detailsEncoded" =>
"string"));
247 $errors= cleanValuesForDatabase($parameters[
"BOTTOM_LEVEL"],
248 array(
"trustedId" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 20),
249 "vendorName" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 15),
250 "typeValue" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 10)));
251 $trustedId= $parameters[
"BOTTOM_LEVEL"][
"trustedId"];
252 $vendorName= $parameters[
"BOTTOM_LEVEL"][
"vendorName"];
253 $typeValue= $parameters[
"BOTTOM_LEVEL"][
"typeValue"];
254 $detailsEncoded= $parameters[
"BOTTOM_LEVEL"][
"detailsEncoded"];
256 $createdColumns=
"trustedid, trustedvendor, trustedtype";
257 $createdValues=
"'$trustedId', '$vendorName', '$typeValue'";
258 $updatedSets=
"trustedvendor= '$vendorName', trustedtype= '$typeValue'";
260 if ($detailsEncoded !=
"")
262 $createdColumns.=
", trustedfields";
264 $detailsDecoded= json_decode($detailsEncoded,
true);
265 if (is_array($detailsDecoded))
267 foreach($detailsDecoded as $record)
269 $detailName= stripslashes(trim($record[
"detailName"]));
270 $fieldType= stripslashes(trim($record[
"fieldType"]));
271 $defaultValue= stripslashes(trim($record[
"defaultValue"]));
272 $defaultMessage= stripslashes(trim($record[
"defaultMessage"]));
274 if ($detailName ==
"")
275 $errors[]=
"DetailName is required";
276 if ($fieldType ==
"")
277 $errors[]=
"FieldType is required";
278 $thisRecord= array(
"Type" => $fieldType,
"Default" => $defaultValue);
279 if ($defaultMessage !=
"")
280 $thisRecord[
"Message"]= $defaultMessage;
281 $details[$detailName]= $thisRecord;
285 $errors[]=
"detailsEncoded is invalid";
286 $unpreppedDetailString= json_encode($details);
287 $detailsString= prepSave($unpreppedDetailString);
288 $createdValues.=
", '$detailsString'";
289 $updatedSets.=
", trustedfields= '$detailsString'";
293 $sql=
"insert into cutrustedmaster ($createdColumns) values ($createdValues)";
295 $sql=
"update cutrustedmaster set $updatedSets where trustedid= '$trustedId'";
298 if (count($errors) == 0)
300 $queryResults= runExecStatement($sql, $dbh);
301 $errors= array_merge($errors, $queryResults[
"error"]);
302 $detailsEncoded !=
"" ? updateRemoteServers($trustedId, $vendorName, $typeValue,
null, $unpreppedDetailString) : updateRemoteServers($trustedId, $vendorName, $typeValue, null, null);
305 $requerySQL=
"select trustedid, trustedvendor, trustedtype, trustedfields from cutrustedmaster where trustedid= '$trustedId'";
306 $queryResults= runSelectStatement($requerySQL, $dbh, array(
"trustedid" =>
"trustedId",
"trustedvendor" =>
"vendorName",
"trustedtype" =>
"typeValue",
"trustedfields" =>
"properties"));
307 $errors= array_merge($errors, $queryResults[
"error"]);
308 $sqls[]= $requerySQL;
311 $typeList= getTypeList();
312 $fieldTypeList= getFieldTypeList();
313 if (isset($queryResults[
"record"][0]))
315 $record= $queryResults[
"record"][0];
317 unset($record[
"options"]);
318 $record[
"typeText"]= $typeList[$record[
"typeValue"]];
322 $expandedDetails= json_decode($record[
"properties"],
true);
324 if (is_array($expandedDetails))
327 foreach($expandedDetails as $key => $detailRecord)
329 $detail= array(
"detailName" => stripslashes($key),
"fieldType" =>
"",
"fieldTypeText" =>
"",
"defaultValue" =>
"",
"detailIndex" => ++$detailIndex);
330 if (is_array($detailRecord))
331 foreach($detailRecord as $lowerKey => $value)
333 if ($lowerKey ==
"Type")
335 $detail[
"fieldType"]= $value;
336 $detail[
"fieldTypeText"]= $fieldTypeList[$value];
338 else if ($lowerKey ==
"Default")
339 $detail[
"defaultValue"]= stripslashes($value);
340 else if ($lowerKey ==
"Message")
341 $detail[
"defaultMessage"]= stripslashes($value);
346 $record[
"properties"]= $details;
347 unset($record[
"details"]);
350 return array(
"error" => $errors,
"sql" => $sqls,
"operation" => $isCreate ?
"add" :
"update",
"record" => array($record));
354 function removeTrustedId($dbh)
356 $parameters= array();
357 dms_import_v2($parameters,
"BOTTOM_LEVEL", array(
"trustedId" =>
"string"));
358 $errors= cleanValuesForDatabase($parameters[
"BOTTOM_LEVEL"], array(
"trustedId" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 20)));
359 $trustedId= $parameters[
"BOTTOM_LEVEL"][
"trustedId"];
361 $sql=
"delete from cutrustedmaster where trustedid= '$trustedId'";
362 if (count($errors) == 0)
364 $queryResults= runExecStatement($sql, $dbh);
365 $errors= array_merge($errors, $queryResults[
"error"]);
367 Remote_Field_Add(
"trustvendor",
"trustedid", $trustedId);
368 $Remote_Results = Remote_Update_All(
"D",
"trustvendor");
370 return array(
"sql" => array($sql),
"error" => $errors,
"operation" =>
"delete");
374 function changeTrustedDetail($dbh, $mode)
376 $parameters= array();
378 $valid= array(
"trustedId" =>
"string",
"detailName" =>
"string");
379 if ($mode !=
"delete")
381 $valid[
"fieldType"]=
"string";
382 $valid[
"defaultValue"]=
"string";
383 $valid[
"defaultMessage"]=
"string";
385 dms_import_v2($parameters,
"BOTTOM_LEVEL", $valid);
387 $errors= cleanValuesForDatabase($parameters[
"BOTTOM_LEVEL"],
388 array(
"trustedId" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 20)));
389 $trustedId= $parameters[
"BOTTOM_LEVEL"][
"trustedId"];
390 $fieldType= $parameters[
"BOTTOM_LEVEL"][
"fieldType"];
392 $fieldTypeList= getFieldTypeList();
395 $defaultValue= trim($parameters[
"BOTTOM_LEVEL"][
"defaultValue"]);
396 $detailName= trim($parameters[
"BOTTOM_LEVEL"][
"detailName"]);
397 $defaultMessage= trim($parameters[
"BOTTOM_LEVEL"][
"defaultMessage"]);
398 $fieldType= trim($parameters[
"BOTTOM_LEVEL"][
"fieldType"]);
400 if ($detailName ==
"")
401 $errors[]=
"DetailName is required";
402 if ($fieldType ==
"" && $mode !=
"delete")
403 $errors[]=
"FieldType is required";
405 if ($trustedId ==
"HOMECUSERVICE")
406 return changeServerPropertyCommon($dbh, $mode, $detailName, $defaultMessage, $defaultValue, $errors);
409 $retrievalSQL=
"select trustedfields from cutrustedmaster where trustedid= '$trustedId'";
410 $queryResults= runSelectStatement($retrievalSQL, $dbh, array(
"trustedfields" =>
"details"));
411 $errors= array_merge($errors, $queryResults[
"error"]);
412 $sqls= array($retrievalSQL);
414 $detailArray= array();
416 if (count($errors) == 0)
418 if (count($queryResults[
"record"]) > 0)
420 $detailString= $queryResults[
"record"][0][
"details"];
421 if ($detailString !=
"")
422 $detailArray= json_decode($detailString,
true);
425 if ($mode ==
"delete")
426 unset($detailArray[$detailName]);
429 $detailArray[$detailName]= array(
"Type" => $fieldType,
"Default" => $defaultValue,
"Message" => $defaultMessage);
432 $records= array(array(
"detailName" => $detailName,
"fieldType" => $fieldType,
"defaultValue" => $defaultValue,
"trustedId" => $trustedId,
433 "defaultMessage" => $defaultMessage,
"fieldTypeText" => $fieldTypeList[$fieldType]));
435 $unpreppedDetailString= json_encode($detailArray);
436 $detailString= prepSave($unpreppedDetailString);
437 $updateSQL=
"update cutrustedmaster set trustedfields= '$detailString' where trustedid= '$trustedId'";
438 $queryResults= runExecStatement($updateSQL, $dbh);
439 $errors= array_merge($errors, $queryResults[
"error"]);
442 updateRemoteServers($trustedId,
null,
null,
null, $unpreppedDetailString);
444 return array(
"sql" => $sqls,
"error" => $errors,
"operation" => $mode,
"record" => $records);
448 function reorderTrustedDetail($dbh)
450 $parameters= array();
452 dms_import_v2($parameters,
"BOTTOM_LEVEL", array(
"trustedId" =>
"string",
"detailName" =>
"string",
"position" =>
"string"));
454 $errors= cleanValuesForDatabase($parameters[
"BOTTOM_LEVEL"],
455 array(
"trustedId" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 20),
456 "position" => array(
"type" =>
"int",
"required" =>
true)));
457 $trustedId= $parameters[
"BOTTOM_LEVEL"][
"trustedId"];
458 $position= $parameters[
"BOTTOM_LEVEL"][
"position"];
461 $detailName= trim($parameters[
"BOTTOM_LEVEL"][
"detailName"]);
463 if ($detailName ==
"")
464 $errors[]=
"DetailName is required";
466 $retrievalSQL=
"select trustedfields from cutrustedmaster where trustedid= '$trustedId'";
467 $queryResults= runSelectStatement($retrievalSQL, $dbh, array(
"trustedfields" =>
"details"));
468 $errors= array_merge($errors, $queryResults[
"error"]);
469 $sqls= array($retrievalSQL);
471 $detailArray= array();
473 if (count($errors) == 0)
475 if (count($queryResults[
"record"]) > 0)
477 $detailString= $queryResults[
"record"][0][
"details"];
478 if ($detailString !=
"")
479 $detailArray= json_decode($detailString,
true);
482 $newDetailArray= array();
484 foreach($detailArray as $key => $value)
486 if ($index == $position)
487 $newDetailArray[$detailName]= $detailArray[$detailName];
488 if ($key != $detailName)
489 $newDetailArray[$key]= $value;
493 if ($index >= count($detailArray))
494 $newDetailArray[$detailName]= $detailArray[$detailName];
497 foreach($newDetailArray as $key => $detailRecord)
499 $detail= array(
"detailName" => $key,
"fieldType" =>
"",
"fieldTypeText" =>
"",
"defaultValue" =>
"",
"trustedId" => $trustedId,
500 "defaultMessage" =>
"",
"displayOrder" => $displayOrder++);
501 if (is_array($detailRecord))
502 foreach($detailRecord as $lowerKey => $value)
504 if ($lowerKey ==
"Type")
506 $detail[
"fieldType"]= $value;
507 $detail[
"fieldTypeText"]= $fieldTypeList[$value];
509 else if ($lowerKey ==
"Default")
510 $detail[
"defaultValue"]= stripslashes($value);
511 else if ($lowerKey ==
"Message")
512 $detail[
"defaultMessage"]= stripslashes($value);
517 $unpreppedDetailString= json_encode($newDetailArray);
518 $detailString= prepSave($unpreppedDetailString);
519 $updateSQL=
"update cutrustedmaster set trustedfields= '$detailString' where trustedid= '$trustedId'";
520 $queryResults= runExecStatement($updateSQL, $dbh);
521 $errors= array_merge($errors, $queryResults[
"error"]);
524 updateRemoteServers($trustedId,
null,
null,
null, $unpreppedDetailString);
526 return array(
"sql" => $sqls,
"error" => $errors,
"record" => $records);
530 function changeServerProperty($dbh, $mode)
532 $parameters= array();
534 $valid= array(
"detailName" =>
"string");
535 if ($mode !=
"delete")
537 $valid[
"defaultMessage"]=
"string";
538 $valid[
"defaultValue"]=
"string";
540 dms_import_v2($parameters,
"BOTTOM_LEVEL", $valid);
544 $defaultMessage= trim($parameters[
"BOTTOM_LEVEL"][
"defaultMessage"]);
545 $defaultValue= trim($parameters[
"BOTTOM_LEVEL"][
"defaultValue"]);
546 $detailName= trim($parameters[
"BOTTOM_LEVEL"][
"detailName"]);
548 if ($detailName ==
"")
549 $errors[]=
"DetailName is required";
551 return changeServerPropertyCommon($dbh, $mode, $detailName, $defaultMessage, $defaultValue, $errors);
554 function changeServerPropertyCommon($dbh, $mode, $detailName, $defaultMessage, $defaultValue, $errors= array(), $sqls= array())
556 $trustedId=
"HOMECUSERVICE";
557 $trustedVendor=
"HOMECU";
559 $retrievalSQL=
"select trustedfields from cutrustedmaster where trustedid= '$trustedId' and trustedvendor= '$trustedVendor'";
560 $queryResults= runSelectStatement($retrievalSQL, $dbh, array(
"trustedfields" =>
"details"));
561 $errors= array_merge($errors, $queryResults[
"error"]);
562 $sqls= array($retrievalSQL);
564 $detailArray= array();
566 if (count($errors) == 0)
568 if (count($queryResults[
"record"]) > 0)
570 $detailString= $queryResults[
"record"][0][
"details"];
571 if ($detailString !=
"")
572 $detailArray= json_decode($detailString,
true);
575 if ($mode ==
"delete")
577 unset($detailArray[$detailName]);
578 unset($detailArray[$detailName .
"_MSG"]);
582 $detailArray[$detailName]= array(
"Type" =>
"string",
"Default" => $defaultValue);
584 if ($defaultMessage !=
"")
585 $detailArray[$detailName .
"_MSG"]= array(
"Type" =>
"string",
"Default" => $defaultMessage);
587 unset($detailArray[$detailName .
"_MSG"]);
590 $records= array(array(
"detailName" => $detailName,
"defaultMessage" => $defaultMessage,
"defaultValue" => $defaultValue,
"trustedId" => $trustedId));
592 $unpreppedDetailString= json_encode($detailArray);
593 $detailString= prepSave($unpreppedDetailString);
594 $updateSQL=
"update cutrustedmaster set trustedfields= '$detailString' where trustedid= '$trustedId'";
595 $queryResults= runExecStatement($updateSQL, $dbh);
596 $errors= array_merge($errors, $queryResults[
"error"]);
599 updateRemoteServers($trustedId,
null,
null,
null, $unpreppedDetailString);
601 return array(
"sql" => $sqls,
"error" => $errors,
"operation" => $mode,
"record" => $records);