2024-10-18 20:01:59 +02:00
#
2024-12-01 14:49:42 +01:00
# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-11-16 10:30:16
2024-10-18 20:01:59 +02:00
#
#
2024-11-15 18:23:49 +01:00
# Routines to be edited by the developer to provide content and validation for parameters
2024-10-18 20:01:59 +02:00
# and provison of the control data for table(s)
#
use esmith::util ;
2024-11-16 17:18:26 +01:00
use esmith::util::network ;
2024-11-13 17:45:14 +01:00
use esmith::ConfigDB ;
2024-10-18 20:01:59 +02:00
use esmith::HostsDB ;
use esmith::AccountsDB ;
use esmith::NetworksDB ;
use esmith::DomainsDB ;
2024-11-15 18:23:49 +01:00
use constant FALSE = > 0 ;
use constant TRUE = > 1 ;
2024-10-18 20:01:59 +02:00
#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
2024-11-15 18:23:49 +01:00
# Validation for each field
my $ ret = "" ;
2024-11-16 17:18:26 +01:00
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' ; }
2024-11-15 18:23:49 +01:00
if ( $ ret eq "" ) { $ ret = 'ok' ; }
2024-10-18 20:01:59 +02:00
return $ ret ;
}
sub validate_PARAMS {
my $ c = shift ;
my $ prefix_data = shift ; #Data hash as parameter
2024-11-15 18:23:49 +01:00
# Validation for each field
2024-11-29 17:15:55 +01:00
my $ ret = "" ;
2024-11-16 17:18:26 +01:00
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' ; }
2024-11-15 18:23:49 +01:00
if ( $ ret eq "" ) { $ ret = 'ok' ; }
2024-10-18 20:01:59 +02:00
return $ ret ;
}
2024-11-04 18:08:38 +01:00
sub validate_CHECKALLDOMAINS {
my $ c = shift ;
my $ prefix_data = shift ; #Data hash as parameter
2024-11-15 18:23:49 +01:00
# Validation for each field
my $ ret = "" ;
2024-11-16 17:18:26 +01:00
if ( ! TRUE ) #validate $c->param('AllDomainsCheck')
{ $ ret . = 'Validation for AllDomainsCheck failed' ; }
2024-11-15 18:23:49 +01:00
if ( $ ret eq "" ) { $ ret = 'ok' ; }
2024-11-04 18:08:38 +01:00
return $ ret ;
}
sub validate_CHECKALLENABLEDDOMAINS {
my $ c = shift ;
my $ prefix_data = shift ; #Data hash as parameter
2024-11-15 18:23:49 +01:00
# Validation for each field
my $ ret = "" ;
2024-11-16 17:18:26 +01:00
if ( ! TRUE ) #validate $c->param('EnabledDomainsCheck')
{ $ ret . = 'Validation for EnabledDomainsCheck failed' ; }
2024-11-15 18:23:49 +01:00
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 = "" ;
2024-11-16 17:18:26 +01:00
if ( ! TRUE ) #validate $c->param('OneDomainToCheck')
{ $ ret . = 'Validation for OneDomainToCheck failed' ; }
if ( ! TRUE ) #validate $c->param('OneDomainsCheck')
{ $ ret . = 'Validation for OneDomainsCheck failed' ; }
2024-11-15 18:23:49 +01:00
if ( $ ret eq "" ) { $ ret = 'ok' ; }
2024-11-04 18:08:38 +01:00
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 ;
2024-12-01 14:49:42 +01:00
# 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));
2024-11-04 18:08:38 +01:00
my % ret = (
'Data1' = > 'Data for LIST' , #Example
# fields from Inputs in LIST $fields['LIST']
2024-12-01 14:49:42 +01:00
'InternalIP' = > $ cdb - > get_prop ( 'InternalInterface' , 'IPAddress' ) ,
'ExternalIP' = > $ cdb - > get_prop ( 'ExternalInterface' , 'IPAddress' ) ,
'InternetIP' = > $ c - > get_my_ip ( ) ,
'Issuer' = > '$issuer' ,
'Expiry' = > '$expiry' ,
'NotBefore' = > '$before' ,
2024-11-04 18:08:38 +01:00
) ;
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']
2024-12-01 14:49:42 +01:00
'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' )
2024-11-04 18:08:38 +01:00
) ;
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']
2024-12-01 16:29:08 +01:00
'AllDomainsCheck' = > $ c - > update_all_domains ( ) ,
2024-11-04 18:08:38 +01:00
) ;
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']
2024-12-01 16:29:08 +01:00
'EnabledDomainsCheck' = > $ c - > update_enabled_domains ( ) ,
2024-11-04 18:08:38 +01:00
) ;
return % ret ;
}
2024-11-15 18:23:49 +01:00
sub get_data_for_panel_CHECKONEDOMAIN {
2024-11-06 16:16:27 +01:00
# Return a hash with the fields required which will be loaded into the shared data
my $ c = shift ;
my % ret = (
2024-11-16 17:18:26 +01:00
'Data1' = > 'Data for CHECKONEDOMAIN' , #Example
# fields from Inputs in CHECKONEDOMAIN $fields['CHECKONEDOMAIN']
2024-12-01 14:49:42 +01:00
'OneDomainToCheck' = > $ c - > param ( "CHECKONEDOMAIN" ) ,
2024-12-01 16:29:08 +01:00
'OneDomainsCheck' = > $ c - > update_one_domain ( $ c - > param ( "CHECKONEDOMAIN" ) )
2024-11-06 16:16:27 +01:00
) ;
return % ret ;
}
2024-11-16 17:18:26 +01:00
2024-11-04 18:08:38 +01:00
# Get control data for table(s)
2024-10-18 20:01:59 +02:00
2024-11-16 17:18:26 +01:00
# Define a constant hash for field name mapping
use constant DomainList_FIELD_MAPPING = > (
2024-12-01 14:49:42 +01:00
'Table1-Domain name / HOSTNAME' = > 'Domain' ,
'Table1-Brief description' = > 'Description' ,
'Table1-Content' = > 'Content' ,
'Table1-LABEL_NAMESERVERS' = > 'Nameservers' ,
2024-11-16 17:18:26 +01:00
'Table1-LABEL_POINT' = > 'Source-for-Table1-LABEL_POINT' ,
2024-12-01 14:49:42 +01:00
'Table1-LABEL_LECERT' = > 'letsencryptSSLcert' ,
'Table1-IS_IN_CERT' = > 'isincert' ,
'Table1-CHECK' = > 'Check'
2024-11-16 17:18:26 +01:00
#'target_field2' => 'source_field2',
# Add more mappings as needed
) ;
2024-12-01 14:49:42 +01:00
use constant TEST_DOMAIN_LIST = > (
{ "domain" = > "Domain1" , "fred" = > "fred1" , "description" = > "Description1" } ,
{ "domain" = > "Domain2" , "fred" = > "fred2" , "description" = > "Description2" } ,
{ "domain" = > "Domain3" , "fred" = > "fred3" , "description" = > "Description3" } ,
# Add more test entries as needed
) ;
2024-11-16 17:18:26 +01:00
sub actual_DomainList {
2024-12-01 14:49:42 +01:00
my $ c = shift ;
2024-11-16 17:18:26 +01:00
# Actual code for extracting DomainList
2024-12-01 14:49:42 +01:00
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 = "<a href='" . $ link . "&CHECKONEDOMAIN=" . $ _ - > key . "'>" . $ check . "</a>" ;
#my $checklink = "<a href=''>check</a>";
$ 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 ;
2024-11-16 17:18:26 +01:00
}
sub get_DomainList {
# Return an array of hashes of the contents for each row and column for DomainList
my $ c = shift ;
2024-12-01 14:49:42 +01:00
my @ source_records = $ c - > actual_DomainList ( ) ; #TEST_DOMAIN_LIST #Replace by code or call to produce contents of table;
2024-11-16 17:18:26 +01:00
my @ transformed_records ;
my % Field_Mapping = DomainList_FIELD_MAPPING ;
# Iterate over each record in the source array
2024-12-01 14:49:42 +01:00
for my $ source_record ( @ source_records ) {
2024-11-16 17:18:26 +01:00
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 ;
}
2024-10-18 20:01:59 +02:00
# 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 ;
}
2024-11-04 18:08:38 +01:00
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 ;
}
2024-11-15 18:23:49 +01:00
sub get_selected_CHECKONEDOMAIN {
2024-11-06 16:16:27 +01:00
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 ;
}
2024-10-18 20:01:59 +02:00
#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
2024-11-15 18:23:49 +01:00
my $ ret = "" ;
2024-12-01 12:05:35 +01:00
my $ db = $ cdb ; #maybe one of the others
my $ dbkey = 'ChangeThis' ;
2024-11-15 18:23:49 +01:00
2024-12-01 14:49:42 +01:00
if ( ! TRUE ) #copy or perform with value: InternalIP e.g. $db->set_prop($dbkey,'InternalIP',$c->param('InternalIP'),type=>'service'))
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for InternalIP' ; }
2024-12-01 14:49:42 +01:00
if ( ! TRUE ) #copy or perform with value: ExternalIP e.g. $db->set_prop($dbkey,'ExternalIP',$c->param('ExternalIP'),type=>'service'))
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for ExternalIP' ; }
2024-12-01 14:49:42 +01:00
if ( ! TRUE ) #copy or perform with value: InternetIP e.g. $db->set_prop($dbkey,'InternetIP',$c->param('InternetIP'),type=>'service'))
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for InternetIP' ; }
2024-12-01 14:49:42 +01:00
if ( ! TRUE ) #copy or perform with value: Issuer e.g. $db->set_prop($dbkey,'Issuer',$c->param('Issuer'),type=>'service'))
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for Issuer' ; }
2024-12-01 14:49:42 +01:00
if ( ! TRUE ) #copy or perform with value: Expiry e.g. $db->set_prop($dbkey,'Expiry',$c->param('Expiry'),type=>'service'))
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for Expiry' ; }
2024-12-01 14:49:42 +01:00
if ( ! TRUE ) #copy or perform with value: NotBefore e.g. $db->set_prop($dbkey,'NotBefore',$c->param('NotBefore'),type=>'service'))
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for NotBefore' ; }
2024-11-15 18:23:49 +01:00
if ( $ ret eq "" ) { $ ret = 'ok' ; }
2024-10-18 20:01:59 +02:00
return $ ret ;
}
sub perform_PARAMS {
my $ c = shift ;
my $ prefix_data = shift ; #Data hash as parameter
2024-11-15 18:23:49 +01:00
my $ ret = "" ;
2024-12-01 12:05:35 +01:00
my $ db = $ cdb ; #maybe one of the others
2024-12-01 14:49:42 +01:00
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."
2024-11-15 18:23:49 +01:00
2024-12-01 14:49:42 +01:00
if ( ! $ db - > set_prop ( $ dbkey , 'status' , $ c - > param ( 'status' ) , type = > 'service' ) )
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for status' ; }
2024-12-01 14:49:42 +01:00
if ( ! $ db - > set_prop ( $ dbkey , 'hookScript' , $ c - > param ( 'hookScript' ) , type = > 'service' ) )
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for hookScript' ; }
2024-12-01 14:49:42 +01:00
if ( ! $ db - > set_prop ( $ dbkey , 'hostOverride' , $ c - > param ( 'hostOverride' ) , type = > 'service' ) )
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for hostOverride' ; }
2024-12-01 14:49:42 +01:00
if ( ! $ db - > set_prop ( $ dbkey , 'ACCEPT_TERMS' , $ c - > param ( 'ACCEPT_TERMS' ) , type = > 'service' ) )
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for ACCEPT_TERMS' ; }
2024-12-01 14:49:42 +01:00
if ( ! $ db - > set_prop ( $ dbkey , 'API' , $ c - > param ( 'API' ) , type = > 'service' ) )
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for API' ; }
2024-12-01 14:49:42 +01:00
if ( ! $ db - > set_prop ( $ dbkey , 'keysize' , $ c - > param ( 'keysize' ) , type = > 'service' ) )
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for keysize' ; }
2024-12-01 14:49:42 +01:00
if ( ! $ db - > set_prop ( $ dbkey , 'configure' , $ c - > param ( 'configure' ) , type = > 'service' ) )
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for configure' ; }
2024-12-01 14:49:42 +01:00
if ( ! $ db - > set_prop ( $ dbkey , 'email' , $ c - > param ( 'email' ) , type = > 'service' ) )
{ $ ret . = 'Perform/save failed for email' ; }
2024-11-15 18:23:49 +01:00
if ( $ ret eq "" ) { $ ret = 'ok' ; }
2024-10-18 20:01:59 +02:00
return $ ret ;
}
2024-12-01 14:49:42 +01:00
2024-11-04 18:08:38 +01:00
sub perform_CHECKALLDOMAINS {
my $ c = shift ;
my $ prefix_data = shift ; #Data hash as parameter
2024-11-15 18:23:49 +01:00
my $ ret = "" ;
2024-12-01 12:05:35 +01:00
my $ db = $ cdb ; #maybe one of the others
my $ dbkey = 'ChangeThis' ;
2024-11-15 18:23:49 +01:00
2024-12-01 14:49:42 +01:00
if ( ! TRUE ) #copy or perform with value: AllDomainsCheck e.g. $db->set_prop($dbkey,'AllDomainsCheck',$c->param('AllDomainsCheck'),type=>'service'))
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for AllDomainsCheck' ; }
2024-11-15 18:23:49 +01:00
if ( $ ret eq "" ) { $ ret = 'ok' ; }
2024-11-04 18:08:38 +01:00
return $ ret ;
}
sub perform_CHECKALLENABLEDDOMAINS {
my $ c = shift ;
my $ prefix_data = shift ; #Data hash as parameter
2024-11-15 18:23:49 +01:00
my $ ret = "" ;
2024-12-01 12:05:35 +01:00
my $ db = $ cdb ; #maybe one of the others
my $ dbkey = 'ChangeThis' ;
2024-11-15 18:23:49 +01:00
2024-12-01 14:49:42 +01:00
if ( ! TRUE ) #copy or perform with value: EnabledDomainsCheck e.g. $db->set_prop($dbkey,'EnabledDomainsCheck',$c->param('EnabledDomainsCheck'),type=>'service'))
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for EnabledDomainsCheck' ; }
2024-11-15 18:23:49 +01:00
if ( $ ret eq "" ) { $ ret = 'ok' ; }
2024-11-04 18:08:38 +01:00
return $ ret ;
}
2024-11-15 18:23:49 +01:00
sub perform_CHECKONEDOMAIN {
2024-11-06 16:16:27 +01:00
my $ c = shift ;
my $ prefix_data = shift ; #Data hash as parameter
2024-11-15 18:23:49 +01:00
my $ ret = "" ;
2024-12-01 12:05:35 +01:00
my $ db = $ cdb ; #maybe one of the others
my $ dbkey = 'ChangeThis' ;
2024-11-15 18:23:49 +01:00
2024-12-01 14:49:42 +01:00
if ( ! TRUE ) #copy or perform with value: OneDomainToCheck e.g. $db->set_prop($dbkey,'OneDomainToCheck',$c->param('OneDomainToCheck'),type=>'service'))
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for OneDomainToCheck' ; }
2024-12-01 14:49:42 +01:00
if ( ! TRUE ) #copy or perform with value: OneDomainsCheck e.g. $db->set_prop($dbkey,'OneDomainsCheck',$c->param('OneDomainsCheck'),type=>'service'))
2024-12-01 12:05:35 +01:00
{ $ ret . = 'Perform/save failed for OneDomainsCheck' ; }
2024-11-15 18:23:49 +01:00
if ( $ ret eq "" ) { $ ret = 'ok' ; }
2024-11-06 16:16:27 +01:00
return $ ret ;
}
2024-10-18 20:01:59 +02:00
sub create_link {
# WIP
2024-11-16 17:18:26 +01:00
my ( $ c , $ route , $ panel , $ index ) = @ _ ;
2024-10-18 20:01:59 +02:00
my $ link = "$route?trt=$panel&Selected=$index" ;
return $ link ;
}
2024-12-01 14:49:42 +01:00
sub get_my_ip
{
my ( $ self , $ item , $ prop , $ default ) = @ _ ;
my $ output = `/usr/sbin/e-smith/getmyip` ;
return $ output || "IP" ;
}
2024-12-01 16:29:08 +01:00
sub update_one_domain
{
my ( $ self , $ domain ) = @ _ ;
return "$domain not domain" unless ( $ ddb - > get ( $ domain ) || $ hdb - > get ( $ domain ) ) ;
( $ domain ) = ( $ domain =~ /([\w\p{L}.]+)/ ) ;
my $ output = `/etc/e-smith/events/actions/letsencrypt-setdomains " " $domain ` ;
return $ output || "-empty-" ;
}
sub update_all_domains
{
my $ self = shift ;
my $ output = `/etc/e-smith/events/actions/letsencrypt-setdomains "" "" all ` ;
return $ output || "-empty-" ;
}
sub update_enabled_domains
{
my $ self = shift ;
my $ output = `/etc/e-smith/events/actions/letsencrypt-setdomains "" "" enabled ` ;
return $ output || "-empty-" ;
}
2024-11-27 17:18:56 +01:00
1 ;