# # Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 10:58:16 # # # Routines to be edited by the developer to provide content and validation for parameters # and provison of the control data for table(s) # use esmith::util; use esmith::util::network; use esmith::ConfigDB; use esmith::HostsDB; use esmith::AccountsDB; use esmith::NetworksDB; use esmith::DomainsDB; use constant FALSE => 0; use constant TRUE => 1; #The most common ones our $cdb = esmith::ConfigDB->open() || die("Couldn't open config db"); our $adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db"); our $ndb = esmith::NetworksDB->open() || die("Couldn't open Network db"); our $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db"); our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db"); # Validation routines - parameters for each panel sub validate_LIST { my $c = shift; my $prefix_data = shift; #Data hash as parameter # Validation for each field my $ret = ""; if (! TRUE) #validate $c->param('InternalIP') {$ret .= 'Validation for InternalIP failed';} if (! TRUE) #validate $c->param('ExternalIP') {$ret .= 'Validation for ExternalIP failed';} if (! TRUE) #validate $c->param('InternetIP') {$ret .= 'Validation for InternetIP failed';} if (! TRUE) #validate $c->param('Issuer') {$ret .= 'Validation for Issuer failed';} if (! TRUE) #validate $c->param('Expiry') {$ret .= 'Validation for Expiry failed';} if (! TRUE) #validate $c->param('NotBefore') {$ret .= 'Validation for NotBefore failed';} if ($ret eq "") {$ret = 'ok';} return $ret; } sub validate_PARAMS { my $c = shift; my $prefix_data = shift; #Data hash as parameter # Validation for each field my $ret = ""; if (! TRUE) #validate $c->param('status') {$ret .= 'Validation for status failed';} if (! TRUE) #validate $c->param('hookScript') {$ret .= 'Validation for hookScript failed';} if (! TRUE) #validate $c->param('hostOverride') {$ret .= 'Validation for hostOverride failed';} if (! TRUE) #validate $c->param('ACCEPT_TERMS') {$ret .= 'Validation for ACCEPT_TERMS failed';} if (! TRUE) #validate $c->param('API') {$ret .= 'Validation for API failed';} if (! TRUE) #validate $c->param('keysize') {$ret .= 'Validation for keysize failed';} if (! TRUE) #validate $c->param('configure') {$ret .= 'Validation for configure failed';} if (! TRUE) #validate $c->param('Email') {$ret .= 'Validation for Email failed';} if ($ret eq "") {$ret = 'ok';} return $ret; } sub validate_CHECKALLDOMAINS { my $c = shift; my $prefix_data = shift; #Data hash as parameter # Validation for each field my $ret = ""; if (! TRUE) #validate $c->param('AllDomainsCheck') {$ret .= 'Validation for AllDomainsCheck failed';} if ($ret eq "") {$ret = 'ok';} return $ret; } sub validate_CHECKALLENABLEDDOMAINS { my $c = shift; my $prefix_data = shift; #Data hash as parameter # Validation for each field my $ret = ""; if (! TRUE) #validate $c->param('EnabledDomainsCheck') {$ret .= 'Validation for EnabledDomainsCheck failed';} if ($ret eq "") {$ret = 'ok';} return $ret; } sub validate_CHECKONEDOMAIN { my $c = shift; my $prefix_data = shift; #Data hash as parameter # Validation for each field my $ret = ""; if (! TRUE) #validate $c->param('OneDomainToCheck') {$ret .= 'Validation for OneDomainToCheck failed';} if (! TRUE) #validate $c->param('OneDomainsCheck') {$ret .= 'Validation for OneDomainsCheck failed';} if ($ret eq "") {$ret = 'ok';} return $ret; } # Get singleton data for each panel sub get_data_for_panel_LIST { # Return a hash with the fields required which will be loaded into the shared data my $c = shift; my %ret = ( 'Data1'=>'Data for LIST', #Example # fields from Inputs in LIST $fields['LIST'] 'InternalIP'=>'InternalIP contents', 'ExternalIP'=>'ExternalIP contents', 'InternetIP'=>'InternetIP contents', 'Issuer'=>'Issuer contents', 'Expiry'=>'Expiry contents', 'NotBefore'=>'NotBefore contents', ); return %ret; } sub get_data_for_panel_PARAMS { # Return a hash with the fields required which will be loaded into the shared data my $c = shift; my %ret = ( 'Data1'=>'Data for PARAMS', #Example # fields from Inputs in PARAMS $fields['PARAMS'] 'status'=>'status contents', 'hookScript'=>'hookScript contents', 'hostOverride'=>'hostOverride contents', 'ACCEPT_TERMS'=>'ACCEPT_TERMS contents', 'API'=>'API contents', 'keysize'=>'keysize contents', 'configure'=>'configure contents', 'Email'=>'Email contents', ); return %ret; } sub get_data_for_panel_CHECKALLDOMAINS { # Return a hash with the fields required which will be loaded into the shared data my $c = shift; my %ret = ( 'Data1'=>'Data for CHECKALLDOMAINS', #Example # fields from Inputs in CHECKALLDOMAINS $fields['CHECKALLDOMAINS'] 'AllDomainsCheck'=>'AllDomainsCheck contents', ); return %ret; } sub get_data_for_panel_CHECKALLENABLEDDOMAINS { # Return a hash with the fields required which will be loaded into the shared data my $c = shift; my %ret = ( 'Data1'=>'Data for CHECKALLENABLEDDOMAINS', #Example # fields from Inputs in CHECKALLENABLEDDOMAINS $fields['CHECKALLENABLEDDOMAINS'] 'EnabledDomainsCheck'=>'EnabledDomainsCheck contents', ); return %ret; } sub get_data_for_panel_CHECKONEDOMAIN { # Return a hash with the fields required which will be loaded into the shared data my $c = shift; my %ret = ( 'Data1'=>'Data for CHECKONEDOMAIN', #Example # fields from Inputs in CHECKONEDOMAIN $fields['CHECKONEDOMAIN'] 'OneDomainToCheck'=>'OneDomainToCheck contents', 'OneDomainsCheck'=>'OneDomainsCheck contents', ); return %ret; } # Get control data for table(s) # Define a constant hash for field name mapping use constant DomainList_FIELD_MAPPING => ( 'Table1-Domain name / HOSTNAME' => 'Source-for-Table1-Domain name / HOSTNAME', 'Table1-Brief description' => 'Source-for-Table1-Brief description', 'Table1-Content' => 'Source-for-Table1-Content', 'Table1-LABEL_NAMESERVERS' => 'Source-for-Table1-LABEL_NAMESERVERS', 'Table1-LABEL_POINT' => 'Source-for-Table1-LABEL_POINT', 'Table1-LABEL_LECERT' => 'Source-for-Table1-LABEL_LECERT', 'Table1-IS_IN_CERT' => 'Source-for-Table1-IS_IN_CERT', 'Table1-CHECK' => 'Source-for-Table1-CHECK' #'target_field2' => 'source_field2', # Add more mappings as needed ); sub actual_DomainList { my @ret = (); # Actual code for extracting DomainList return @ret; } sub get_DomainList { # Return an array of hashes of the contents for each row and column for DomainList my $c = shift; my @source_records = $c->actual_DomainList(); my @transformed_records; my %Field_Mapping = DomainList_FIELD_MAPPING; # Iterate over each record in the source array for my $source_record (@$source_records) { my %transformed_record; # Iterate over each key-value pair in the $Field_Mapping constant while (my ($target, $source) = each %Field_Mapping) { # Check if the source field exists in the source record if (exists $source_record->{$source}) { # Assign the source field value to the target field in the transformed record $transformed_record{$target} = $source_record->{$source}; } } # Add transformed record to the array if it's not empty push @transformed_records, \%transformed_record if %transformed_record; } return \@transformed_records; } # Return hash with values from row in which link clicked on table sub get_selected_LIST { my $c = shift; my $selected = shift; #Parameter is name of selected row. my $is_new_record = shift; #Indicates new record required (defaults) my %ret = {}; return $ret; } sub get_selected_PARAMS { my $c = shift; my $selected = shift; #Parameter is name of selected row. my $is_new_record = shift; #Indicates new record required (defaults) my %ret = {}; return $ret; } sub get_selected_CHECKALLDOMAINS { my $c = shift; my $selected = shift; #Parameter is name of selected row. my $is_new_record = shift; #Indicates new record required (defaults) my %ret = {}; return $ret; } sub get_selected_CHECKALLENABLEDDOMAINS { my $c = shift; my $selected = shift; #Parameter is name of selected row. my $is_new_record = shift; #Indicates new record required (defaults) my %ret = {}; return $ret; } sub get_selected_CHECKONEDOMAIN { my $c = shift; my $selected = shift; #Parameter is name of selected row. my $is_new_record = shift; #Indicates new record required (defaults) my %ret = {}; return $ret; } #after sucessful modify or create or whatever and submit then perfom (if the params validate) sub perform_LIST { my $c = shift; my $prefix_data = shift; #Data hash as parameter my $ret = ""; my $db = $cdb; #maybe one of the others my $dbkey = 'ChangeThis'; if (! TRUE) #copy or perform with value: InternalIP e.g. $c->setprop($db,$dbkey,$c->param('InternalIP'))) {$ret .= 'Perform/save failed for InternalIP';} if (! TRUE) #copy or perform with value: ExternalIP e.g. $c->setprop($db,$dbkey,$c->param('ExternalIP'))) {$ret .= 'Perform/save failed for ExternalIP';} if (! TRUE) #copy or perform with value: InternetIP e.g. $c->setprop($db,$dbkey,$c->param('InternetIP'))) {$ret .= 'Perform/save failed for InternetIP';} if (! TRUE) #copy or perform with value: Issuer e.g. $c->setprop($db,$dbkey,$c->param('Issuer'))) {$ret .= 'Perform/save failed for Issuer';} if (! TRUE) #copy or perform with value: Expiry e.g. $c->setprop($db,$dbkey,$c->param('Expiry'))) {$ret .= 'Perform/save failed for Expiry';} if (! TRUE) #copy or perform with value: NotBefore e.g. $c->setprop($db,$dbkey,$c->param('NotBefore'))) {$ret .= 'Perform/save failed for NotBefore';} if ($ret eq "") {$ret = 'ok';} return $ret; } sub perform_PARAMS { my $c = shift; my $prefix_data = shift; #Data hash as parameter my $ret = ""; my $db = $cdb; #maybe one of the others my $dbkey = 'ChangeThis'; if (! TRUE) #copy or perform with value: status e.g. $c->setprop($db,$dbkey,$c->param('status'))) {$ret .= 'Perform/save failed for status';} if (! TRUE) #copy or perform with value: hookScript e.g. $c->setprop($db,$dbkey,$c->param('hookScript'))) {$ret .= 'Perform/save failed for hookScript';} if (! TRUE) #copy or perform with value: hostOverride e.g. $c->setprop($db,$dbkey,$c->param('hostOverride'))) {$ret .= 'Perform/save failed for hostOverride';} if (! TRUE) #copy or perform with value: ACCEPT_TERMS e.g. $c->setprop($db,$dbkey,$c->param('ACCEPT_TERMS'))) {$ret .= 'Perform/save failed for ACCEPT_TERMS';} if (! TRUE) #copy or perform with value: API e.g. $c->setprop($db,$dbkey,$c->param('API'))) {$ret .= 'Perform/save failed for API';} if (! TRUE) #copy or perform with value: keysize e.g. $c->setprop($db,$dbkey,$c->param('keysize'))) {$ret .= 'Perform/save failed for keysize';} if (! TRUE) #copy or perform with value: configure e.g. $c->setprop($db,$dbkey,$c->param('configure'))) {$ret .= 'Perform/save failed for configure';} if (! TRUE) #copy or perform with value: Email e.g. $c->setprop($db,$dbkey,$c->param('Email'))) {$ret .= 'Perform/save failed for Email';} if ($ret eq "") {$ret = 'ok';} return $ret; } sub perform_CHECKALLDOMAINS { my $c = shift; my $prefix_data = shift; #Data hash as parameter my $ret = ""; my $db = $cdb; #maybe one of the others my $dbkey = 'ChangeThis'; if (! TRUE) #copy or perform with value: AllDomainsCheck e.g. $c->setprop($db,$dbkey,$c->param('AllDomainsCheck'))) {$ret .= 'Perform/save failed for AllDomainsCheck';} if ($ret eq "") {$ret = 'ok';} return $ret; } sub perform_CHECKALLENABLEDDOMAINS { my $c = shift; my $prefix_data = shift; #Data hash as parameter my $ret = ""; my $db = $cdb; #maybe one of the others my $dbkey = 'ChangeThis'; if (! TRUE) #copy or perform with value: EnabledDomainsCheck e.g. $c->setprop($db,$dbkey,$c->param('EnabledDomainsCheck'))) {$ret .= 'Perform/save failed for EnabledDomainsCheck';} if ($ret eq "") {$ret = 'ok';} return $ret; } sub perform_CHECKONEDOMAIN { my $c = shift; my $prefix_data = shift; #Data hash as parameter my $ret = ""; my $db = $cdb; #maybe one of the others my $dbkey = 'ChangeThis'; if (! TRUE) #copy or perform with value: OneDomainToCheck e.g. $c->setprop($db,$dbkey,$c->param('OneDomainToCheck'))) {$ret .= 'Perform/save failed for OneDomainToCheck';} if (! TRUE) #copy or perform with value: OneDomainsCheck e.g. $c->setprop($db,$dbkey,$c->param('OneDomainsCheck'))) {$ret .= 'Perform/save failed for OneDomainsCheck';} if ($ret eq "") {$ret = 'ok';} return $ret; } sub create_link{ # WIP my ($c,$route, $panel, $index) = @_; my $link = "$route?trt=$panel&Selected=$index"; return $link; } 1;