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