Compare commits

...

5 Commits

Author SHA1 Message Date
774b7ab4ee * Wed Nov 05 2025 Brian Read <brianr@koozali.org> 11.0.0-132.sme
- Supress webmail option on menu and in user accounts if webmail not enabled [SME: 12997]
2025-11-05 12:15:55 +00:00
99dc0a15da * Tue Nov 04 2025 Brian Read <brianr@koozali.org> 11.0.0-131.sme
- Add fix for IE browser local/language detect [SME: 13039]
2025-11-04 16:12:44 +00:00
0dfbdf3d36 * Tue Nov 04 2025 Brian Read <brianr@koozali.org> 11.0.0-130.sme
- Adjust heading so that no white line under theme selector and move theme button in [SME: 13057]
2025-11-04 13:27:51 +00:00
820551b076 * Tue Nov 04 2025 Brian Read <brianr@koozali.org> 11.0.0-129.sme
- Useraccounts: Clean up forward email sub and make sure blank is errored  [SME: 13056]
2025-11-04 13:00:26 +00:00
1a37667a9c * Tue Nov 04 2025 Brian Read <brianr@koozali.org> 11.0.0-128.sme
- Move group table to under others in User accounts setup panel [SME: 13068]
2025-11-04 12:17:51 +00:00
10 changed files with 85 additions and 47 deletions

View File

@@ -17,6 +17,8 @@ use Data::Validate::IP qw(is_ipv4 is_ipv6);
use constant FALSE => 0;
use constant TRUE => 1;
our @EXPORT_OK = qw(get_current_webmail_status);
#The most common ones - open DB when required.
our $cdb;

View File

