r3870 - in trunk/varnish-tools/webgui: Varnish templates

petter at projects.linpro.no petter at projects.linpro.no
Tue Mar 3 16:25:45 CET 2009


Author: petter
Date: 2009-03-03 16:25:44 +0100 (Tue, 03 Mar 2009)
New Revision: 3870

Added:
   trunk/varnish-tools/webgui/templates/access_denied.tmpl
Modified:
   trunk/varnish-tools/webgui/Varnish/RequestHandler.pm
Log:
Added real restrictions in the backend as well.


Modified: trunk/varnish-tools/webgui/Varnish/RequestHandler.pm
===================================================================
--- trunk/varnish-tools/webgui/Varnish/RequestHandler.pm	2009-03-03 14:33:57 UTC (rev 3869)
+++ trunk/varnish-tools/webgui/Varnish/RequestHandler.pm	2009-03-03 15:25:44 UTC (rev 3870)
@@ -71,6 +71,11 @@
 		return %parameter;
 	}
 
+	sub _access_denied {
+
+		return ("access_denied.tmpl", undef);
+	}
+
 	sub process {
 		my ($self) = @_;
 
@@ -113,7 +118,12 @@
 			($content_template, $param) = management_console(\%request_parameter);
 		}
 		elsif ($operation eq 'send_management_command') {
-			$response_content = send_management_command(\%request_parameter);
+			if (get_config_value('restricted')) {
+				($content_template, $param) = _access_denied();
+			}
+			else {
+				$response_content = send_management_command(\%request_parameter);
+			}
 		}
 		elsif ($operation eq 'generate_graph') {
 			$response_header_ref_of{$self}->{'Content-Type'} = "image/png";
@@ -127,7 +137,7 @@
 			$response_content = "Ok";
 		}
 		else {
-			return;
+			($content_template, $param) = _access_denied();
 		}
 
 		$response_header_ref_of{$self}->{'Connection'} = "Close";
@@ -196,6 +206,12 @@
 		my $successfull_save = 0;
 		my $editing_new_vcl = 0;
 
+		if (get_config_value('restricted')
+			&& $param{'operation'}
+			&& $param{'operation'} ne 'load') {
+			return _access_denied();
+		}
+
 		if ($param{'operation'} eq "make_active") {
 			my $unit;
 			if ($param{'is_node'}) {
@@ -619,6 +635,10 @@
 		my $nodes_ref = Varnish::NodeManager->get_nodes();
 		my $groups_ref = Varnish::NodeManager->get_groups();
 		if (%changed_parameter) {
+			if (get_config_value('restricted')) {
+				return _access_denied();
+			}
+
 			my $unit_name;
 			my $node = Varnish::NodeManager->get_node($param{'node_id'});
 			if ($node) {
@@ -767,6 +787,11 @@
 		my $error = "";
 		my $status = "";
 
+		if (get_config_value('restricted')
+			&& $param{'operation'} ne '') {
+			return _access_denied();
+		}
+
 		if ($param{'operation'} eq "add_group") {
 			if ($param{'group_name'}) {
 				my $new_group = Varnish::Group->new({name => $param{'group_name'}});

Added: trunk/varnish-tools/webgui/templates/access_denied.tmpl
===================================================================
--- trunk/varnish-tools/webgui/templates/access_denied.tmpl	                        (rev 0)
+++ trunk/varnish-tools/webgui/templates/access_denied.tmpl	2009-03-03 15:25:44 UTC (rev 3870)
@@ -0,0 +1 @@
+Acess denied



More information about the varnish-commit mailing list