From 4bb8559a3660af98c6eb8c322201ab40f7d1863e Mon Sep 17 00:00:00 2001 From: minotaur01 Date: Thu, 25 Aug 2016 13:10:39 -0400 Subject: [PATCH] Added functionality to show when a devices was last provisioned (#1831) * Added functionality to show when a devices was last provisioned Added functionality to show when a devices was last provisioned Need addition to database: v_devices table: device_provisioned_on -> datetime device_provisioned_by -> char(10) * Revert "Added functionality to show when a devices was last provisioned" This reverts commit c3e40d68fa0b3c965a6db88528dcf89b1aab90f2. * Revert "Revert "Added functionality to show when a devices was last provisioned"" This reverts commit 8c27a46565c4c4ecd6d9989c56fbf4cc3e1ab70e. * Changed field names as requested Changed field names as requested for last provisioned data * Added database fields for device provisoned functionality Added provisioned_date, provisioned_method, provisioned_ip * Added ability to search device provisioned info * Added ip tracking to device provisoned functionality Added ip tracking to device provisoned functionality and moved the code to before rendering to register the contact even on unseccessful render * Added IP address to status column --- app/devices/app_config.php | 15 +++++++++++++++ app/devices/app_languages.php | 10 ++++++++++ app/devices/devices.php | 6 ++++++ app/provision/index.php | 16 ++++++++++++++++ 4 files changed, 47 insertions(+) diff --git a/app/devices/app_config.php b/app/devices/app_config.php index a444442fb8..7eb737b518 100644 --- a/app/devices/app_config.php +++ b/app/devices/app_config.php @@ -363,6 +363,21 @@ $apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "phone_description"; $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; + $z++; + $apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "device_provisioned_date"; + $apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "device_provisioned_date"; + $apps[$x]['db'][$y]['fields'][$z]['type'] = "datetime"; + $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; + $z++; + $apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "device_provisioned_method"; + $apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "device_provisioned_method"; + $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; + $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; + $z++; + $apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "device_provisioned_ip"; + $apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "device_provisioned_ip"; + $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; + $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; $y = 1; //table array index $z = 0; //field array index diff --git a/app/devices/app_languages.php b/app/devices/app_languages.php index f7ed48501e..7fb5e51cf5 100644 --- a/app/devices/app_languages.php +++ b/app/devices/app_languages.php @@ -1414,6 +1414,16 @@ $text['label-device_description']['de-at'] = "Beschreibung"; $text['label-device_description']['ar-eg'] = ""; $text['label-device_description']['he'] = "תאור"; +$text['label-device_status']['en-us'] = "Status"; +$text['label-device_status']['es-cl'] = "Estado"; +$text['label-device_status']['pt-pt'] = "Estado"; +$text['label-device_status']['fr-fr'] = "Statut"; +$text['label-device_status']['pt-br'] = "Estado"; +$text['label-device_status']['pl'] = "Status "; +$text['label-device_status']['sv-se'] = "Status"; +$text['label-device_status']['uk'] = "Стан"; +$text['label-device_status']['de-at'] = "Status"; + $text['label-device']['en-us'] = "Device"; $text['label-device']['es-cl'] = "Dispositivo"; $text['label-device']['pt-pt'] = "Dispositivo"; diff --git a/app/devices/devices.php b/app/devices/devices.php index 5f9a775fc1..59d8355a2e 100644 --- a/app/devices/devices.php +++ b/app/devices/devices.php @@ -88,6 +88,8 @@ $sql .= " or d.device_enabled like '%".$search."%' "; $sql .= " or d.device_template like '%".$search."%' "; $sql .= " or d.device_description like '%".$search."%' "; + $sql .= " or d.device_provisioned_method like '%".$search."%' "; + $sql .= " or d.device_provisioned_ip like '%".$search."%' "; $sql .= ") "; } $prep_statement = $db->prepare($sql); @@ -139,6 +141,8 @@ $sql .= " or d.device_enabled like '%".$search."%' "; $sql .= " or d.device_template like '%".$search."%' "; $sql .= " or d.device_description like '%".$search."%' "; + $sql .= " or d.device_provisioned_method like '%".$search."%' "; + $sql .= " or d.device_provisioned_ip like '%".$search."%' "; $sql .= ") "; } if (strlen($order_by) == 0) { @@ -214,6 +218,7 @@ echo th_order_by('device_vendor', $text['label-device_vendor'], $order_by, $order); echo th_order_by('device_template', $text['label-device_template'], $order_by, $order); echo th_order_by('device_enabled', $text['label-device_enabled'], $order_by, $order); + echo th_order_by('device_status', $text['label-device_status'], $order_by, $order); echo th_order_by('device_description', $text['label-device_description'], $order_by, $order); echo "\n"; if (permission_exists('device_add')) { @@ -248,6 +253,7 @@ echo " ".$row['device_vendor']." \n"; echo " ".$row['device_template']." \n"; echo " ".$text['label-'.$row['device_enabled']]." \n"; + echo " ".$row['device_provisioned_date']." - ".$row['device_provisioned_method']." - ".$row['device_provisioned_ip']." \n"; echo " ".$row['device_description']." \n"; echo " "; if (permission_exists('device_edit')) { diff --git a/app/provision/index.php b/app/provision/index.php index 993e1865d5..7de7dad47d 100644 --- a/app/provision/index.php +++ b/app/provision/index.php @@ -365,6 +365,22 @@ The file name is fixed to `Account1_Extern.xml`. } } +//register that we have seen the device + $sql = "UPDATE v_devices "; + $sql .= "SET device_provisioned_date=:date, device_provisioned_method=:method, device_provisioned_ip=:ip "; + $sql .= "WHERE domain_uuid=:domain_uuid AND device_mac_address=:mac "; + $prep_statement = $db->prepare(check_sql($sql)); + if ($prep_statement) { + //use the prepared statement + $prep_statement->bindValue(':domain_uuid', $domain_uuid); + $prep_statement->bindValue(':mac', strtolower($mac)); + $prep_statement->bindValue(':date', date("Y-m-d H:i:s")); + $prep_statement->bindValue(':method', (isset($_SERVER["HTTPS"]) ? 'https' : 'http')); + $prep_statement->bindValue(':ip', $_SERVER['REMOTE_ADDR']); + $prep_statement->execute(); + unset($prep_statement); + } + //output template to string for header processing $prov = new provision; $prov->domain_uuid = $domain_uuid;