Compare commits
4 Commits
11_0_0-18_
...
11_0_0-23_
Author | SHA1 | Date | |
---|---|---|---|
4d2097d2da | |||
44a9ecc0e1 | |||
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' => {
|
||||
|
@@ -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);
|
||||
@@ -395,19 +408,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-php-fpm', '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 +425,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" ))
|
||||
@@ -507,8 +516,7 @@ sub get_webmail_opt {
|
||||
|
||||
return [[ $c->l('DISABLED') => 'disabled' ],
|
||||
[ $c->l('mai_ENABLED_SECURE_ONLY') => 'enabledSSL' ],
|
||||
[ $c->l('mai_ONLY_LOCAL_NETWORK_SSL') => 'localnetworkSSL' ],
|
||||
[ $c->l('mai_ENABLED_BOTH') => 'public' ]];
|
||||
[ $c->l('mai_ONLY_LOCAL_NETWORK_SSL') => 'localnetworkSSL' ]];
|
||||
|
||||
}
|
||||
|
||||
@@ -519,10 +527,10 @@ sub get_webmail_options {
|
||||
|
||||
my %options = (
|
||||
disabled => 'DISABLED',
|
||||
enabledSSL => 'mai_ENABLED_SECURE_ONLY',
|
||||
localnetworkSSL => 'mai_ONLY_LOCAL_NETWORK_SSL' );
|
||||
enabledSSL => 'mai_ENABLED_SECURE_ONLY',
|
||||
localnetworkSSL => 'mai_ONLY_LOCAL_NETWORK_SSL');
|
||||
|
||||
\%options;
|
||||
return \%options;
|
||||
}
|
||||
|
||||
|
||||
@@ -658,6 +666,7 @@ sub display_multidrop {
|
||||
sub change_settings_reception {
|
||||
|
||||
my $c = shift;
|
||||
$cdb = esmith::ConfigDB->open || die "Couldn't open config db";
|
||||
|
||||
my $FetchmailMethod = ( $c->param('FetchmailMethod') || 'standard' );
|
||||
|
||||
@@ -724,6 +733,7 @@ sub change_settings_reception {
|
||||
sub change_settings_delivery {
|
||||
|
||||
my ($c) = shift;
|
||||
$cdb = esmith::ConfigDB->open || die "Couldn't open config db";
|
||||
|
||||
my $EmailUnknownUser = ($c->param('EmailUnknownUser') || 'returntosender');
|
||||
|
||||
@@ -752,7 +762,8 @@ sub change_settings_delivery {
|
||||
sub change_settings_access {
|
||||
|
||||
my $c = shift;
|
||||
|
||||
$cdb = esmith::ConfigDB->open || die "Couldn't open config db";
|
||||
|
||||
my $pop3Access = ($c->param('POPAccess') || 'private');
|
||||
if ($pop3Access eq 'disabled') {
|
||||
$cdb->set_prop('pop3', "status", "disabled" );
|
||||
@@ -802,38 +813,22 @@ sub change_settings_access {
|
||||
#------------------------------------------------------------
|
||||
|
||||
my $webmail = ($c->param('WebMail') || 'disabled');
|
||||
if ( $webmail eq "enabled" ) {
|
||||
$cdb->set_prop('php', "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" );
|
||||
}
|
||||
elsif ( $webmail eq "enabledSSL" ) {
|
||||
$cdb->set_prop('php',"status", "enabled" );
|
||||
if ( $webmail eq "enabledSSL" ) {
|
||||
$cdb->set_prop('php81-php-fpm',"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-php-fpm',"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 ) {
|
||||
@@ -847,6 +842,8 @@ sub change_settings_access {
|
||||
sub change_settings_filtering {
|
||||
|
||||
my $c = shift;
|
||||
$cdb = esmith::ConfigDB->open || die "Couldn't open config db";
|
||||
|
||||
|
||||
my $virus_status = ( $c->param('VirusStatus') || 'disabled' );
|
||||
$cdb->set_prop("qpsmtpd", 'VirusScan', $virus_status);
|
||||
@@ -860,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';
|
||||
@@ -868,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';
|
||||
|
@@ -171,9 +171,11 @@ sub add_portforward {
|
||||
#work out which protocol
|
||||
my $fdb;
|
||||
if ($proto eq 'TCP') {
|
||||
$tcp_db = esmith::ConfigDB->open('portforward_tcp') || die "Can't open portforward_tcp database: $!\n";
|
||||
$fdb = $tcp_db;
|
||||
}
|
||||
else {
|
||||
$udp_db = esmith::ConfigDB->open('portforward_udp') || die "Can't open portforward_udp database: $!\n";
|
||||
$fdb = $udp_db;
|
||||
}
|
||||
#Get the other values
|
||||
|
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 22
|
||||
Version: %{version}
|
||||
Release: %{release}%{?dist}
|
||||
License: GPL
|
||||
@@ -108,6 +108,20 @@ true
|
||||
%defattr(-,root,root)
|
||||
|
||||
%changelog
|
||||
* 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.
|
||||
|
||||
* 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