Compare commits
2 Commits
11_0_0-18_
...
11_0_0-20_
Author | SHA1 | Date | |
---|---|---|---|
785ebcfaaf | |||
127ea74a8b |
@@ -40,5 +40,10 @@
|
||||
$OUT .= " Require ip $localAccess $externalSSLAccess\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";
|
||||
$OUT .= " </LocationMatch>\n";
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -25,6 +25,7 @@ use SrvMngr::Plugin::I18N;
|
||||
use SrvMngr::I18N;
|
||||
use SrvMngr::Model::Main;
|
||||
|
||||
use SrvMngr::Plugin::WithoutCache;
|
||||
|
||||
our $VERSION = '1.420';
|
||||
$VERSION = eval $VERSION;
|
||||
@@ -210,6 +211,8 @@ sub setup_plugins {
|
||||
$self->plugin('TagHelpers');
|
||||
|
||||
$self->plugin('RenderFile');
|
||||
|
||||
$self->plugin('SrvMngr::Plugin::WithoutCache');
|
||||
|
||||
# CSRF protection if production mode
|
||||
# $self->plugin('Mojolicious::Plugin::CSRFDefender' => {
|
||||
|
@@ -395,19 +395,16 @@ sub get_current_webmail_status {
|
||||
# determine status of webmail
|
||||
my $WebmailStatus = "disabled";
|
||||
|
||||
my $IMPStatus = $cdb->get_prop('imp', 'status') || 'disabled';
|
||||
|
||||
my $HordeStatus = $cdb->get_prop('horde', 'status') || 'disabled';
|
||||
my $RoundcubeStatus = $cdb->get_prop('roundcube', 'status') || 'disabled';
|
||||
|
||||
my $MysqlStatus = $cdb->get_prop('mariadb', 'status') || 'disabled';
|
||||
|
||||
my $PHPStatus = $cdb->get_prop('php', 'status') || 'disabled';
|
||||
my $PHPStatus = $cdb->get_prop('php81', 'status') || 'disabled';
|
||||
|
||||
my $Networkaccess = $cdb->get_prop('horde','access') || 'disabled';
|
||||
my $Networkaccess = $cdb->get_prop('roundcube','access') || 'disabled';
|
||||
|
||||
# all four components must be on for webmail to be working
|
||||
if ( ( $IMPStatus eq "enabled" )
|
||||
&& ( $HordeStatus eq "enabled" )
|
||||
# all 3 components must be on for webmail to be working
|
||||
if ( ( $RoundcubeStatus eq "enabled" )
|
||||
&& ( $MysqlStatus eq "enabled" )
|
||||
&& ( $PHPStatus eq "enabled" )
|
||||
&& ( $Networkaccess eq "public"))
|
||||
@@ -415,8 +412,7 @@ sub get_current_webmail_status {
|
||||
$WebmailStatus = "enabledSSL";
|
||||
}
|
||||
|
||||
elsif ( ( $IMPStatus eq "enabled" )
|
||||
&& ( $HordeStatus eq "enabled" )
|
||||
elsif ( ( $RoundcubeStatus eq "enabled" )
|
||||
&& ( $MysqlStatus eq "enabled" )
|
||||
&& ( $PHPStatus eq "enabled" )
|
||||
&& ( $Networkaccess eq "private" ))
|
||||
@@ -803,37 +799,27 @@ sub change_settings_access {
|
||||
|
||||
my $webmail = ($c->param('WebMail') || 'disabled');
|
||||
if ( $webmail eq "enabled" ) {
|
||||
$cdb->set_prop('php', "status", $webmail );
|
||||
$cdb->set_prop('php81', "status", $webmail );
|
||||
$cdb->set_prop('mariadb',"status", $webmail );
|
||||
$cdb->set_prop('imp',"status", $webmail );
|
||||
$cdb->set_prop('horde', "status", $webmail );
|
||||
$cdb->set_prop('imp',"access", "full" );
|
||||
$cdb->set_prop('horde',"access", "public" );
|
||||
$cdb->set_prop('horde',"HttpsOnly", "no" );
|
||||
$cdb->set_prop('roundcube',"status", $webmail );
|
||||
$cdb->set_prop('roundcube',"access", "public" );
|
||||
}
|
||||
elsif ( $webmail eq "enabledSSL" ) {
|
||||
$cdb->set_prop('php',"status", "enabled" );
|
||||
$cdb->set_prop('php81',"status", "enabled" );
|
||||
$cdb->set_prop('mariadb',"status", "enabled" );
|
||||
$cdb->set_prop('imp',"status", 'enabled' );
|
||||
$cdb->set_prop('horde',"status", 'enabled' );
|
||||
$cdb->set_prop('imp',"access", "SSL" );
|
||||
$cdb->set_prop('horde',"access", "public" );
|
||||
$cdb->set_prop('horde',"HttpsOnly", "yes" );
|
||||
$cdb->set_prop('roundcube',"status", 'enabled' );
|
||||
$cdb->set_prop('roundcube',"access", "public" );
|
||||
}
|
||||
|
||||
elsif ( $webmail eq "localnetworkSSL" ) {
|
||||
$cdb->set_prop('php',"status", "enabled" );
|
||||
$cdb->set_prop('php81',"status", "enabled" );
|
||||
$cdb->set_prop('mariadb',"status", "enabled" );
|
||||
$cdb->set_prop('imp',"status", 'enabled' );
|
||||
$cdb->set_prop('horde',"status", 'enabled' );
|
||||
$cdb->set_prop('imp',"access", "SSL" );
|
||||
$cdb->set_prop('horde',"access", "private" );
|
||||
$cdb->set_prop('horde',"HttpsOnly", "yes" );
|
||||
$cdb->set_prop('roundcube',"status", 'enabled' );
|
||||
$cdb->set_prop('roundcube',"access", "private" );
|
||||
}
|
||||
|
||||
else {
|
||||
$cdb->set_prop('imp',"status", 'disabled' );
|
||||
$cdb->set_prop('horde',"status", 'disabled' );
|
||||
$cdb->set_prop('roundcube',"status", 'disabled' );
|
||||
}
|
||||
|
||||
unless ( system( "/sbin/e-smith/signal-event", "email-update" ) == 0 ) {
|
||||
|
73
root/usr/share/smanager/lib/SrvMngr/Plugin/Cache.pm
Normal file
73
root/usr/share/smanager/lib/SrvMngr/Plugin/Cache.pm
Normal file
@@ -0,0 +1,73 @@
|
||||
package SrvMngr::Plugin::Cache;
|
||||
use Mojo::Base -base;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Mojolicious::Plugin::Renderer::WithoutCache::Cache - Mojo::Cache that doesn't cache
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
Version 0.04
|
||||
|
||||
=cut
|
||||
|
||||
our $VERSION = '0.04';
|
||||
$VERSION = eval $VERSION;
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
You probably don't want to use this directly.
|
||||
|
||||
my $cache = Mojolicious::Plugin::Renderer::WithoutCache::Cache->new;
|
||||
# this cache does nothing
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
A cache object that's compatible to Mojo::Cache but does nothing. It does
|
||||
not save or return any values. It's always empty.
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 get
|
||||
|
||||
Does nothing. Returns C<undef>.
|
||||
|
||||
=cut
|
||||
|
||||
sub get {}
|
||||
|
||||
=head2 set
|
||||
|
||||
Does nothing. Returns C<$self> so chaining is possible.
|
||||
|
||||
=cut
|
||||
|
||||
sub set { shift; }
|
||||
|
||||
=head2 max_keys
|
||||
|
||||
Always returns zero. Can't be set. We don't want any keys.
|
||||
|
||||
=cut
|
||||
|
||||
sub max_keys { 0 }
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
simbabque, C<< <simbabque at cpan.org> >>
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature requests through an issue
|
||||
on github at L<https://github.com/simbabque/Mojolicious-Plugin-Renderer-WithoutCache/issues>.
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
Copyright (C) simbabque.
|
||||
|
||||
This library is free software; you can redistribute it and/or modify
|
||||
it under the same terms as Perl itself.
|
||||
|
||||
=cut
|
||||
|
||||
1;
|
94
root/usr/share/smanager/lib/SrvMngr/Plugin/WithoutCache.pm
Normal file
94
root/usr/share/smanager/lib/SrvMngr/Plugin/WithoutCache.pm
Normal file
@@ -0,0 +1,94 @@
|
||||
package SrvMngr::Plugin::WithoutCache;
|
||||
use Mojo::Base 'Mojolicious::Plugin';
|
||||
use SrvMngr::Plugin::Cache;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Mojolicious::Plugin::Renderer::WithoutCache - Disable the template cache in your Mojo app
|
||||
|
||||
=begin html
|
||||
|
||||
<p>
|
||||
<a href="https://travis-ci.org/simbabque/Mojolicious-Plugin-Renderer-WithoutCache"><img src="https://travis-ci.org/simbabque/Mojolicious-Plugin-Renderer-WithoutCache.svg?branch=master"></a>
|
||||
<a href='https://coveralls.io/github/simbabque/Mojolicious-Plugin-Renderer-WithoutCache?branch=master'><img src='https://coveralls.io/repos/github/simbabque/Mojolicious-Plugin-Renderer-WithoutCache/badge.svg?branch=master' alt='Coverage Status' /></a>
|
||||
</p>
|
||||
|
||||
=end html
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
Version 0.04
|
||||
|
||||
=cut
|
||||
|
||||
our $VERSION = '0.04';
|
||||
$VERSION = eval $VERSION;
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
This plugin turns off the renderer's cache in L<Mojolicious> and L<Mojo::Lite> applications.
|
||||
|
||||
use Mojolicious::Lite;
|
||||
plugin 'Renderer::WithoutCache';
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This does what it says on the box. It turns off caching for the L<Mojolicious::Renderer>
|
||||
or any other renderer that's inside C<$app-E<gt>renderer> by injecting a cache object that
|
||||
does not do anything. This is superior to setting the C<max_keys> of L<Mojo::Cache>
|
||||
to C<0> if you plan to do a lot of uncached requests, because L<Mojolicious::Renderer>
|
||||
will still try to cache, and every time L<Mojo::Cache> sets a value in the cache it
|
||||
looks at the C<max_keys>, and then stops.
|
||||
|
||||
Doing nothing at all is cheaper. But not a lot really.
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 register
|
||||
|
||||
Register the plugin in a L<Mojolicious> application.
|
||||
|
||||
$plugin->register(Mojolicious->new);
|
||||
|
||||
=cut
|
||||
|
||||
sub register {
|
||||
my ( $self, $app ) = @_;
|
||||
$app->renderer->cache( SrvMngr::Plugin::Cache->new );
|
||||
}
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
simbabque, C<< <simbabque at cpan.org> >>
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature requests through an issue
|
||||
on github at L<https://github.com/simbabque/Mojolicious-Plugin-Renderer-WithoutCache/issues>.
|
||||
|
||||
=head1 SUPPORT
|
||||
|
||||
You can find documentation for this module with the perldoc command.
|
||||
|
||||
perldoc Mojolicious::Plugin::Renderer::WithoutCache
|
||||
|
||||
=head2 Why would I want to turn off the cache?
|
||||
|
||||
I don't know.
|
||||
|
||||
=head1 ACKNOWLEDGEMENTS
|
||||
|
||||
This plugin was inspired by Tom Hunt asking about turning the cache off
|
||||
on L<Stack Overflow|http://stackoverflow.com/q/41750243/1331451>.
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
Copyright (C) simbabque.
|
||||
|
||||
This library is free software; you can redistribute it and/or modify
|
||||
it under the same terms as Perl itself.
|
||||
|
||||
=cut
|
||||
|
||||
1;
|
||||
|
@@ -2,7 +2,7 @@ Summary: Sme server navigation module : manager 2
|
||||
%define name smeserver-manager
|
||||
Name: %{name}
|
||||
%define version 11.0.0
|
||||
%define release 18
|
||||
%define release 20
|
||||
Version: %{version}
|
||||
Release: %{release}%{?dist}
|
||||
License: GPL
|
||||
@@ -108,6 +108,13 @@ true
|
||||
%defattr(-,root,root)
|
||||
|
||||
%changelog
|
||||
* Mon Sep 23 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-20.sme
|
||||
- webmail switch panel to use roundcube [SME: 12742]
|
||||
- prevent browser from caching [SME: 12695]
|
||||
|
||||
* Thu Sep 05 2024 Brian Read <brianr@koozali.org> 11.0.0-19.sme
|
||||
- Add in mojo plugin WithoutCache [SME: 12695]
|
||||
|
||||
* Sun Aug 25 2024 Brian Read <brianr@koozali.org> 11.0.0-18.sme
|
||||
- Move flag to emojii from downloaded jpg. Fix singleton locale issue[SME: 12706]
|
||||
|
||||
|
Reference in New Issue
Block a user