Compare commits
7 Commits
11_0_0-31_
...
11_0_0-36_
Author | SHA1 | Date | |
---|---|---|---|
d77b9bd341 | |||
746609ced0 | |||
9380ac0264 | |||
a07bdf4aa5 | |||
4270814afc | |||
58c3f2348a | |||
b58f82a332 |
@@ -39,7 +39,18 @@
|
||||
$OUT .= "# private access by default\n";
|
||||
$OUT .= " Require ip $localAccess $externalSSLAccess\n";
|
||||
}
|
||||
$OUT .= " </Location>\n";
|
||||
# any smanager script or style added in line should be hashed and added here to run in a modern browser
|
||||
$OUT .= " Header set Content-Security-Policy \"script-src 'self' 'unsafe-eval' 'unsafe-hashes' "
|
||||
." 'sha256-X8Qwlk0M9iDTQZqFVpbVcThRjBqQXpwTOZCLX8I+Frk=' 'sha256-inQ04nmqTZI75Z5g/tAzjahedNugPFfrhxHyoFezFkM=' 'sha256-5IsIX+Vbow7wwy2RjR3+5X06R/0CQZPkw3OHj/228cM=' 'sha256-tfVskwioRaNsV75h89itf7FujMgIrodfs1Ea4UAJNpE=' 'sha256-P51OyslUh5bGkoWk9qY+o4Su4HuwNFoQcFCeNxF7Ms8=' ; "
|
||||
." style-src 'self' 'unsafe-hashes' "
|
||||
#'sha256-EhT63KK1JBrsUM27H+5RMNifDFpVB+GXcTtavKXwCK8=' #h2l1
|
||||
#'sha256-msdEhWmYTu7vqzGaQHDfvy6lzlDsbKkouwvN2R6Co9E=' #busy-indicator
|
||||
#'sha256-iYwYhiMcsGmXCUzLEpEzZNz5dINrlkqf1sLbLhEcqGM=' _footer.html.ep style="position:relative;"
|
||||
#'sha256-bOTFT8zacR4Rfja/WIKXgAQQXVaPyG3oBlvAhU4ga8g=' _usr_list style="min-width:35em"
|
||||
#'sha256-CP93jJ1Y8nMwUoDzFbo1srdgsbADPasAc0Wjig1ahpY=' groups style="min-width:15em"
|
||||
." 'sha256-msdEhWmYTu7vqzGaQHDfvy6lzlDsbKkouwvN2R6Co9E=' 'sha256-iYwYhiMcsGmXCUzLEpEzZNz5dINrlkqf1sLbLhEcqGM=' 'sha256-bOTFT8zacR4Rfja/WIKXgAQQXVaPyG3oBlvAhU4ga8g=' 'sha256-CP93jJ1Y8nMwUoDzFbo1srdgsbADPasAc0Wjig1ahpY=' 'sha256-EhT63KK1JBrsUM27H+5RMNifDFpVB+GXcTtavKXwCK8=' ;"
|
||||
." \"\n";
|
||||
$OUT .= " </Location>\n";
|
||||
# prevent caching of manager files in browser
|
||||
$OUT .= " <LocationMatch \"/$place/.+\.(html|cgi)\$\">\n";
|
||||
$OUT .= " Header set Cache-Control no-store\n";
|
||||
|
@@ -964,7 +964,7 @@ sub change_settings_filtering {
|
||||
TagLevel
|
||||
RejectLevel
|
||||
SortSpam
|
||||
Subject
|
||||
Subject
|
||||
SubjectTag) )
|
||||
{
|
||||
$cdb->set_prop('spamassassin', $param, $c->param("Spam$param"));
|
||||
|
@@ -3,7 +3,7 @@ package SrvMngr::Controller::Proxy;
|
||||
#----------------------------------------------------------------------
|
||||
# heading : System
|
||||
# description : Proxy settings
|
||||
# navigation : 4000 700
|
||||
# navigation : 4000 710
|
||||
#----------------------------------------------------------------------
|
||||
#
|
||||
# routes : end
|
||||
@@ -72,4 +72,4 @@ sub do_update {
|
||||
};
|
||||
|
||||
|
||||
1;
|
||||
1;
|
@@ -1,5 +1,6 @@
|
||||
#
|
||||
# Generated by SM2Gen version: SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43
|
||||
# edited by bjr 09Jan2025
|
||||
#
|
||||
'lets_Manage_letsencrypt-config_settings:' => 'Manage letsencrypt-config settings',
|
||||
'lets_HOOKSCRIPT_STATUS' => 'Hookscript Status',
|
||||
@@ -9,14 +10,14 @@
|
||||
'lets_Internal_IP' => 'Internal IP',
|
||||
'lets_Save' => 'Save',
|
||||
'lets_Issuer' => 'Issuer',
|
||||
'lets_IS_IN_CERT' => 'Is In cart',
|
||||
'lets_IS_IN_CERT' => 'Is in certificate',
|
||||
'lets_For_this_Server' => 'For this Server',
|
||||
'lets_Loop_through_checking_the_letsencrypt' => 'Loop through checking the letsencrypt status for each configured domain',
|
||||
'lets_Loop_through_checking_the_letsencrypt' => 'Loop through checking the letsencrypt status for each configured domain which is enabled',
|
||||
'lets_Check_just_one_domain' => 'Check just one domain',
|
||||
'lets_PARAMS_panel_action_was_successful' => 'PARAMS panel action was successful',
|
||||
'lets_PARAMS_panel_action_was_successful' => 'Parameter panel action was successful',
|
||||
'lets_Check_all_domains' => 'Check all domains',
|
||||
'lets_LIST_panel_action_was_successful' => 'LIST panel action was successful',
|
||||
'lets_LIST_panel_action_was_successful' => 'List panel action was successful',
|
||||
'lets_Status_Report' => 'Status Report',
|
||||
'lets_LABEL_NAMESERVERS' => 'Label timeservers',
|
||||
'lets_Loop_through_and_check_the' => 'Loop through and check the letsencrypt status for a specific domain',
|
||||
@@ -24,12 +25,12 @@
|
||||
'lets_Error_Status_Report' => 'Error Status Report',
|
||||
'lets_Not_Before' => 'Not Before',
|
||||
'lets_Content' => 'Content',
|
||||
'lets_CONFIG_LETSENCRYPT' => 'confirm Letsencrypt',
|
||||
'lets_API_STATUS' => 'ape Status',
|
||||
'lets_CONFIG_LETSENCRYPT' => 'Configure Letsencrypt',
|
||||
'lets_API_STATUS' => 'API Status',
|
||||
'lets_ACCEPT_TERMS_STATUS' => 'Accept Terms Status',
|
||||
'lets_Check_all_enabled_domains' => 'Check all enabled domains',
|
||||
'lets_All_domains_check_result' => 'All domains check result',
|
||||
'lets_CHECKALLDOMAINS_panel_action_was_successful' => 'CHECKALLDOMAINS panel action was successful',
|
||||
'lets_CHECKALLDOMAINS_panel_action_was_successful' => 'Check all domains panel action was successful',
|
||||
'lets_Domains_name' => 'Domains name',
|
||||
'lets_HOSTOVERRIDE_STATUS' => 'Hostoverride Status',
|
||||
'lets_List_of_Domains_and_Hosts' => 'List of Domains and Hosts',
|
||||
@@ -37,7 +38,7 @@
|
||||
'lets_KEYSIZE_STATUS' => 'Keysize Status',
|
||||
'lets_Domain_name_/_HOSTNAME' => 'Domain name / HOSTNAME',
|
||||
'lets_Enabled_domains_check_result' => 'Enabled domains check result',
|
||||
'lets_CHECKALLENABLEDDOMAINS_panel_action_was_successful' => 'CHECKALLENABLEDDOMAINS panel action was successful',
|
||||
'lets_CHECKALLENABLEDDOMAINS_panel_action_was_successful' => 'Check all enabled domains panel action was successful',
|
||||
'lets_Internet_IP' => 'Internet IP',
|
||||
'lets_Expiry' => 'Expiry',
|
||||
'lets_CHECK_ALL_DOMAINS' => 'Check All Domains',
|
||||
@@ -47,8 +48,8 @@
|
||||
'lets_Current_certificate_details' => 'Current certificate details',
|
||||
'lets_LABEL_LECERT' => 'Label secret',
|
||||
'lets_One_domain_check_result' => 'One domain check result',
|
||||
'lets_CHECKONEDOMAIN_panel_action_was_successful' => 'CHECKONEDOMAIN panel action was successful',
|
||||
'lets_CONFIGUREMODE_STATUS' => 'Configuremode Status',
|
||||
'lets_CHECKONEDOMAIN_panel_action_was_successful' => 'Check one domain panel action was successful',
|
||||
'lets_CONFIGUREMODE_STATUS' => 'Configure mode Status',
|
||||
'lets_CHECK_ALL_ENABLED_DOMAINS' => 'Check All Enabled Domains',
|
||||
'lets_External_Interface_IP' => 'External Interface IP',
|
||||
'lets_APPLY' => 'Apply',
|
||||
'lets_APPLY' => 'Apply',
|
@@ -9,7 +9,7 @@ use esmith::util;
|
||||
BEGIN
|
||||
{
|
||||
$0 =~ /^(.+)$/ms; $0 = $1; # Untaint script name
|
||||
$ENV{'PATH'} = '/bin:/usr/bin:/usr/local/bin';
|
||||
$ENV{'PATH'} = '/usr/sbin:/usr/bin:/usr/local/bin';
|
||||
$ENV{'SHELL'} = '/bin/bash';
|
||||
$ENV{'HOME'} = '/usr/share/smanager';
|
||||
delete $ENV{'ENV'};
|
||||
|
1
root/usr/share/smanager/themes/default/public/css/flag-icon.min.css
vendored
Normal file
1
root/usr/share/smanager/themes/default/public/css/flag-icon.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -34,8 +34,8 @@
|
||||
<p><span class=label>
|
||||
%=l 'mai_LABEL_SPAM_SCAN'
|
||||
</span><span class=input>
|
||||
% param 'SpamStatus' => $mai_datas->{spamstatus} unless param 'SpamStatus';
|
||||
%= select_field 'SpamStatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
|
||||
% param 'Spamstatus' => $mai_datas->{spamstatus} unless param 'Spamstatus';
|
||||
%= select_field 'Spamstatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => 'input'
|
||||
</span></p>
|
||||
|
||||
<p><span class=label>
|
||||
@@ -98,4 +98,4 @@
|
||||
% end
|
||||
|
||||
</div>
|
||||
%end
|
||||
%end
|
@@ -86,22 +86,24 @@
|
||||
</span><span class=data2>
|
||||
%= $mai_datas->{fetchmailmethod}
|
||||
</span></p>
|
||||
|
||||
% my $smtp_mesg;
|
||||
|
||||
% my $smtp_mesg=l('SMTP port %u allow client to authenticate:');
|
||||
% $smtp_mesg=l('SMTP port %u allow client to authenticate:');
|
||||
<p><span class=label>
|
||||
%= sprintf($smtp_mesg,$c->get_db_prop('qpsmtpd','TCPPort',25));
|
||||
</span><span class=data2>
|
||||
%= $c->get_current_smtp_auth( TRUE )
|
||||
</span></p>
|
||||
|
||||
% my $smtp_mesg=l('SMTPS SSL/TLS auth: port %u status:');
|
||||
% $smtp_mesg=l('SMTPS SSL/TLS auth: port %u status:');
|
||||
<p><span class=label>
|
||||
%= sprintf($smtp_mesg,$c->get_db_prop('sqpsmtpd','TCPPort',465));
|
||||
</span><span class=data2>
|
||||
%= $c->get_current_smtp_ssl_auth( TRUE, 's', FALSE )
|
||||
</span></p>
|
||||
|
||||
%my $smtp_mesg=l 'Submission port %u status:';
|
||||
% $smtp_mesg=l 'Submission port %u status:';
|
||||
<p><span class=label>
|
||||
%= sprintf($smtp_mesg,$c->get_db_prop('uqpsmtpd','TCPPort',587));
|
||||
</span><span class=data2>
|
||||
@@ -109,7 +111,7 @@
|
||||
</span></p>
|
||||
<br />
|
||||
|
||||
% my $btn = l('mai_DESC_STATE_RECEPTION_BUTTON');
|
||||
% my $btn = l('mai_DESC_STATE_RECEPTION_BUTTON');
|
||||
<div class='center'>
|
||||
%= submit_button "$btn", class => 'action'
|
||||
</div>
|
||||
|
@@ -33,7 +33,7 @@
|
||||
%= javascript '/js/buttons.print.min.js'
|
||||
%= javascript '/js/flag-by-locale.js'
|
||||
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.5.0/css/flag-icon.min.css">
|
||||
<link rel="stylesheet" href="/smanager/css/flag-icon.min.css">
|
||||
%= stylesheet '/css/sme-jquery-overrides.css'
|
||||
|
||||
<style>
|
||||
@@ -125,4 +125,4 @@
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@@ -51,10 +51,11 @@
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $domain_name = $domain->{Domain}; # Domain name extracted from the data structure
|
||||
%my $actionModify = qq{
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text'
|
||||
% onclick="window.location.href='domains2?CsrfDef=$csrf_token&trt=UPD&Domain=$domain_name'">
|
||||
% <a href="domains2?CsrfDef=$csrf_token&trt=UPD&Domain=$domain_name">
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text' >
|
||||
% $modify_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%my $removable = ($domain->{Removable} || 'yes');
|
||||
%my $actionRemove = ' ';
|
||||
@@ -63,10 +64,11 @@
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $domain_name = $domain->{Domain}; # Domain name extracted from the data structure
|
||||
%$actionRemove = qq{
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text'
|
||||
% onclick="window.location.href='domains2?CsrfDef=$csrf_token&trt=DEL&Domain=$domain_name'">
|
||||
% <a href="domains2?CsrfDef=$csrf_token&trt=DEL&Domain=$domain_name">
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%# $actionRemove = "<a href='domains2?CsrfDef=TOKEN&trt=DEL&Domain=" . $domain->{Domain} . "'>" . "<button class='sme-remove-button' title=".l('REMOVE').">".l('REMOVE')."</button>" . "</a>";
|
||||
%};
|
||||
@@ -117,4 +119,4 @@
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -43,19 +43,21 @@
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $group_name = $group->key; # group name extracted from the data structure
|
||||
%my $actionModify = qq{
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text'
|
||||
% onclick="window.location.href='groups2?CsrfDef=$csrf_token&trt=UPD&group=$group_name'">
|
||||
% <a href="groups2?CsrfDef=$csrf_token&trt=UPD&group=$group_name">
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text' >
|
||||
% $modify_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%my $remove_text = l('REMOVE'); # Localized text
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $group_name = $group->key; # group name extracted from the data structure
|
||||
%my $actionRemove = qq{
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text'
|
||||
% onclick="window.location.href='groups2?CsrfDef=$csrf_token&trt=DEL&group=$group_name'">
|
||||
% <a href="groups2?CsrfDef=$csrf_token&trt=DEL&group=$group_name">
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
<%= $c->render_to_string(inline => $actionModify) %> <%= $c->render_to_string(inline => $actionRemove) %>
|
||||
</td>
|
||||
@@ -67,4 +69,4 @@
|
||||
</p>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -68,7 +68,7 @@
|
||||
.login-button {
|
||||
background-color: #98d36e; /* Button background color */
|
||||
font-weight: bold; /* Bold text */
|
||||
xxcolor: #ffffff; /* Button text color */
|
||||
color: #ffffff; /* Button text color */
|
||||
padding: 8px 12px; /* Adjust padding for button height */
|
||||
border: none; /* Remove default border */
|
||||
border-radius: 4px; /* Rounded corners */
|
||||
@@ -100,11 +100,11 @@
|
||||
</div>
|
||||
|
||||
<div id="h2e22">
|
||||
<button type='button'><a id="help-button" target="_parent" href="manual">?</a></button>
|
||||
<button type='button'class="login-button"><a id="help-button" target="_parent" href="manual">?</a></button>
|
||||
</div>
|
||||
|
||||
<div id="h2e12">
|
||||
<button type='button'><a id="legacy-button" href="/server-manager" target='_blank'>Legacy SM</a></button>
|
||||
<button type='button' class="login-button"><a id="legacy-button" href="/server-manager" target='_blank'>Legacy SM</a></button>
|
||||
</div>
|
||||
<div id="h2e23">
|
||||
% if ( not defined $c->session->{username} ) {
|
||||
@@ -125,4 +125,4 @@
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -57,19 +57,21 @@
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $hostentries_name = $_->{'HostName'}; # hostentries name extracted from the data structure
|
||||
%$actionModify = qq{
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text'
|
||||
% onclick="window.location.href='hostentriesd?CsrfDef=$csrf_token&trt=UPD&Hostname=$hostentries_name'">
|
||||
% <a href="hostentriesd?CsrfDef=$csrf_token&trt=UPD&Hostname=$hostentries_name">
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text' >
|
||||
% $modify_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%my $remove_text = l('REMOVE'); # Localized text
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%#my $hostentries_name = $_->{'HostName'}; # hostentries name extracted from the data structure
|
||||
%$actionRemove = qq{
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text'
|
||||
% onclick="window.location.href='hostentriesd?CsrfDef=$csrf_token&trt=DEL&Hostname=$hostentries_name'">
|
||||
% <a href="hostentriesd?CsrfDef=$csrf_token&trt=DEL&Hostname=$hostentries_name">
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%}
|
||||
<%= $c->render_to_string(inline => $actionModify) %> <%= $c->render_to_string(inline => $actionRemove) %>
|
||||
@@ -79,4 +81,4 @@
|
||||
</tbody>
|
||||
</table>
|
||||
% }
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -53,10 +53,11 @@
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $ibays_entry_name = $ibay->key; # ibays_entry name extracted from the data structure
|
||||
%$actionModify = qq{
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text'
|
||||
% onclick="window.location.href='ibaysd?CsrfDef=$csrf_token&trt=UPD&ibay=$ibays_entry_name'">
|
||||
% <a href="ibaysd?CsrfDef=$csrf_token&trt=UPD&ibay=$ibays_entry_name">
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text' >
|
||||
% $modify_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%}
|
||||
|
||||
@@ -66,17 +67,19 @@
|
||||
%my $ibays_entry_name = $ibay->key; # ibays_entry name extracted from the data structure
|
||||
%if ($ibay->prop('PasswordSet') ne 'yes' && $needPassword) {
|
||||
%$actionResetPw = qq{
|
||||
% <button type='button' class='sme-password-button unset' title="$password_text - currently unset" style = background:pink;
|
||||
% onclick="window.location.href='ibaysd?CsrfDef=$csrf_token&trt=PWD&ibay=$ibays_entry_name'">
|
||||
% <a href="ibaysd?CsrfDef=$csrf_token&trt=PWD&ibay=$ibays_entry_name">
|
||||
% <button type='button' class='sme-password-button unset' title="$password_text - currently unset" style = background:pink; >
|
||||
% $password_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%} else {
|
||||
%$actionResetPw = qq{
|
||||
% <button type='button' class='sme-password-button' title='$password_text'
|
||||
% onclick="window.location.href='ibaysd?CsrfDef=$csrf_token&trt=PWD&ibay=$ibays_entry_name'">
|
||||
% <a href="ibaysd?CsrfDef=$csrf_token&trt=PWD&ibay=$ibays_entry_name">
|
||||
% <button type='button' class='sme-password-button' title='$password_text' >
|
||||
% $password_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%}
|
||||
|
||||
@@ -87,10 +90,11 @@
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $ibays_entry_name = $ibay->key; # ibays_entry name extracted from the data structure
|
||||
%$actionRemove = qq{
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text'
|
||||
% onclick="window.location.href='ibaysd?CsrfDef=$csrf_token&trt=DEL&ibays=$ibays_entry_name'">
|
||||
% <a href="ibaysd?CsrfDef=$csrf_token&trt=DEL&ibays=$ibays_entry_name">
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%}
|
||||
<%= $c->render_to_string(inline => $actionModify) %>
|
||||
@@ -104,4 +108,4 @@
|
||||
<%} %>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -30,10 +30,16 @@
|
||||
</span><br>
|
||||
|
||||
<span class='data'>
|
||||
%= submit_button l('lets_Back'), class => 'action back', onclick =>'history.back()'
|
||||
%my $back_text = l('lets_Back'); # Localized text
|
||||
%my $actionBack = qq{
|
||||
% <a href="letsencryptd">
|
||||
% <input class='action back' type='submit' value='$back_text'>
|
||||
% </a>
|
||||
%};
|
||||
<%= $c->render_to_string(inline => $actionBack) %>
|
||||
</span>
|
||||
|
||||
|
||||
%# Probably finally by a submit.
|
||||
%end
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -30,10 +30,16 @@
|
||||
</span><br>
|
||||
|
||||
<span class='data'>
|
||||
%= submit_button l('lets_Back'), class => 'action back', onclick =>'history.back()'
|
||||
%my $back_text = l('lets_Back'); # Localized text
|
||||
%my $actionBack = qq{
|
||||
% <a href="letsencryptd">
|
||||
% <input class='action back' type='submit' value='$back_text'>
|
||||
% </a>
|
||||
%};
|
||||
<%= $c->render_to_string(inline => $actionBack) %>
|
||||
</span>
|
||||
|
||||
|
||||
%# Probably finally by a submit.
|
||||
%end
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -37,10 +37,16 @@
|
||||
</span><br>
|
||||
|
||||
<span class='data'>
|
||||
%= submit_button l('lets_Back'), class => 'action back', onclick =>'history.back()'
|
||||
%my $back_text = l('lets_Back'); # Localized text
|
||||
%my $actionBack = qq{
|
||||
% <a href="letsencryptd">
|
||||
% <input class='action back' type='submit' value='$back_text'>
|
||||
% </a>
|
||||
%};
|
||||
<%= $c->render_to_string(inline => $actionBack) %>
|
||||
</span>
|
||||
|
||||
|
||||
%# Probably finally by a submit.
|
||||
%end
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,7 +1,6 @@
|
||||
<div id='ln_list'>
|
||||
% my $btn = l('ln_LOCALNETWORK_ADD');
|
||||
%= form_for '/localnetworksa' => (method => 'POST') => begin
|
||||
<p>
|
||||
|
||||
% my $retref= $c->stash("ret");
|
||||
% my %ret;
|
||||
@@ -68,10 +67,10 @@
|
||||
%=l 'ROUTER'
|
||||
</th>
|
||||
|
||||
<th class='sme-border' '>
|
||||
<th class='sme-border'>
|
||||
%=l 'ACTION'
|
||||
</th>
|
||||
</tr>
|
||||
</tr>
|
||||
</thead><tbody>
|
||||
% foreach my $localnetwork (@$localnetworks )
|
||||
% {
|
||||
@@ -84,18 +83,24 @@
|
||||
%= t td => (class => 'sme-border') => $localnetwork->prop('Mask')
|
||||
%= t td => (class => 'sme-border') => $num_hosts
|
||||
%= t td => (class => 'sme-border') => $localnetwork->prop('Router')
|
||||
% if ($removable eq "yes") {
|
||||
<td class='sme-border'>
|
||||
<a href="localnetworksd?CsrfDef=TOKEN&trt=DEL&localnetwork=<%= $localnetwork->key%>"><button class='sme-remove-button' title="<%=l('REMOVE')%>"><%=l('REMOVE') %></button></a></td>
|
||||
% } else {
|
||||
<td class='sme-border'> </td>
|
||||
%}
|
||||
%my $actionRemove = ' ';
|
||||
%if ($removable eq "yes") {
|
||||
%my $remove_text = l('REMOVE'); # Localized text
|
||||
%my $local_network_entry = $localnetwork->key;
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%$actionRemove = qq{
|
||||
% <a href="localnetworksd?CsrfDef=$csrf_token&trt=DEL&localnetwork=$local_network_entry">
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
% }
|
||||
<td class='sme-border'><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||
</tr>
|
||||
% }
|
||||
</tbody>
|
||||
</table>
|
||||
</p>
|
||||
|
||||
%= hidden_field 'trt' => $ln_datas->{trt}
|
||||
%}
|
||||
</div>
|
||||
|
@@ -96,10 +96,11 @@
|
||||
%my $remove_text = l('REMOVE'); # Localized text
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $actionRemove = qq{
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text'
|
||||
% onclick="window.location.href='portforwardingd?CsrfDef=$csrf_token&trt=DEL&sport=$sport&proto=$proto'">
|
||||
% <a href="portforwardingd?CsrfDef=$csrf_token&trt=DEL&sport=$sport&proto=$proto">
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
<%= $c->render_to_string(inline => $actionRemove) %>
|
||||
</td>
|
||||
@@ -112,4 +113,4 @@
|
||||
</table>
|
||||
%= hidden_field 'trt' => $pf_datas->{trt}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -62,10 +62,11 @@
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $printer_name = $printer->key;
|
||||
%my $actionRemove = qq{
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text'
|
||||
% onclick="window.location.href='printers2?CsrfDef=$csrf_token&trt=DEL&&printer=$printer_name'">
|
||||
% <a href="printers2?CsrfDef=$csrf_token&trt=DEL&&printer=$printer_name">
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
<%= $c->render_to_string(inline => $actionRemove) %>
|
||||
</td>
|
||||
@@ -77,4 +78,4 @@
|
||||
</p>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -61,10 +61,11 @@
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $pseudonyms_entry_name = $pseudonym->key; # pseudonyms_entry name extracted from the data structure
|
||||
%$actionModify = qq{
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text'
|
||||
% onclick="window.location.href='pseudonyms2?CsrfDef=$csrf_token&trt=UPD&pseudonym=$pseudonyms_entry_name'">
|
||||
% <a href="pseudonyms2?CsrfDef=$csrf_token&trt=UPD&pseudonym=$pseudonyms_entry_name">
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text' >
|
||||
% $modify_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%}
|
||||
|
||||
@@ -73,10 +74,11 @@
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $pseudonyms_entry_name = $pseudonym->key; # pseudonyms_entry name extracted from the data structure
|
||||
%$actionRemove = qq{
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text'
|
||||
% onclick="window.location.href='pseudonyms2?CsrfDef=$csrf_token&trt=DEL&pseudonym=$pseudonyms_entry_name'">
|
||||
% <a href="pseudonyms2?CsrfDef=$csrf_token&trt=DEL&pseudonym=$pseudonyms_entry_name">
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%}
|
||||
<%= $c->render_to_string(inline => $actionModify) %> <%= $c->render_to_string(inline => $actionRemove) %>
|
||||
@@ -91,4 +93,4 @@
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -62,10 +62,11 @@
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $quota_user_name = $user->key; # quotas_entry name extracted from the data structure
|
||||
%my $actionModify = qq{
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text'
|
||||
% onclick="window.location.href='quotad?CsrfDef=$csrf_token&trt=UPD&user=$quota_user_name'">
|
||||
% <a href="quotad?CsrfDef=$csrf_token&trt=UPD&user=$quota_user_name">
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text' >
|
||||
% $modify_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
<%= $c->render_to_string(inline => $actionModify) %>
|
||||
</td>
|
||||
@@ -78,4 +79,4 @@
|
||||
|
||||
%= hidden_field 'trt' => $quo_datas->{trt}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -59,73 +59,88 @@
|
||||
%= t td => (class => 'sme-border') => "$first $last"
|
||||
%= t td => (class => 'sme-border') => $vpnaccess
|
||||
%= t td => (class => 'sme-border') => $fwd
|
||||
%my ($actionModify, $actionLock, $actionResetPw, $actionRemove) = ' ';
|
||||
%my ($actionModify, $actionLock, $actionResetPw, $actionRemove,$actionroundcube) = ' ';
|
||||
%my $modify_text = l('MODIFY'); # Localized text
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $useraccounts_user_name = $user->key; # useraccountss_entry name extracted from the data structure
|
||||
%my $password_text = l("PASSWORD_RESET");
|
||||
%if ($username eq 'admin') {
|
||||
%if ($useraccounts_user_name eq 'admin') {
|
||||
%$actionModify = qq{
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text'
|
||||
% onclick="window.location.href='useraccountsd?CsrfDef=$csrf_token&trt=UPS&user=$useraccounts_user_name'">
|
||||
% <a href="useraccountsd?CsrfDef=$csrf_token&trt=UPS&user=$useraccounts_user_name">
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text'>
|
||||
% $modify_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%} else {
|
||||
%$actionModify = qq{
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text'
|
||||
% onclick="window.location.href='useraccountsd?CsrfDef=$csrf_token&trt=UPD&user=$useraccounts_user_name'">
|
||||
% <a href="useraccountsd?CsrfDef=$csrf_token&trt=UPD&user=$useraccounts_user_name">
|
||||
% <button type='button' class='sme-modify-button' title='$modify_text' >
|
||||
% $modify_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%}
|
||||
%if ($password_set ne 'yes') {
|
||||
%$actionLock = l('ACCOUNT_LOCKED');
|
||||
%$actionResetPw = qq{
|
||||
% <button type='button' class='sme-password-button unset' title="$password_text - currently unset" style = background:pink;
|
||||
% onclick="window.location.href='useraccountsd?CsrfDef=$csrf_token&trt=PWD&ibay=$useraccounts_user_name'">
|
||||
% <a href="useraccountsd?CsrfDef=$csrf_token&trt=PWD&user=$useraccounts_user_name">
|
||||
% <button type='button' class='sme-password-button unset' title="$password_text - currently unset" style = background:pink; >
|
||||
% $password_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%} else {
|
||||
%my $lock_text = l('ACCOUNT LOCKED'); # Localized text
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $useraccounts_user_name = $user->key; # useraccountss_entry name extracted from the data structure
|
||||
%$actionLock = qq{
|
||||
% <button type='button' class='sme-lock-button' title='$lock_text'
|
||||
% onclick="window.location.href='useraccountsd?CsrfDef=$csrf_token&trt=LCK&user=$useraccounts_user_name'">
|
||||
% <a href="useraccountsd?CsrfDef=$csrf_token&trt=LCK&user=$useraccounts_user_name">
|
||||
% <button type='button' class='sme-lock-button' title='$lock_text' >
|
||||
% $lock_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%$actionResetPw = qq{
|
||||
% <button type='button' class='sme-password-button' title='$password_text'
|
||||
% onclick="window.location.href='useraccountsd?CsrfDef=$csrf_token&trt=PWD&user=$useraccounts_user_name'">
|
||||
% <a href="useraccountsd?CsrfDef=$csrf_token&trt=PWD&user=$useraccounts_user_name">
|
||||
% <button type='button' class='sme-password-button' title='$password_text' >
|
||||
% $password_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%}
|
||||
%if ( $removable eq 'yes' ) {
|
||||
%my $remove_text = l('REMOVE'); # Localized text
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%$actionRemove = qq{
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text'
|
||||
% onclick="window.location.href='useraccountsd?CsrfDef=$csrf_token&trt=DEL&user=$useraccounts_user_name'">
|
||||
% <a href="useraccountsd?CsrfDef=$csrf_token&trt=DEL&user=$useraccounts_user_name">
|
||||
% <button type='button' class='sme-remove-button' title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
%}
|
||||
|
||||
% my $thisdomain = session 'SystemName';
|
||||
% $thisdomain .= ".".session 'DomainName';
|
||||
%# my $thisdomain = "localhost";
|
||||
|
||||
%my $thisdomain = session 'SystemName';
|
||||
%$thisdomain .= ".".session 'DomainName';
|
||||
%my $roundcube_text = l('Webmail'); # Localized text
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $useraccounts_user_name = $user->key; # useraccountss_entry name extracted from the data structure
|
||||
%$actionroundcube = qq{
|
||||
% <a href="roundcubepanel?CsrfDef=$csrf_token&url=https://$thisdomain/roundcube?_user=$useraccounts_user_name">
|
||||
% <button type='button' class='sme-email-button' title='$roundcube_text' >
|
||||
% $roundcube_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
|
||||
<td class='sme-border' style="min-width:35em">
|
||||
<%= $c->render_to_string(inline => $actionModify) %>
|
||||
<%= $c->render_to_string(inline => $actionResetPw) %>
|
||||
<%= $c->render_to_string(inline => $actionLock) %>
|
||||
<%= $c->render_to_string(inline => $actionRemove) %>
|
||||
<a href="<%= "roundcubepanel/?url=https://".$thisdomain."/" %>roundcube?_user=<%= $username %>"><button class="sme-email-button" title="<%= l('EMAIL') %>"><%= l('EMAIL') %></button></a>
|
||||
</td>
|
||||
<%= $c->render_to_string(inline => $actionroundcube) %>
|
||||
</td>
|
||||
</tr>
|
||||
% }
|
||||
</tbody>
|
||||
@@ -135,4 +150,4 @@
|
||||
|
||||
%= hidden_field 'trt' => $usr_datas->{trt}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -2,7 +2,7 @@ Summary: Sme server navigation module : manager 2
|
||||
%define name smeserver-manager
|
||||
Name: %{name}
|
||||
%define version 11.0.0
|
||||
%define release 31
|
||||
%define release 36
|
||||
Version: %{version}
|
||||
Release: %{release}%{?dist}
|
||||
License: GPL
|
||||
@@ -115,6 +115,26 @@ true
|
||||
%defattr(-,root,root)
|
||||
|
||||
%changelog
|
||||
* Thu Jan 09 2025 Brian Read <brianr@koozali.org> 11.0.0-36.sme
|
||||
- Fix spamassassin status not coming through from email filter panel to email settings panel [SME: 12868]
|
||||
- Correct spelling of API in letsencrypt panel [SME: 12864]
|
||||
|
||||
* Tue Dec 31 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-35.sme
|
||||
- fix PATH [SME: 12847]
|
||||
|
||||
* Tue Dec 31 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-34.sme
|
||||
- fix css warning xxcolor [SME: 12844]
|
||||
- update CSP style rules [SME: 12840]
|
||||
|
||||
* Mon Dec 30 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-33.sme
|
||||
- host locally flag-icon.min.css 3.5.0 [SME: 12845]
|
||||
- remove onclick to comply with strict CSP [SME: 12846]
|
||||
- add CSP rules with specific hash [SME: 12840]
|
||||
|
||||
* Wed Dec 18 2024 Brian Read <brianr@koozali.org> 11.0.0-32.sme
|
||||
- Fix for User and localnetwork panel [SME: 6278]
|
||||
- Fix menu entry for proxy to stop it moving
|
||||
|
||||
* Tue Dec 17 2024 Brian Read <brianr@koozali.org> 11.0.0-31.sme
|
||||
- Edit html to avoid w3c html validation warnings [SME: 6278]
|
||||
|
||||
|
Reference in New Issue
Block a user