id = $int_ID; $this->checklist_id = $str_Checklist_ID; $this->name = str_ireplace("STIG STIG", "STIG", str_ireplace("Secure Technical Implementation Guide", "STIG", $str_Name)); $this->description = $str_Description; if (is_string($dt_Date)) { $this->date = new DateTime($dt_Date); } else { $this->date = $dt_Date; } $this->file_name = $str_File_Name; $this->ver = $int_Ver; $this->release = $str_Release; $this->type = $str_Type; if (!$str_Icon) { $this->find_Icon(); } else { $this->icon = $str_Icon; } $this->sw = array(); } /** * Getter function for the ID * * @return integer */ public function get_ID() { return $this->id; } /** * Getter function for the checklist ID * * @return string */ public function get_Checklist_ID() { return $this->checklist_id; } /** * Getter function for the software ID * * @return integer */ public function get_SW() { return $this->sw; } /** * Function to add a software object to the applicable software array * * @param software $sw_in */ public function add_SW($sw_in) { if (is_a($sw_in, "software")) { $this->sw[$sw_in->get_ID()] = $sw_in; } elseif (is_array($sw_in)) { $this->sw = array_merge($this->sw, $sw_in); } } /** * Getter function for the checklist name * * @return string */ public function get_Name() { return $this->name; } /** * Gettr function for the checklist description * * @return string */ public function get_Description() { return $this->description; } /** * Getter function for the release date * * @return DateTime */ public function get_Date() { return $this->date; } /** * Getter function for the file name * * @return string */ public function get_File_Name() { return $this->file_name; } /** * Getter function for the checklist version * * @return integer */ public function get_Version() { return $this->ver; } /** * Getter function for the checklist release * * @return string */ public function get_Release() { return $this->release; } /** * Getter function for the checklist type * * @return string */ public function get_type() { return $this->type; } /** * Getter function for the checklist icon * * @return string */ public function get_Icon() { return $this->icon; } /** * Getter function for the checklist classification * * @return string */ public function get_Classification() { return $this->classification; } /** * Setter function for the checklist classification * * @param string $class_in */ public function set_Classification($class_in) { $this->classification = $class_in; } /** * Function to determine the Checklist icon based on the name */ public function find_Icon() { if (!empty($this->name)) { switch ($this->name) { case (preg_match("/AIX/i", $this->name) ? true : false): $this->icon = 'AIX.png'; break; case (preg_match("/Application Security|Application Layer Gateway/i", $this->name) ? true : false): $this->icon = 'Application Development.gif'; break; case (preg_match("/Application Server/i", $this->name) ? true : false): $this->icon = 'Application Server.jpg'; break; case (preg_match("/Active Directory/i", $this->name) ? true : false): $this->icon = 'Active Directory.png'; break; case (preg_match("/Acrobat Reader|Adobe Acrobat/i", $this->name) ? true : false): $this->icon = 'Adobe Reader.png'; break; case (preg_match("/Coldfusion/i", $this->name) ? true : false): $this->icon = 'Adobe Coldfusion.png'; break; case (preg_match("/Apache/i", $this->name) ? true : false): $this->icon = 'Apache Web.jpg'; break; case (preg_match("/Apple OS X|Apple iOS/i", $this->name) ? true : false): $this->icon = 'Apple.jpg'; break; case (preg_match("/Blackberry|BB10|BBDS10/i", $this->name) ? true : false): $this->icon = 'Blackberry.jpg'; break; case (preg_match("/DNS/i", $this->name) ? true : false): $this->icon = 'DNS.jpg'; break; case (preg_match("/ESXi/i", $this->name) ? true : false): $this->icon = 'VMware (ESXi).jpg'; break; case (preg_match("/VMWare/i", $this->name) ? true : false); $this->icon = 'VMware.jpg'; break; case (preg_match("/Exchange/i", $this->name) ? true : false): $this->icon = 'Microsoft Exchange.gif'; break; case (preg_match("/Google Chrome/i", $this->name) ? true : false): $this->icon = 'Google Chrome.jpg'; break; case (preg_match("/HP\-UX/i", $this->name) ? true : false): $this->icon = 'HPUX.jpg'; break; case (preg_match("/IIS/i", $this->name) ? true : false): $this->icon = 'Microsoft IIS.png'; break; case (preg_match("/Intrusion Detection/i", $this->name) ? true : false): $this->icon = 'Intrusion Detection System.jpg'; break; case (preg_match("/Keyboard Video/i", $this->name) ? true : false): $this->icon = 'KVM.jpg'; break; case (preg_match("/Android/i", $this->name) ? true : false): $this->icon = 'Android.gif'; break; case (preg_match("/MS SQL|Microsoft SQL Server/i", $this->name) ? true : false): $this->icon = 'MSSQL.png'; break; case (preg_match("/Oracle Database/i", $this->name) ? true : false): $this->icon = 'Oracle Database.png'; break; case (preg_match("/Database|Postgres/i", $this->name) ? true : false): $this->icon = 'Database.png'; break; case (preg_match("/Java Runtime|JRE/i", $this->name) ? true : false): $this->icon = 'Sun Java.jpg'; break; case (preg_match("/Windows Firewall/i", $this->name) ? true : false): $this->icon = 'WindowsFirewall.jpg'; break; case (preg_match("/Windows Server \d{4}|Windows \d{4}/i", $this->name) ? true : false): $this->icon = "WindowsServer.png"; break; case (preg_match("/Windows ([\d]+|Vista|XP)/i", $this->name) ? true : false): $this->icon = "Windows.png"; break; case (preg_match("/Windows Defender/i", $this->name) ? true : false): $this->icon = "Windows Defender.png"; break; case (preg_match("/Web Server|Oracle HTTP|Oracle WebLogic/i", $this->name) ? true : false): $this->icon = 'Web Server.png'; break; case (preg_match("/Mcafee/i", $this->name) ? true : false): $this->icon = 'Mcafee.jpg'; break; case (preg_match("/Microsoft (Access|Excel|PowerPoint|Groove|InfoPath|Lync|Office System|OneNote|Outlook|Project|Publisher|Visio|Word) ([\d]+)/i", $this->name) ? true : false): $this->icon = "Office.png"; break; case (preg_match("/SharePoint/i", $this->name) ? true : false): $this->icon = 'Microsoft Sharepoint.png'; break; case (preg_match("/Dot Net|DotNet/i", $this->name) ? true : false): $this->icon = 'Microsoft .NET.png'; break; case (preg_match("/Internet Explorer|Microsoft IE/i", $this->name) ? true : false): $this->icon = 'Internet Explorer.png'; break; case (preg_match("/Windows Phone/i", $this->name) ? true : false): $this->icon = 'Windows Phone.jpg'; break; case (preg_match("/Mozilla Firefox/i", $this->name) ? true : false): $this->icon = 'Firefox.png'; break; case (preg_match("/Network Printers/i", $this->name) ? true : false): $this->icon = 'Printer Scanner Fax.jpg'; break; case (preg_match("/Firewall[^C]+Cisco/i", $this->name) ? true : false): case (preg_match("/Firewall/i", $this->name) ? true : false): $this->icon = 'Firewall.jpg'; break; case (preg_match("/VPN/i", $this->name) ? true : false): $this->icon = 'VPN.jpg'; break; case (preg_match("/Switch([^C]+)Cisco/i", $this->name) ? true : false): $this->icon = 'Cisco Switch.jpg'; break; case (preg_match("/Switch/i", $this->name) ? true : false): $this->icon = 'Network Switch.png'; break; case (preg_match("/Router[^C]+Cisco/i", $this->name) ? true : false): $this->icon = 'Cisco Router.jpg'; break; case (preg_match("/Router/i", $this->name) ? true : false): $this->icon = 'Network Router.png'; break; case (preg_match("/WLAN|WMAN/i", $this->name) ? true : false): $this->icon = 'Network Device.jpg'; break; case (preg_match("/Network/i", $this->name) ? true : false): $this->icon = 'Network Device.jpg'; break; case (preg_match("/Skype/i", $this->name) ? true : false): $this->icon = 'Skype.png'; break; case (preg_match("/OneDrive/i", $this->name) ? true : false): $this->icon = 'OneDrive.png'; break; case (preg_match("/Red ?Hat/i", $this->name) ? true : false): $this->icon = 'RedHat Linux.jpg'; break; case (preg_match("/SUSE Linux|SLES/i", $this->name) ? true : false): $this->icon = 'SUSE Linux.png'; break; case (preg_match("/Solaris/i", $this->name) ? true : false): $this->icon = 'Solaris Unix.png'; break; case (preg_match("/Storage Area/i", $this->name) ? true : false): $this->icon = 'Storage Area Network.gif'; break; case (preg_match("/Ubuntu/i", $this->name) ? true : false): $this->icon = 'Ubuntu.png'; break; case (preg_match("/z\/OS/i", $this->name) ? true : false): $this->icon = 'ZOS.jpg'; break; // Added by Jeff Odegard, 23 Aug 17 case (preg_match("/Email Services Policy/i", $this->name) ? true : false): $this->icon = 'exchange.png'; break; case (preg_match("/L3/i", $this->name) ? true : false): $this->icon = 'L3.png'; break; case (preg_match("/Symantec/i", $this->name) ? true : false): $this->icon = 'Symantec.jpg'; break; case (preg_match("/Tanium/i", $this->name) ? true : false): $this->icon = 'Tanium.jpeg'; break; case (preg_match("/Voice Video Services/i", $this->name) ? true : false): $this->icon = 'voip.jpg'; break; case (preg_match("/Video Services|VTC/i", $this->name) ? true : false): $this->icon = 'video-conferencing.png'; break; case (preg_match("/Voice Video/i", $this->name) ? true : false): $this->icon = 'voice-video.png'; break; case (preg_match("/Sun Ray/i", $this->name) ? true : false): $this->icon = 'sunray.jpg'; break; case (preg_match("/VOIP/i", $this->name) ? true : false): $this->icon = 'voip.jpg'; break; case (preg_match("/SteelHead/i", $this->name) ? true : false): $this->icon = 'SteelHead.png'; break; case (preg_match("/SmartPhone/i", $this->name) ? true : false): $this->icon = 'mobile.jpg'; break; case (preg_match("/MAC OSX/i", $this->name) ? true : false): $this->icon = 'mac-os-x.png'; break; case (preg_match("/Good/i", $this->name) ? true : false): $this->icon = 'good.png'; break; case (preg_match("/Oracle Linux/i", $this->name) ? true : false): $this->icon = 'oracle-linux.png'; break; case (preg_match("/Juniper/i", $this->name) ? true : false): $this->icon = 'juniper-networks.png'; break; case (preg_match("/Jboss/i", $this->name) ? true : false): $this->icon = 'jboss.png'; break; case (preg_match("/Google/i", $this->name) ? true : false): $this->icon = 'Google-Search-Appliance.jpg'; break; case (preg_match("/Wireless/i", $this->name) ? true : false): $this->icon = 'wireless.png'; break; case (preg_match("/F5 BIG/i", $this->name) ? true : false): $this->icon = 'f5-big-ip.jpg'; break; case (preg_match("/Test and Development Zone/i", $this->name) ? true : false): $this->icon = 'Enclave.jpg'; break; case (preg_match("/Arista/i", $this->name) ? true : false): $this->icon = 'Arista.png'; break; case (preg_match("/CA API/i", $this->name) ? true : false): $this->icon = 'CA TEchnologies.jpg'; break; case (preg_match("/Cisco IOS/i", $this->name) ? true : false): $this->icon = 'Cisco IOS.jpg'; break; case (preg_match("/BIND 9/i", $this->name) ? true : false): $this->icon = 'BIND DNS.jpg'; break; case (preg_match("/MobileIron/i", $this->name) ? true : false): $this->icon = 'mobileiron.png'; break; case (preg_match("/Mobile Policy/i", $this->name) ? true : false): $this->icon = 'mobile.jpg'; break; case (preg_match("/Mobile Device/i", $this->name) ? true : false): $this->icon = 'mobile-device.jpg'; break; case (preg_match("/Remote Access/i", $this->name) ? true : false): $this->icon = 'remote-access.gif'; break; case (preg_match("/Remote Endpoint/i", $this->name) ? true : false): $this->icon = 'Remote-Endpoint.jpg'; break; case (preg_match("/Xenapp/i", $this->name) ? true : false): $this->icon = 'xenapp.jpg'; break; case (preg_match("/Removable Storage/i", $this->name) ? true : false): $this->icon = 'storage.jpg'; break; case (preg_match("/Traditional Security/i", $this->name) ? true : false): $this->icon = 'security.jpg'; break; case (preg_match("/IBM/i", $this->name) ? true : false): $this->icon = 'IBM.jpg'; break; case (preg_match("/Operating System/i", $this->name) ? true : false): $this->icon = 'operating_system.png'; break; case (preg_match("/HPE 3PAR/i", $this->name) ? true : false): $this->icon = 'HP-3par-logo.jpg'; break; case (preg_match("/MDM /i", $this->name) ? true : false): $this->icon = 'mobile-device-management.png'; break; case (preg_match("/Mainframe /i", $this->name) ? true : false): $this->icon = 'mainframe.png'; break; case (preg_match("/HBSS/i", $this->name) ? true : false): $this->icon = 'HBSS.jpg'; break; case (preg_match("/Akamai/i", $this->name) ? true : false): $this->icon = 'Akamai.png'; break; case (preg_match("/ArcGIS/i", $this->name) ? true : false): $this->icon = 'ArcGIS.png'; break; case (preg_match("/Bromium/i", $this->name) ? true : false): $this->icon = 'Bromium.png'; break; case (preg_match("/Forescout/i", $this->name) ? true : false): $this->icon = 'Forescout.jpg'; break; case (preg_match("/DB Networks|DBN\-6300/i", $this->name) ? true : false): $this->icon = 'DB Networks.png'; break; case (preg_match("/Windows PAW/i", $this->name) ? true : false): $this->icon = 'Windows PAW.jpg'; break; case (preg_match("/SecNet/i", $this->name) ? true : false): $this->icon = 'Harris SecNet.jpg'; break; case (preg_match("/Desktop App/i", $this->name) ? true : false): $this->icon = 'Desktop Application.jpg'; break; default: $this->icon = 'Orphan.png'; } } } /** * Function to print out an option element * * @return string */ public function print_Option() { $type = strtolower($this->type) == 'iavm' ? strtoupper($this->type) : ucfirst($this->type); return ""; } }