@@ -179,7 +179,7 @@ sub do_update {
$res = $c->pseudonym_clash($first);
$result .= $res unless $res eq 'OK';
if ($mail) {
if (defined $mail) {
$res = $c->emailforward($mail);
$result .= $res unless $res eq 'OK';
}
@@ -217,7 +217,7 @@ sub do_update {
$res = $c->pseudonym_clash($first);
$result .= $res unless $res eq 'OK';
if ($mail) {
if (defined $mail) {
$res = $c->emailforward($mail);
$result .= $res unless $res eq 'OK';
}
@@ -554,27 +554,31 @@ sub pseudonym_clash {
sub emailforward {
my ($c, $data) = @_;
my $response = $c->email_simple($data);
#$c->app->log->info("emailformward called with $data!");
if ($response eq "OK") {
return "OK";
} elsif ($data eq "") {
# Trim whitespace from $data
$data =~ s/^\s+|\s+$//g if defined $data;
# Blank is ok, only if we're not forwarding, which means that the
# EmailForward param must be set to 'local'.
# Check simple email validation first
return "OK" if $c->email_simple($data) eq "OK";
# If trimmed data is empty
if ($data eq "") {
my $email_forward = $c->param('EmailForward') || '';
$email_forward =~ s/^\s+|\s+$//g;
return 'OK' if $email_forward eq 'local';
return $c->l('usr_CANNOT_CONTAIN_WHITESPACE');
} else {
return $c->l('usr_CANNOT_CONTAIN_WHITESPACE')
if ($data =~ /\s+/);
}
# Permit a local address.
return "OK" if $data =~ /^[a-zA-Z][a-zA-Z0-9\._\-]*$/;
return $c->l('usr_UNACCEPTABLE_CHARS');
} ## end else [ if ($response eq "OK")]
} ## end sub emailforward
# Reject if $data contains any whitespace inside
return $c->l('usr_CANNOT_CONTAIN_WHITESPACE') if $data =~ /\s/;
# Allow local address pattern
return "OK" if $data =~ /^[a-zA-Z][a-zA-Z0-9._-]*$/;
# Otherwise reject for unacceptable chars
return $c->l('usr_UNACCEPTABLE_CHARS');
}
sub get_groups {
my ($c) = shift;

View File

@@ -1 +1 @@
'rc_WEBMAIL_DISABLED' => 'Webmail is disabled in Email Settings panel',

View File

@@ -518,4 +518,9 @@ div.roundcube #roundcube{
/* Center aligned */
margin-left: auto!important;
margin-right: auto;
}
table.incolumn {
margin:auto;
color:red;
}

View File

@@ -122,6 +122,7 @@
max-width: 100%;
position: relative;
margin: auto;
margin-top:-20px;
}
#header2 {
@@ -290,4 +291,8 @@ background-color: #e8f3e1;
}
.busy {
cursor: wait; /* Change the cursor to a 'wait' cursor */
}
#swt_theme {
margin-left:10px;
}

View File

@@ -263,8 +263,12 @@ document.addEventListener('DOMContentLoaded', () => {
function displayLocaleAndFlag() {
// Get the browser locale
const userLocale = navigator.language || navigator.userLanguage;
const userLocale = navigator.languages && navigator.languages.length
? navigator.languages[0]
: navigator.language;
//alert(`User Locale: ${userLocale}`); // Alert the detected locale
console.log(navigator.languages); // Log language to console
const { flag, isUnknown, countryCode } = getFlagEmoji(userLocale);

View File

@@ -1,5 +1,7 @@
<div id='usr_list'>
% use constant FALSE => 0;
% use constant TRUE => 1;
% my $btn = l('usr_ADD_USER');
@@ -153,7 +155,9 @@
<%= $c->render_to_string( inline => $actionResetPw ) %>
<%= $c->render_to_string( inline => $actionLock ) %>
<%= $c->render_to_string( inline => $actionRemove ) %>
<%= $c->render_to_string( inline => $actionroundcube ) %>
% if ($c->SrvMngr::Controller::Emailsettings::get_current_webmail_status(FALSE) ne 'disabled'){
<%= $c->render_to_string( inline => $actionroundcube ) %>
% }
</td>
</tr>
% }

View File

@@ -131,7 +131,7 @@
%= l 'usr_GROUP_MEMBERSHIPS'
</span>
<span class=data>
<table class="sme-border "><thead>
<table class="sme-border incolumn"><thead>
<tr><th class='sme-border'>
%= l 'usr_MEMBER'
</th><th class='sme-border'>
@@ -182,4 +182,4 @@
% end
</div>
</div>

View File

@@ -1,8 +1,7 @@
% layout 'default', title => "Sme server 2 - roundcube";
% use constant FALSE => 0;
% use constant TRUE => 1;
% content_for 'module' => begin
<div id='roundcube' class='roundcube roundcube-panel module'>
% if (config->{debug} == 1) {
<p>
@@ -15,26 +14,26 @@
</div>
% }
<h1><%= $title %></h1><br>
<p>If the Webmail panel does not appear after logging in, then please check your password.</p><br />
% my $thisdomain = $c->req->url->to_abs->host;
% my $url = $c->stash('modul');
% if (!$url) {
% $url = $thisdomain . "/roundcube";
% if ($c->SrvMngr::Controller::Emailsettings::get_current_webmail_status(FALSE) eq 'disabled'){
<%= $c->render_to_string( inline => l('rc_WEBMAIL_DISABLED') ) %>
% } else {
<p>If the Webmail panel does not appear after logging in, then please check your password.</p><br />
% my $thisdomain = $c->req->url->to_abs->host;
% my $url = $c->stash('modul');
% if (!$url) {
% $url = $thisdomain . "/roundcube";
% }
% my $username = 'admin';
% if ($url =~ /[?&]_user=([^&]+)/) {
% $username = $1;
% }
% if (!($url =~ /https:/)) {
% $url = 'https://' . $url;
% }
<div class='roundcube'>
<a href="<%= "https://" . $thisdomain . "/" %>roundcube?_user=<%= $username %>"><button class="sme-fullwindow1-button" width=20em title="<%= l('Full Window') %>"><%= l('Full Window') %></button></a>
<object id="roundcube" data="<%= $url %>" title="<%= $c->stash('title') %>" type="text/html" ><%= $c->stash('title') %> not found</object>
</div>
% }
% my $username = 'admin';
% if ($url =~ /[?&]_user=([^&]+)/) {
% $username = $1;
% }
% if (!($url =~ /https:/)) {
% $url = 'https://' . $url;
% }
<div class='roundcube'>
<a href="<%= "https://" . $thisdomain . "/" %>roundcube?_user=<%= $username %>"><button class="sme-fullwindow1-button" width=20em title="<%= l('Full Window') %>"><%= l('Full Window') %></button></a>
<object id="roundcube" data="<%= $url %>" title="<%= $c->stash('title') %>" type="text/html" ><%= $c->stash('title') %> not found</object>
</div>
</div>
% end
% end

View File

@@ -2,7 +2,7 @@ Summary: Sme Server Configuration : Manager 2
%define name smeserver-manager
Name: %{name}
%define version 11.0.0
%define release 127
%define release 132
Version: %{version}
Release: %{release}%{?dist}
License: GPL
@@ -147,8 +147,23 @@ true
%defattr(-,root,root)
%changelog
* Wed Nov 05 2025 Brian Read <brianr@koozali.org> 11.0.0-132.sme
- Supress webmail option on menu and in user accounts if webmail not enabled [SME: 12997]
* Tue Nov 04 2025 Brian Read <brianr@koozali.org> 11.0.0-131.sme
- Add fix for IE browser local/language detect [SME: 13039]
* Tue Nov 04 2025 Brian Read <brianr@koozali.org> 11.0.0-130.sme
- Adjust heading so that no white line under theme selector and move theme button in [SME: 13057]
* Tue Nov 04 2025 Brian Read <brianr@koozali.org> 11.0.0-129.sme
- Useraccounts: Clean up forward email sub and make sure blank is errored [SME: 13056]
* Tue Nov 04 2025 Brian Read <brianr@koozali.org> 11.0.0-128.sme
- Move group table to under others in User accounts setup panel [SME: 13068]
* Tue Nov 04 2025 Brian Read <brianr@koozali.org> 11.0.0-127.sme
- Move same var declations to outside innner scope [SME: 13073]
- Group panel: Move same var declations to outside innner scope [SME: 13073]
* Tue Nov 04 2025 Brian Read <brianr@koozali.org> 11.0.0-126.sme
- Remove debugging dump in portforwarding which crashes if no data [SME: 13243]