diff --git a/Targets/Letsencrypt/Letsencrypt-Custom.pm b/Targets/Letsencrypt/Letsencrypt-Custom.pm
index e6f32d7..ca68016 100644
--- a/Targets/Letsencrypt/Letsencrypt-Custom.pm
+++ b/Targets/Letsencrypt/Letsencrypt-Custom.pm
@@ -1,5 +1,5 @@
#
-# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-11-16 10:30:16
+# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-11-16 10:30:16
#
#
# Routines to be edited by the developer to provide content and validation for parameters
@@ -12,461 +12,555 @@ 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 $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 = "";
- 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;
- }
+ if (!TRUE) #validate $c->param('InternalIP')
+ {
+ $ret .= 'Validation for InternalIP failed';
+ }
- 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;
- }
+ if (!TRUE) #validate $c->param('ExternalIP')
+ {
+ $ret .= 'Validation for ExternalIP failed';
+ }
- 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;
- }
+ if (!TRUE) #validate $c->param('InternetIP')
+ {
+ $ret .= 'Validation for InternetIP failed';
+ }
- 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;
- }
+ if (!TRUE) #validate $c->param('Issuer')
+ {
+ $ret .= 'Validation for Issuer failed';
+ }
- 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;
- }
+ 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;
+} ## end sub validate_LIST
+
+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;
+} ## end sub validate_PARAMS
+
+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;
+} ## end sub validate_CHECKALLDOMAINS
+
+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;
+} ## end sub validate_CHECKALLENABLEDDOMAINS
+
+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;
+} ## end sub validate_CHECKONEDOMAIN
# Get singleton data for each panel
+sub get_data_for_panel_LIST {
- 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 ($reply, $err, $server_cert) = Net::SSLeay::sslcat('localhost', 443, '/');
-# my $issuer = Net::SSLeay::X509_NAME_oneline(Net::SSLeay::X509_get_issuer_name($server_cert));
-# my $before = Net::SSLeay::P_ASN1_TIME_get_isotime(Net::SSLeay::X509_get_notBefore($server_cert));
-# my $expiry = Net::SSLeay::P_ASN1_TIME_get_isotime(Net::SSLeay::X509_get_notAfter($server_cert));
+ # 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'=>$cdb->get_prop('InternalInterface','IPAddress'),
- 'ExternalIP'=>$cdb->get_prop('ExternalInterface','IPAddress'),
- 'InternetIP'=>$c->get_my_ip(),
- 'Issuer'=>'$issuer',
- 'Expiry'=>'$expiry',
- 'NotBefore'=>'$before',
- );
- return %ret;
- }
+ # my ($reply, $err, $server_cert) = Net::SSLeay::sslcat('localhost', 443, '/');
+ # my $issuer = Net::SSLeay::X509_NAME_oneline(Net::SSLeay::X509_get_issuer_name($server_cert));
+ # my $before = Net::SSLeay::P_ASN1_TIME_get_isotime(Net::SSLeay::X509_get_notBefore($server_cert));
+ # my $expiry = Net::SSLeay::P_ASN1_TIME_get_isotime(Net::SSLeay::X509_get_notAfter($server_cert));
+ my %ret = (
+ 'Data1' => 'Data for LIST', #Example
+ # fields from Inputs in LIST $fields['LIST']
+ 'InternalIP' => $cdb->get_prop('InternalInterface', 'IPAddress'),
+ 'ExternalIP' => $cdb->get_prop('ExternalInterface', 'IPAddress'),
+ 'InternetIP' => $c->get_my_ip(),
+ 'Issuer' => '$issuer',
+ 'Expiry' => '$expiry',
+ 'NotBefore' => '$before',
+ );
+ return %ret;
+} ## end sub get_data_for_panel_LIST
- 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'=>$cdb->get_prop('letsencrypt', 'status', 'disabled'),
- 'hookScript'=>$cdb->get_prop('letsencrypt', 'hookScript', 'disabled'),
- 'hostOverride'=>$cdb->get_prop('letsencrypt', 'hostOverride', 'disabled'),
- 'ACCEPT_TERMS'=>$cdb->get_prop('letsencrypt', 'ACCEPT_TERMS', ''),
- 'API'=>$cdb->get_prop('letsencrypt', 'API', '2'),
- 'keysize'=>$cdb->get_prop('letsencrypt', 'keysize', '4096'),
- 'configure'=>$cdb->get_prop('letsencrypt', 'configure', 'none' ),
- 'email'=>$cdb->get_prop('letsencrypt', 'email')
- );
- return %ret;
- }
+sub get_data_for_panel_PARAMS {
- 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'=>$c->update_all_domains(),
-
- );
- return %ret;
- }
+ # 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' => $cdb->get_prop('letsencrypt', 'status', 'disabled'),
+ 'hookScript' => $cdb->get_prop('letsencrypt', 'hookScript', 'disabled'),
+ 'hostOverride' => $cdb->get_prop('letsencrypt', 'hostOverride', 'disabled'),
+ 'ACCEPT_TERMS' => $cdb->get_prop('letsencrypt', 'ACCEPT_TERMS', ''),
+ 'API' => $cdb->get_prop('letsencrypt', 'API', '2'),
+ 'keysize' => $cdb->get_prop('letsencrypt', 'keysize', '4096'),
+ 'configure' => $cdb->get_prop('letsencrypt', 'configure', 'none'),
+ 'email' => $cdb->get_prop('letsencrypt', 'email')
+ );
+ return %ret;
+} ## end sub get_data_for_panel_PARAMS
- 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'=>$c->update_enabled_domains(),
-
- );
- return %ret;
- }
+sub get_data_for_panel_CHECKALLDOMAINS {
- 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'=>$c->param("CHECKONEDOMAIN"),
- 'OneDomainsCheck'=>$c->update_one_domain($c->param("CHECKONEDOMAIN"))
- );
- return %ret;
- }
+ # 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' => $c->update_all_domains(),
+ );
+ return %ret;
+} ## end sub get_data_for_panel_CHECKALLDOMAINS
+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' => $c->update_enabled_domains(),
+ );
+ return %ret;
+} ## end sub get_data_for_panel_CHECKALLENABLEDDOMAINS
+
+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' => $c->param("CHECKONEDOMAIN"),
+ 'OneDomainsCheck' => $c->update_one_domain($c->param("CHECKONEDOMAIN"))
+ );
+ return %ret;
+} ## end sub get_data_for_panel_CHECKONEDOMAIN
# Get control data for table(s)
+# Define a constant hash for field name mapping
+use constant DomainList_FIELD_MAPPING => (
+ 'Table1-Domain name / HOSTNAME' => 'Domain',
+ 'Table1-Brief description' => 'Description',
+ 'Table1-Content' => 'Content',
+ 'Table1-LABEL_NAMESERVERS' => 'Nameservers',
+ 'Table1-LABEL_POINT' => 'Source-for-Table1-LABEL_POINT',
+ 'Table1-LABEL_LECERT' => 'letsencryptSSLcert',
+ 'Table1-IS_IN_CERT' => 'isincert',
+ 'Table1-CHECK' => 'Check'
- # Define a constant hash for field name mapping
- use constant DomainList_FIELD_MAPPING => (
- 'Table1-Domain name / HOSTNAME' => 'Domain',
- 'Table1-Brief description' => 'Description',
- 'Table1-Content' => 'Content',
- 'Table1-LABEL_NAMESERVERS' => 'Nameservers',
- 'Table1-LABEL_POINT' => 'Source-for-Table1-LABEL_POINT',
- 'Table1-LABEL_LECERT' => 'letsencryptSSLcert',
- 'Table1-IS_IN_CERT' => 'isincert',
- 'Table1-CHECK' => 'Check'
- #'target_field2' => 'source_field2',
- # Add more mappings as needed
- );
-
-
+ #'target_field2' => 'source_field2',
+ # Add more mappings as needed
+);
use constant TEST_DOMAIN_LIST => (
- { "domain" => "Domain1","fred" => "fred1" , "description"=>"Description1"},
- { "domain" => "Domain2", "fred" => "fred2", "description"=>"Description2" },
- { "domain" => "Domain3", "fred" => "fred3", "description"=>"Description3" },
+ { "domain" => "Domain1", "fred" => "fred1", "description" => "Description1" },
+ { "domain" => "Domain2", "fred" => "fred2", "description" => "Description2" },
+ { "domain" => "Domain3", "fred" => "fred3", "description" => "Description3" },
+
# Add more test entries as needed
);
sub actual_DomainList {
- my $c = shift;
- # Actual code for extracting DomainList
- my @list = ();
-# my @rv = Net::SSLeay::X509_get_subjectAltNames($server_cert);
-# foreach my $element (@rv) {
-# next if $element =~ /^\d+$/; ;
-# #print $element . "\n";
-# push @list, $element;
-# }
- my @data = ();
- my $check = $c->l('Check Domain');
- for ($ddb->domains)
- {
- my $ns = $_->prop('Nameservers') || 'internet';
- my $le = $_->prop('letsencryptSSLcert') || 'disabled';#letsencrypt configure all
- my $dname= $_->key;
- my $isincert = "N";
- my $link = $c->create_link("letsencryptd","CHECKONEDOMAIN","");
- my $checklink = "".$check."";
- #my $checklink = "check";
- $isincert = "Y" if ( $dname ~~ @list);
- # domain
- push @data,
- { Domain => $_->key,
- $_->props,
- letsencryptSSLcert => $le,
- isincert => $isincert,
- Check => $checklink,
- Nameservers => $ns,
- };
- #and hosts
- for my $h ($hdb->get_hosts_by_domain($dname))
- {
- next if $ddb->get($h->key);
- next unless ($h->prop('HostType') eq "Self" || $h->prop('HostType') eq "Local");
- $le = $h->prop('letsencryptSSLcert') || 'disabled';#letsencrypt configure all
- $isincert = "N";
- $isincert = "Y" if ( $h->key ~~ @list);
- push @data,
- { Domain => "--> ". $h->key,
- $h->props,
- Description=>$h->prop('ExternalIP')|| $h->prop('InternalIP')||"",
- Content => $h->prop('HostType'),
- isincert => $isincert,
- Check => "", #$checklink
- Nameservers => $c->l($ns),
- }
- }
- }
- return @data;
-}
+ my $c = shift;
+
+ # Actual code for extracting DomainList
+ my @list = ();
+
+ # my @rv = Net::SSLeay::X509_get_subjectAltNames($server_cert);
+ # foreach my $element (@rv) {
+ # next if $element =~ /^\d+$/; ;
+ # #print $element . "\n";
+ # push @list, $element;
+ # }
+ my @data = ();
+ my $check = $c->l('Check Domain');
+
+ for ($ddb->domains) {
+ my $ns = $_->prop('Nameservers') || 'internet';
+ my $le = $_->prop('letsencryptSSLcert') || 'disabled'; #letsencrypt configure all
+ my $dname = $_->key;
+ my $isincert = "N";
+ my $link = $c->create_link("letsencryptd", "CHECKONEDOMAIN", "");
+ my $checklink = "" . $check . "";
+
+ #my $checklink = "check";
+ $isincert = "Y" if ($dname ~~ @list);
+
+ # domain
+ push @data,
+ {
+ Domain => $_->key,
+ $_->props,
+ letsencryptSSLcert => $le,
+ isincert => $isincert,
+ Check => $checklink,
+ Nameservers => $ns,
+ };
+
+ #and hosts
+ for my $h ($hdb->get_hosts_by_domain($dname)) {
+ next if $ddb->get($h->key);
+ next unless ($h->prop('HostType') eq "Self" || $h->prop('HostType') eq "Local");
+ $le = $h->prop('letsencryptSSLcert') || 'disabled'; #letsencrypt configure all
+ $isincert = "N";
+ $isincert = "Y" if ($h->key ~~ @list);
+ push @data, {
+ Domain => "--> " . $h->key,
+ $h->props,
+ Description => $h->prop('ExternalIP') || $h->prop('InternalIP') || "",
+ Content => $h->prop('HostType'),
+ isincert => $isincert,
+ Check => "", #$checklink
+ Nameservers => $c->l($ns),
+ };
+ } ## end for my $h ($hdb->get_hosts_by_domain...)
+ } ## end for ($ddb->domains)
+ return @data;
+} ## end sub actual_DomainList
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(); #TEST_DOMAIN_LIST #Replace by code or call to produce contents of table;
+ my $c = shift;
+ my @source_records
+ = $c->actual_DomainList(); #TEST_DOMAIN_LIST #Replace by code or call to produce contents of table;
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};
}
- }
+ } ## end while (my ($target, $source...))
+
# Add transformed record to the array if it's not empty
push @transformed_records, \%transformed_record if %transformed_record;
- }
+ } ## end for my $source_record (...)
return \@transformed_records;
-}
-
-
+} ## end sub get_DomainList
# 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;
+} ## end sub get_selected_LIST
- 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;
+} ## end sub get_selected_PARAMS
- 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;
+} ## end sub get_selected_CHECKALLDOMAINS
- 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;
- }
+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;
+} ## end sub get_selected_CHECKALLENABLEDDOMAINS
+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;
+} ## end sub get_selected_CHECKONEDOMAIN
#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';
- 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. $db->set_prop($dbkey,'InternalIP',$c->param('InternalIP'),type=>'service'))
- {$ret .= 'Perform/save failed for InternalIP';}
- if (! TRUE) #copy or perform with value: ExternalIP e.g. $db->set_prop($dbkey,'ExternalIP',$c->param('ExternalIP'),type=>'service'))
- {$ret .= 'Perform/save failed for ExternalIP';}
- if (! TRUE) #copy or perform with value: InternetIP e.g. $db->set_prop($dbkey,'InternetIP',$c->param('InternetIP'),type=>'service'))
- {$ret .= 'Perform/save failed for InternetIP';}
- if (! TRUE) #copy or perform with value: Issuer e.g. $db->set_prop($dbkey,'Issuer',$c->param('Issuer'),type=>'service'))
- {$ret .= 'Perform/save failed for Issuer';}
- if (! TRUE) #copy or perform with value: Expiry e.g. $db->set_prop($dbkey,'Expiry',$c->param('Expiry'),type=>'service'))
- {$ret .= 'Perform/save failed for Expiry';}
- if (! TRUE) #copy or perform with value: NotBefore e.g. $db->set_prop($dbkey,'NotBefore',$c->param('NotBefore'),type=>'service'))
- {$ret .= 'Perform/save failed for NotBefore';}
- if ($ret eq "") {$ret = 'ok';}
- return $ret;
- }
+ if (!TRUE
+ ) #copy or perform with value: InternalIP e.g. $db->set_prop($dbkey,'InternalIP',$c->param('InternalIP'),type=>'service'))
+ {
+ $ret .= 'Perform/save failed for InternalIP';
+ } ## end if (!TRUE)
- 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 = 'letsencrypt';
- # To make it write to DB as comment, delete this (regex) string in each if statement "TRUE\) \#copy or perform with value: .* e.g."
-
- if (! $db->set_prop($dbkey,'status',$c->param('status'),type=>'service'))
- {$ret .= 'Perform/save failed for status';}
- if (! $db->set_prop($dbkey,'hookScript',$c->param('hookScript'),type=>'service'))
- {$ret .= 'Perform/save failed for hookScript';}
- if (! $db->set_prop($dbkey,'hostOverride',$c->param('hostOverride'),type=>'service'))
- {$ret .= 'Perform/save failed for hostOverride';}
- if (! $db->set_prop($dbkey,'ACCEPT_TERMS',$c->param('ACCEPT_TERMS'),type=>'service'))
- {$ret .= 'Perform/save failed for ACCEPT_TERMS';}
- if (! $db->set_prop($dbkey,'API',$c->param('API'),type=>'service'))
- {$ret .= 'Perform/save failed for API';}
- if (! $db->set_prop($dbkey,'keysize',$c->param('keysize'),type=>'service'))
- {$ret .= 'Perform/save failed for keysize';}
- if (! $db->set_prop($dbkey,'configure',$c->param('configure'),type=>'service'))
- {$ret .= 'Perform/save failed for configure';}
- if (! $db->set_prop($dbkey,'email',$c->param('email'),type=>'service'))
- {$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. $db->set_prop($dbkey,'AllDomainsCheck',$c->param('AllDomainsCheck'),type=>'service'))
- {$ret .= 'Perform/save failed for AllDomainsCheck';}
- if ($ret eq "") {$ret = 'ok';}
- return $ret;
- }
+ if (!TRUE
+ ) #copy or perform with value: ExternalIP e.g. $db->set_prop($dbkey,'ExternalIP',$c->param('ExternalIP'),type=>'service'))
+ {
+ $ret .= 'Perform/save failed for ExternalIP';
+ } ## end if (!TRUE)
- 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. $db->set_prop($dbkey,'EnabledDomainsCheck',$c->param('EnabledDomainsCheck'),type=>'service'))
- {$ret .= 'Perform/save failed for EnabledDomainsCheck';}
- if ($ret eq "") {$ret = 'ok';}
- return $ret;
- }
+ if (!TRUE
+ ) #copy or perform with value: InternetIP e.g. $db->set_prop($dbkey,'InternetIP',$c->param('InternetIP'),type=>'service'))
+ {
+ $ret .= 'Perform/save failed for InternetIP';
+ } ## end if (!TRUE)
- 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. $db->set_prop($dbkey,'OneDomainToCheck',$c->param('OneDomainToCheck'),type=>'service'))
- {$ret .= 'Perform/save failed for OneDomainToCheck';}
- if (! TRUE) #copy or perform with value: OneDomainsCheck e.g. $db->set_prop($dbkey,'OneDomainsCheck',$c->param('OneDomainsCheck'),type=>'service'))
- {$ret .= 'Perform/save failed for OneDomainsCheck';}
- if ($ret eq "") {$ret = 'ok';}
- return $ret;
- }
+ if (!TRUE
+ ) #copy or perform with value: Issuer e.g. $db->set_prop($dbkey,'Issuer',$c->param('Issuer'),type=>'service'))
+ {
+ $ret .= 'Perform/save failed for Issuer';
+ } ## end if (!TRUE)
+ if (!TRUE
+ ) #copy or perform with value: Expiry e.g. $db->set_prop($dbkey,'Expiry',$c->param('Expiry'),type=>'service'))
+ {
+ $ret .= 'Perform/save failed for Expiry';
+ } ## end if (!TRUE)
-sub create_link{
- # WIP
- my ($c,$route, $panel, $index) = @_;
- my $link = "$route?trt=$panel&Selected=$index";
- return $link;
-}
+ if (!TRUE
+ ) #copy or perform with value: NotBefore e.g. $db->set_prop($dbkey,'NotBefore',$c->param('NotBefore'),type=>'service'))
+ {
+ $ret .= 'Perform/save failed for NotBefore';
+ } ## end if (!TRUE)
+ if ($ret eq "") { $ret = 'ok'; }
+ return $ret;
+} ## end sub perform_LIST
-sub get_my_ip
-{
+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 = 'letsencrypt';
+
+# To make it write to DB as comment, delete this (regex) string in each if statement "TRUE\) \#copy or perform with value: .* e.g."
+ if (!$db->set_prop($dbkey, 'status', $c->param('status'), type => 'service')) {
+ $ret .= 'Perform/save failed for status';
+ }
+
+ if (!$db->set_prop($dbkey, 'hookScript', $c->param('hookScript'), type => 'service')) {
+ $ret .= 'Perform/save failed for hookScript';
+ }
+
+ if (!$db->set_prop($dbkey, 'hostOverride', $c->param('hostOverride'), type => 'service')) {
+ $ret .= 'Perform/save failed for hostOverride';
+ }
+
+ if (!$db->set_prop($dbkey, 'ACCEPT_TERMS', $c->param('ACCEPT_TERMS'), type => 'service')) {
+ $ret .= 'Perform/save failed for ACCEPT_TERMS';
+ }
+ if (!$db->set_prop($dbkey, 'API', $c->param('API'), type => 'service')) { $ret .= 'Perform/save failed for API'; }
+
+ if (!$db->set_prop($dbkey, 'keysize', $c->param('keysize'), type => 'service')) {
+ $ret .= 'Perform/save failed for keysize';
+ }
+
+ if (!$db->set_prop($dbkey, 'configure', $c->param('configure'), type => 'service')) {
+ $ret .= 'Perform/save failed for configure';
+ }
+
+ if (!$db->set_prop($dbkey, 'email', $c->param('email'), type => 'service')) {
+ $ret .= 'Perform/save failed for email';
+ }
+ if ($ret eq "") { $ret = 'ok'; }
+ return $ret;
+} ## end sub perform_PARAMS
+
+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. $db->set_prop($dbkey,'AllDomainsCheck',$c->param('AllDomainsCheck'),type=>'service'))
+ {
+ $ret .= 'Perform/save failed for AllDomainsCheck';
+ } ## end if (!TRUE)
+ if ($ret eq "") { $ret = 'ok'; }
+ return $ret;
+} ## end sub perform_CHECKALLDOMAINS
+
+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. $db->set_prop($dbkey,'EnabledDomainsCheck',$c->param('EnabledDomainsCheck'),type=>'service'))
+ {
+ $ret .= 'Perform/save failed for EnabledDomainsCheck';
+ } ## end if (!TRUE)
+ if ($ret eq "") { $ret = 'ok'; }
+ return $ret;
+} ## end sub perform_CHECKALLENABLEDDOMAINS
+
+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. $db->set_prop($dbkey,'OneDomainToCheck',$c->param('OneDomainToCheck'),type=>'service'))
+ {
+ $ret .= 'Perform/save failed for OneDomainToCheck';
+ } ## end if (!TRUE)
+
+ if (!TRUE
+ ) #copy or perform with value: OneDomainsCheck e.g. $db->set_prop($dbkey,'OneDomainsCheck',$c->param('OneDomainsCheck'),type=>'service'))
+ {
+ $ret .= 'Perform/save failed for OneDomainsCheck';
+ } ## end if (!TRUE)
+ if ($ret eq "") { $ret = 'ok'; }
+ return $ret;
+} ## end sub perform_CHECKONEDOMAIN
+
+sub create_link {
+
+ # WIP
+ my ($c, $route, $panel, $index) = @_;
+ my $link = "$route?trt=$panel&Selected=$index";
+ return $link;
+} ## end sub create_link
+
+sub get_my_ip {
my ($self, $item, $prop, $default) = @_;
my $output = `/usr/sbin/e-smith/getmyip`;
- return $output || "IP";
-}
+ return $output || "IP";
+} ## end sub get_my_ip
-sub update_one_domain
-{
- my ($self,$domain) = @_;
+sub update_one_domain {
+ my ($self, $domain) = @_;
return "$domain not domain" unless ($ddb->get($domain) || $hdb->get($domain));
- ($domain) = ($domain =~ /([\w\p{L}.]+)/);
+ ($domain) = ($domain =~ /([\w\p{L}.]+)/);
my $output = `/etc/e-smith/events/actions/letsencrypt-setdomains " " $domain `;
- return $output || "-empty-";
-}
+ return $output || "-empty-";
+} ## end sub update_one_domain
-sub update_all_domains
-{
- my $self = shift;
+sub update_all_domains {
+ my $self = shift;
my $output = `/etc/e-smith/events/actions/letsencrypt-setdomains "" "" all `;
- return $output || "-empty-";
-}
+ return $output || "-empty-";
+} ## end sub update_all_domains
-sub update_enabled_domains
-{
- my $self = shift;
+sub update_enabled_domains {
+ my $self = shift;
my $output = `/etc/e-smith/events/actions/letsencrypt-setdomains "" "" enabled `;
- return $output || "-empty-";
-}
-
-
+ return $output || "-empty-";
+} ## end sub update_enabled_domains
1;
\ No newline at end of file
diff --git a/Targets/Letsencrypt/Letsencrypt.pm b/Targets/Letsencrypt/Letsencrypt.pm
index 821002a..6e700e7 100644
--- a/Targets/Letsencrypt/Letsencrypt.pm
+++ b/Targets/Letsencrypt/Letsencrypt.pm
@@ -1,6 +1,6 @@
package SrvMngr::Controller::Letsencrypt;
#
-# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-09 17:25:37
+# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43
#
#----------------------------------------------------------------------
# heading : Network
@@ -15,25 +15,19 @@ package SrvMngr::Controller::Letsencrypt;
#
# Documentation: https://wiki.contribs.org/Letsencrypt
#----------------------------------------------------------------------
-
#
# Scheme of things:
#
# TBA!!
-
use strict;
use warnings;
use Mojo::Base 'Mojolicious::Controller';
-
use constant FALSE => 0;
use constant TRUE => 1;
-
use Locale::gettext;
use SrvMngr::I18N;
use SrvMngr qw(theme_list init_session);
-
use Data::Dumper;
-
use esmith::util;
use esmith::util::network;
use esmith::ConfigDB;
@@ -41,389 +35,414 @@ use esmith::AccountsDB;
use esmith::NetworksDB;
use esmith::HostsDB;
use esmith::DomainsDB;
-
-
-
-require '/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt-Custom.pm'; #The code that is to be added by the developer
+require
+ '/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt-Custom.pm'; #The code that is to be added by the developer
sub main {
-#
-# Initial entry - route is "/
%= dumper $nut_data
@@ -17,6 +17,8 @@
% param 'trt' => $nut_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $nut_data->{trt}
%# Inputs etc in here.
+ %# my $ServerNameReg = '([A-Za-z0-9._%+-]+)@((?:(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,}|(?:\d{1,3}\.){3}\d{1,3})|(?:[A-Za-z0-9-]+))';
+ % my $ServerNameReg = '(.*)@(.*)';
<%=l('nut_Manage_Nutups-config_settings:')%>
@@ -45,14 +47,15 @@
%=l('nut_SlaveUPS_UPSNAME@IP')
% param 'SlaveUPS_Name' => $nut_data->{SlaveUPS_Name} unless param 'SlaveUPS_Name';
- %= text_field 'SlaveUPS_Name', size => '50', class => 'textinput SlaveUPS_Name' , pattern=>'.*' , placeholder=>'SlaveUPS_Name'
+ %= text_field 'SlaveUPS_Name', size => '50', class => 'textinput SlaveUPS_Name', pattern => "$ServerNameReg", placeholder=>'server@ip', title=>"Expecting UPSname\@IP or hostname"
%=l('nut_SlaveUPS_Password') + % my $placeholder1 = ($nut_data->{MasterUPS_Password} && $nut_data->{MasterUPS_Password} =~ /\S/) ? "password set" : "password not set"; % param 'SlaveUPS_Password' => $nut_data->{SlaveUPS_Password} unless param 'SlaveUPS_Password'; - %=password_field 'SlaveUPS_Password', class => 'pass4 sme-password' + %=password_field 'SlaveUPS_Password', class => 'pass4 sme-password' , placeholder => $placeholder1
@@ -68,14 +71,15 @@ %=l('nut_MasterUPS_UPSNAME@IP') % param 'MasterUPS_Name' => $nut_data->{MasterUPS_Name} unless param 'MasterUPS_Name'; - %= text_field 'MasterUPS_Name', size => '50', class => 'textinput MasterUPS_Name' , pattern=>'.*' , placeholder=>'MasterUPS_Name' + %= text_field 'MasterUPS_Name', size => '50', class => 'textinput MasterUPS_Name' , pattern=>$ServerNameReg , placeholder=>'server@ip', title=>"Expecting UPSname\@IP or hostname"%=l('nut_MasterUPS_Password') + % my $placeholder2 = ($nut_data->{MasterUPS_Password} && $nut_data->{MasterUPS_Password} =~ /\S/) ? "password set" : "password not set"; % param 'MasterUPS_Password' => $nut_data->{MasterUPS_Password} unless param 'MasterUPS_Password'; - %=password_field 'MasterUPS_Password', class => 'pass6 sme-password' + %=password_field 'MasterUPS_Password', class => 'pass6 sme-password', placeholder => $placeholder2
diff --git a/Templates/controller.pm.tem b/Templates/controller.pm.tem index d59617c..5505e06 100644 --- a/Templates/controller.pm.tem +++ b/Templates/controller.pm.tem @@ -125,11 +125,11 @@ sub do_update { my %${prefix}_data = (); my $title = $c->l('${prefix}_${MenuDescription}'); - # Accessing all POST parameters - my %params = $c->req->params->to_hash; + # Accessing all POST/GET parameters + my $params = $c->req->params->to_hash; # Get number of POST parameters - my $num_params = keys %params; + my $num_params = keys scaler %$params; #Params are available in the hash "params" - copy to the prefix_data hash #while (my ($key, $value) = each %{$c->req->params->to_hash}) { diff --git a/Templates/custom.pm.tem b/Templates/custom.pm.tem index 58461b8..61df817 100644 --- a/Templates/custom.pm.tem +++ b/Templates/custom.pm.tem @@ -103,7 +103,7 @@ sub get_${tablecontrol[0]} { my $selected = shift; #Parameter is name of selected row. my $is_new_record = shift; #Indicates new record required (defaults) my %ret = {}; - return $ret; + return %ret; } diff --git a/Templates/layout.html.ep.tem b/Templates/layout.html.ep.tem index 7c08ecf..99ca07b 100644 --- a/Templates/layout.html.ep.tem +++ b/Templates/layout.html.ep.tem @@ -32,6 +32,7 @@ %= $c->l($c->stash('success')); +