Compare commits
8 Commits
11_0_0-21_
...
11_0_0-27_
Author | SHA1 | Date | |
---|---|---|---|
fbdf3170ec | |||
87d1d072c0 | |||
d49db26f26 | |||
c4f9d67abc | |||
fe62bd3e39 | |||
df6d21dbc9 | |||
9c9592f861 | |||
4d2097d2da |
@@ -27,7 +27,14 @@ use SrvMngr::Model::Main;
|
||||
|
||||
use SrvMngr::Plugin::WithoutCache;
|
||||
|
||||
our $VERSION = '1.420';
|
||||
#this is overwrittrn with the "release" by the spec file - release can be "99.el8.sme"
|
||||
our $VERSION = '';
|
||||
#Extract the release value
|
||||
if ($VERSION =~ /^(\d+)/) {
|
||||
$VERSION = $1; # $1 contains the matched numeric digits
|
||||
} else {
|
||||
$VERSION = '999' #No leading numeric digits found
|
||||
}
|
||||
$VERSION = eval $VERSION;
|
||||
|
||||
use Exporter 'import';
|
||||
|
@@ -57,12 +57,14 @@ sub do_display {
|
||||
|
||||
$mai_datas{'trt'} = $trt;
|
||||
|
||||
if ( $trt eq 'ACC' ) {
|
||||
$dest = 'emailaccess';
|
||||
$mai_datas{fetchmailmethod} = $cdb->get_prop('fetchmail', 'Method');
|
||||
}
|
||||
if ( $trt eq 'ACC' )
|
||||
{
|
||||
$dest = 'emailaccess';
|
||||
$mai_datas{fetchmailmethod} = $cdb->get_prop('fetchmail', 'Method');
|
||||
}
|
||||
|
||||
if ( $trt eq 'FIL' ) {
|
||||
if ( $trt eq 'FIL' )
|
||||
{
|
||||
$dest = 'emailfilter';
|
||||
$mai_datas{'virusstatus'} = $c->get_virus_status();
|
||||
$mai_datas{'spamstatus'} = $cdb->get_prop('spamassassin', 'status');
|
||||
@@ -72,9 +74,10 @@ sub do_display {
|
||||
$mai_datas{spamsortspam} = $cdb->get_prop('spamassassin', 'SortSpam');
|
||||
$mai_datas{spamsubjecttag} = $cdb->get_prop('spamassassin', 'SubjectTag');
|
||||
$mai_datas{spamsubject} = $cdb->get_prop('spamassassin', 'Subject');
|
||||
}
|
||||
}
|
||||
|
||||
if ( $trt eq 'REC' ) {
|
||||
if ( $trt eq 'REC' )
|
||||
{
|
||||
$dest = 'emailreceive';
|
||||
$mai_datas{fetchmailmethod} = $cdb->get_prop('fetchmail', 'Method');
|
||||
$mai_datas{freqoffice} = $cdb->get_prop('fetchmail', 'FreqOffice');
|
||||
@@ -86,9 +89,10 @@ sub do_display {
|
||||
$mai_datas{specifyheader} = get_secondary_mail_use_envelope();
|
||||
$mai_datas{secondarymailenvelope} = $cdb->get_prop('fetchmail', 'SecondaryMailEnvelope');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if ( $trt eq 'DEL' ) {
|
||||
if ( $trt eq 'DEL' )
|
||||
{
|
||||
$dest = 'emaildeliver';
|
||||
$mai_datas{emailunknownuser} = $cdb->get_value('EmailUnknownUser') || '"returntosender';
|
||||
$mai_datas{delegatemailserver} = $cdb->get_value('DelegateMailServer');
|
||||
@@ -96,7 +100,7 @@ sub do_display {
|
||||
$mai_datas{smtpauthproxystatus} = $cdb->get_prop('smtp-auth-proxy', 'status') || 'disabled';
|
||||
$mai_datas{smtpauthproxyuserid} = $cdb->get_prop('smtp-auth-proxy', 'Userid') || '';
|
||||
$mai_datas{smtpauthproxypassword} = $cdb->get_prop('smtp-auth-proxy', 'Passwd') || '';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$c->stash( title => $title, notif => $notif, mai_datas => \%mai_datas );
|
||||
@@ -120,98 +124,107 @@ sub do_update {
|
||||
|
||||
my ($dest, $res, $result) = '';
|
||||
|
||||
if ( $trt eq 'ACC' ) {
|
||||
if ( $trt eq 'ACC' )
|
||||
{
|
||||
$dest = 'emailaccess';
|
||||
# $mai_datas{xxx} = $c->param('XXX');
|
||||
|
||||
# controls
|
||||
# $res = xxxxxxx( $c );
|
||||
# $result .= $res unless $res eq 'OK';
|
||||
|
||||
$dest = 'emailaccess';
|
||||
# $mai_datas{xxx} = $c->param('XXX');
|
||||
if ( ! $result )
|
||||
{
|
||||
$res = $c->change_settings_access();
|
||||
$result .= $res unless $res eq 'OK';
|
||||
if ( ! $result )
|
||||
{
|
||||
$result = $c->l('mai_SUCCESS');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# controls
|
||||
# $res = xxxxxxx( $c );
|
||||
# $result .= $res unless $res eq 'OK';
|
||||
if ( $trt eq 'FIL' )
|
||||
{
|
||||
$dest = 'emailfilter';
|
||||
# $mai_datas{xxx} = $c->param('XXX');
|
||||
|
||||
# controls
|
||||
# $res = zzzzzz( $c );
|
||||
# $result .= $res unless $res eq 'OK';
|
||||
|
||||
if ( ! $result ) {
|
||||
$res = $c->change_settings_access();
|
||||
$result .= $res unless $res eq 'OK';
|
||||
if ( ! $result ) {
|
||||
$result = $c->l('mai_SUCCESS');
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( ! $result )
|
||||
{
|
||||
$res = $c->change_settings_filtering();
|
||||
$result .= $res unless $res eq 'OK';
|
||||
if ( ! $result )
|
||||
{
|
||||
$result = $c->l('mai_SUCCESS');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( $trt eq 'FIL' ) {
|
||||
if ( $trt eq 'REC' )
|
||||
{
|
||||
$dest = 'emailreceive';
|
||||
# $mai_datas{xxx} = $c->param('XXX');
|
||||
|
||||
# controls
|
||||
# $res = yyyyyyyyy( $c );
|
||||
# $result .= $res unless $res eq 'OK';
|
||||
|
||||
$dest = 'emailfilter';
|
||||
# $mai_datas{xxx} = $c->param('XXX');
|
||||
if ( ! $result )
|
||||
{
|
||||
$res = $c->change_settings_reception();
|
||||
$result .= $res unless $res eq 'OK';
|
||||
if ( ! $result )
|
||||
{
|
||||
$result = $c->l('mai_SUCCESS');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# controls
|
||||
# $res = zzzzzz( $c );
|
||||
# $result .= $res unless $res eq 'OK';
|
||||
if ( $trt eq 'DEL' )
|
||||
{
|
||||
$dest = 'emaildeliver';
|
||||
# $mai_datas{xxx} = $c->param('XXX');
|
||||
|
||||
# controls
|
||||
$res = $c->ip_number_or_blank( $c->param('DelegateMailServer') );
|
||||
$result .= $res . ' DMS <br>' unless $res eq 'OK';
|
||||
|
||||
if ( ! $result ) {
|
||||
$res = $c->change_settings_filtering();
|
||||
$result .= $res unless $res eq 'OK';
|
||||
if ( ! $result ) {
|
||||
$result = $c->l('mai_SUCCESS');
|
||||
}
|
||||
}
|
||||
}
|
||||
$res = $c->validate_smarthost( $c->param('SMTPSmartHost') );
|
||||
$result .= $res . ' SH <br>' unless $res eq 'OK';
|
||||
|
||||
if ( $trt eq 'REC' ) {
|
||||
$res = $c->nonblank_if_smtpauth( $c->param('SMTPSmartHost') );
|
||||
$result .= $res . ' SH <br>' unless $res eq 'OK';
|
||||
|
||||
$dest = 'emailreceive';
|
||||
# $mai_datas{xxx} = $c->param('XXX');
|
||||
$res = $c->nonblank_if_smtpauth( $c->param('SMTPAUTHPROXY_Userid') );
|
||||
$result .= $res . ' USR <br>' unless $res eq 'OK';
|
||||
|
||||
# controls
|
||||
# $res = yyyyyyyyy( $c );
|
||||
# $result .= $res unless $res eq 'OK';
|
||||
$res = $c->nonblank_if_smtpauth( $c->param('SMTPAUTHPROXY_Passwd') );
|
||||
$result .= $res . ' PWD <br>' unless $res eq 'OK';
|
||||
|
||||
if ( ! $result ) {
|
||||
$res = $c->change_settings_reception();
|
||||
$result .= $res unless $res eq 'OK';
|
||||
if ( ! $result ) {
|
||||
$result = $c->l('mai_SUCCESS');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( $trt eq 'DEL' ) {
|
||||
|
||||
$dest = 'emaildeliver';
|
||||
# $mai_datas{xxx} = $c->param('XXX');
|
||||
|
||||
# controls
|
||||
$res = $c->ip_number_or_blank( $c->param('DelegateMailServer') );
|
||||
$result .= $res . ' DMS <br>' unless $res eq 'OK';
|
||||
|
||||
$res = $c->validate_smarthost( $c->param('SMTPSmartHost') );
|
||||
$result .= $res . ' SH <br>' unless $res eq 'OK';
|
||||
|
||||
$res = $c->nonblank_if_smtpauth( $c->param('SMTPSmartHost') );
|
||||
$result .= $res . ' SH <br>' unless $res eq 'OK';
|
||||
|
||||
$res = $c->nonblank_if_smtpauth( $c->param('SMTPAUTHPROXY_Userid') );
|
||||
$result .= $res . ' USR <br>' unless $res eq 'OK';
|
||||
|
||||
$res = $c->nonblank_if_smtpauth( $c->param('SMTPAUTHPROXY_Passwd') );
|
||||
$result .= $res . ' PWD <br>' unless $res eq 'OK';
|
||||
|
||||
if ( ! $result ) {
|
||||
$res = $c->change_settings_delivery();
|
||||
$result .= $res unless $res eq 'OK';
|
||||
if ( ! $result ) {
|
||||
$result = $c->l('mai_SUCCESS');
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( ! $result )
|
||||
{
|
||||
$res = $c->change_settings_delivery();
|
||||
$result .= $res unless $res eq 'OK';
|
||||
if ( ! $result )
|
||||
{
|
||||
$result = $c->l('mai_SUCCESS');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# common part
|
||||
|
||||
if ($res ne 'OK') {
|
||||
$c->stash( error => $result );
|
||||
$c->stash( title => $title, mai_datas => \%mai_datas );
|
||||
return $c->render( $dest );
|
||||
}
|
||||
if ($res ne 'OK')
|
||||
{
|
||||
$c->stash( error => $result );
|
||||
$c->stash( title => $title, mai_datas => \%mai_datas );
|
||||
return $c->render( $dest );
|
||||
}
|
||||
|
||||
my $message = "emailsettings updates $trt DONE";
|
||||
$c->app->log->info($message);
|
||||
@@ -399,7 +412,7 @@ sub get_current_webmail_status {
|
||||
|
||||
my $MysqlStatus = $cdb->get_prop('mariadb', 'status') || 'disabled';
|
||||
|
||||
my $PHPStatus = $cdb->get_prop('php81', 'status') || 'disabled';
|
||||
my $PHPStatus = $cdb->get_prop('php81-php-fpm', 'status') || 'disabled';
|
||||
|
||||
my $Networkaccess = $cdb->get_prop('roundcube','access') || 'disabled';
|
||||
|
||||
@@ -515,7 +528,7 @@ sub get_webmail_options {
|
||||
my %options = (
|
||||
disabled => 'DISABLED',
|
||||
enabledSSL => 'mai_ENABLED_SECURE_ONLY',
|
||||
localnetworkSSL => 'mai_ONLY_LOCAL_NETWORK_SSL')
|
||||
localnetworkSSL => 'mai_ONLY_LOCAL_NETWORK_SSL');
|
||||
|
||||
return \%options;
|
||||
}
|
||||
@@ -749,7 +762,7 @@ sub change_settings_delivery {
|
||||
sub change_settings_access {
|
||||
|
||||
my $c = shift;
|
||||
$cdb = esmith::ConfigDB->open || die "Couldn't open config db";
|
||||
$cdb = esmith::ConfigDB->open || die "Couldn't open config db";
|
||||
|
||||
my $pop3Access = ($c->param('POPAccess') || 'private');
|
||||
if ($pop3Access eq 'disabled') {
|
||||
@@ -801,14 +814,14 @@ sub change_settings_access {
|
||||
|
||||
my $webmail = ($c->param('WebMail') || 'disabled');
|
||||
if ( $webmail eq "enabledSSL" ) {
|
||||
$cdb->set_prop('php81',"status", "enabled" );
|
||||
$cdb->set_prop('php81-php-fpm',"status", "enabled" );
|
||||
$cdb->set_prop('mariadb',"status", "enabled" );
|
||||
$cdb->set_prop('roundcube',"status", 'enabled' );
|
||||
$cdb->set_prop('roundcube',"access", "public" );
|
||||
}
|
||||
|
||||
elsif ( $webmail eq "localnetworkSSL" ) {
|
||||
$cdb->set_prop('php81',"status", "enabled" );
|
||||
$cdb->set_prop('php81-php-fpm',"status", "enabled" );
|
||||
$cdb->set_prop('mariadb',"status", "enabled" );
|
||||
$cdb->set_prop('roundcube',"status", 'enabled' );
|
||||
$cdb->set_prop('roundcube',"access", "private" );
|
||||
@@ -844,7 +857,7 @@ sub change_settings_filtering {
|
||||
Subject
|
||||
SubjectTag) )
|
||||
{
|
||||
$cdb->set_prop('spamassassin', $param, $c->param("Spam$param"));
|
||||
$cdb->set_prop('spamassassin', $param, $c->param("Spam$param"));
|
||||
}
|
||||
|
||||
my $patterns_status = $c->adjust_patterns() ? 'enabled' : 'disabled';
|
||||
@@ -852,7 +865,7 @@ sub change_settings_filtering {
|
||||
|
||||
unless ( system( "/sbin/e-smith/signal-event", "email-update" ) == 0 )
|
||||
{
|
||||
return $c->l('mai_ERROR_UPDATING_CONFIGURATION');
|
||||
return $c->l('mai_ERROR_UPDATING_CONFIGURATION');
|
||||
}
|
||||
|
||||
return 'OK';
|
||||
|
@@ -0,0 +1,46 @@
|
||||
package SrvMngr::Controller::Roundcubepanel;
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
# heading : System
|
||||
# description : Roundcube webmail
|
||||
# navigation : 99999 9999
|
||||
#----------------------------------------------------------------------
|
||||
#----------------------------------------------------------------------
|
||||
# name : roundcubepanel, method : get, url : /roundcubepanel, ctlact : Roundcubepanel#main
|
||||
#
|
||||
# routes : end
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Mojo::Base 'Mojolicious::Controller';
|
||||
|
||||
use Locale::gettext;
|
||||
use SrvMngr::I18N;
|
||||
use SrvMngr qw(theme_list init_session);
|
||||
|
||||
#use SrvMngr::Model::Main;
|
||||
|
||||
|
||||
sub main {
|
||||
|
||||
my $c = shift;
|
||||
$c->app->log->info($c->log_req);
|
||||
|
||||
my $title = $c->l('Roundcube Webmail');
|
||||
my $roundcube_url = $c->param('url');
|
||||
my $roundcube_height = $c->param('height') | 600;
|
||||
$c->stash( title => $title, modul => $roundcube_url, height => $roundcube_height );
|
||||
$c->render(template => 'roundcube');
|
||||
|
||||
}
|
||||
|
||||
sub getroundcubeurl {
|
||||
my $c = shift;
|
||||
my $url = shift;
|
||||
return "/smanager/roundcube?url=$url";
|
||||
}
|
||||
|
||||
|
||||
1;
|
@@ -35,6 +35,19 @@
|
||||
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.5.0/css/flag-icon.min.css">
|
||||
%= stylesheet '/css/sme-jquery-overrides.css'
|
||||
|
||||
<style>
|
||||
#busy-indicator {
|
||||
display: none;
|
||||
margin-top: 10px;
|
||||
font-weight: bold;
|
||||
color: red;
|
||||
}
|
||||
.busy {
|
||||
cursor: wait; /* Change the cursor to a 'wait' cursor */
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
@@ -94,6 +107,22 @@
|
||||
% }
|
||||
|
||||
%= javascript '/js/sme-dataTable-setup.js'
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// Handle form submission for any form
|
||||
$('form').on('submit', function(event) {
|
||||
// Disable the submit button
|
||||
$(this).find('button[type="submit"], input[type="submit"]').prop('disabled', true);
|
||||
// Show the busy indicator
|
||||
// $('#busy-indicator').show();
|
||||
|
||||
// Change the cursor to "wait"
|
||||
$('body').addClass('busy');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -3,7 +3,7 @@
|
||||
<a href="https://mojolicious.org" target="_blank"><img src="images/sme-mojo-logo-white.png" style="position:relative;"></a>
|
||||
<font class="sme-copyright">
|
||||
% if ( $c->is_logged_in ) {
|
||||
SME Server <%= session 'releaseVersion' %> - Manager <%= $c->app->VERSION %>
|
||||
SME Server <%= session 'releaseVersion' %>-<%= $c->app->VERSION %> Manager II
|
||||
% }
|
||||
<br>Copyright 1999-2006 Mitel Corporation<br>
|
||||
%= session 'copyRight'
|
||||
|
@@ -76,11 +76,17 @@
|
||||
% $actionRemove = "<a href='useraccountsd?CsrfDef=TOKEN&trt=DEL&user=" . $username . "'>" . "<button class='sme-remove-button' title=".l("REMOVE").">".l("REMOVE")."</button></a>";
|
||||
% }
|
||||
% }
|
||||
%
|
||||
% my $thisdomain = session 'SystemName';
|
||||
% $thisdomain .= ".".session 'DomainName';
|
||||
|
||||
<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="<%= "https://sme11.thereadclan.me.uk/" %>roundcube?_user=<%= $username %>"><button class="sme-email-button" title="<%= l('EMAIL') %>"><%= l('EMAIL') %></button></a>
|
||||
<a href="<%= "roundcubepanel/?url=https://".$thisdomain."/" %>roundcube?_user=<%= $username %>"><button class="sme-email-button" title="<%= l('EMAIL') %>"><%= l('EMAIL') %></button></a>
|
||||
</td>
|
||||
</tr>
|
||||
% }
|
||||
|
@@ -0,0 +1,39 @@
|
||||
% layout 'default', title => "Sme server 2 - roundcube";
|
||||
|
||||
% content_for 'module' => begin
|
||||
|
||||
|
||||
<div id='roundcube' class='roundcube roundcube-panel'>
|
||||
% if ($config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
</p>
|
||||
% }
|
||||
% if ( stash 'error' ) {
|
||||
<br><div class=sme-error>
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
</div>
|
||||
%}
|
||||
<h1> roundcube - <%=$title %></h1><br>
|
||||
<p>If the roundcube panel does not appear after logging in, then please check your password.</p><br />
|
||||
|
||||
% my $thisdomain = session 'SystemName';
|
||||
% $thisdomain .= ".".session 'DomainName';
|
||||
% my $url = $c->stash('modul');
|
||||
% my $username = 'admin';
|
||||
% if ($url =~ /[?&]_user=([^&]+)/) {
|
||||
% $username = $1;
|
||||
%}
|
||||
|
||||
<a href="<%= "https://".$thisdomain."/" %>roundcube?_user=<%= $username %>"><button class="sme-fullwindow1-button" width=20em title="<%= l('Full Window') %>"><%= l('Full Window') %></button></a>
|
||||
|
||||
% my $height = $c->stash('height') | '600px';
|
||||
% if ($height !~ /px$/) { $height = $height.'px';}
|
||||
% if ($url eq "") {
|
||||
% $url = "https://".$thisdomain."/roundcube";
|
||||
%}
|
||||
<object id="roundcube" class="roundcube" data="<%=$url %>" style="width:99%;height:<%= $height %>;" title="<%= $c->stash('title') %>" type="text/html" ><%= $c->stash('title') %> not found</object>
|
||||
</div>
|
||||
|
||||
|
||||
%end
|
@@ -2,7 +2,7 @@ Summary: Sme server navigation module : manager 2
|
||||
%define name smeserver-manager
|
||||
Name: %{name}
|
||||
%define version 11.0.0
|
||||
%define release 21
|
||||
%define release 27
|
||||
Version: %{version}
|
||||
Release: %{release}%{?dist}
|
||||
License: GPL
|
||||
@@ -49,6 +49,11 @@ This RPM contributes the navigation bars for the smeserver-manager. New Mojolici
|
||||
%setup
|
||||
|
||||
%build
|
||||
|
||||
#extract the release number and drop it in to the version for SM2 footer.
|
||||
sed -i "s/our \$VERSION = '[^']*'/our \$VERSION = '%{release}'/g" root/usr/share/smanager/lib/SrvMngr.pm
|
||||
|
||||
|
||||
perl createlinks
|
||||
|
||||
# Force creation of potentially empty directories
|
||||
@@ -108,6 +113,24 @@ true
|
||||
%defattr(-,root,root)
|
||||
|
||||
%changelog
|
||||
* Sun Oct 06 2024 Brian Read <brianr@koozali.org> 11.0.0-27.sme
|
||||
- Add in change to _user_list.html.ep for access to roundcube email from useraccounts [SME: 12751]
|
||||
|
||||
* Fri Oct 04 2024 Brian Read <brianr@koozali.org> 11.0.0-26.sme
|
||||
- Add in email link to roundcube from user accounts [SME: 12751]
|
||||
|
||||
* Wed Oct 02 2024 Brian Read <brianr@koozali.org> 11.0.0-25.sme
|
||||
- Add in cursor change when save/submit pressed to indicate processing [SME: 12748]
|
||||
|
||||
* Wed Oct 02 2024 Brian Read <brianr@koozali.org> 11.0.0-24.sme
|
||||
- Messed up build - finger trouble [SME: 12753]
|
||||
|
||||
* Wed Oct 02 2024 Brian Read <brianr@koozali.org> 11.0.0-23.sme
|
||||
- Add release number to footer [SME: 12753]
|
||||
|
||||
* Tue Sep 24 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-22.sme
|
||||
- fix typos, and tidy tabs [SME: 12744]
|
||||
|
||||
* Mon Sep 23 2024 Brian Read <brianr@koozali.org> 11.0.0-21.sme
|
||||
- Remove both option for webmail [SME: 12744]
|
||||
- Add in re-open DB for portforwarding and email settings.
|
||||
|
Reference in New Issue
Block a user