combine ticket notification scrips, #15353
[freeside.git] / httemplate / config / config-delete.cgi
index cdac434..4888868 100644 (file)
@@ -1,15 +1,33 @@
 <%init>
-die "access denied\n"
-  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
 
-die "No configuration item specified (bad URL)!" unless $cgi->keywords;
-my ($query) = $cgi->keywords;
-$query =~ /^(\d+)$/;
+my $curuser = $FS::CurrentUser::CurrentUser;
+die "access denied\n" unless $curuser->access_right('Configuration');
+
+my $fsconf = new FS::Conf;
+if ( $fsconf->exists('disable_settings_changes') ) {
+  my @changers = split(/\s*,\s*/, $fsconf->config('disable_settings_changes'));
+  my %changers = map { $_=>1 } @changers;
+  unless ( $changers{$curuser->username} ) {
+    errorpage("Disabled in web demo");
+    die "shouldn't be reached";
+  }
+}
+
+$cgi->param('confnum') =~ /^(\d+)$/ or die "illegal or missing confnum";
 my $confnum = $1;
 
 my $conf = qsearchs('conf', {'confnum' => $confnum});
 die "Configuration not found!" unless $conf;
 $conf->delete;
 
+my $redirect = popurl(2);
+if ( $cgi->param('redirect') eq 'config_view_showagent' ) {
+  $redirect .= 'config/config-view.cgi?showagent=1#'. $conf->name;
+} elsif ( $cgi->param('redirect') eq 'config_view' ) {
+  $redirect .= 'config/config-view.cgi';
+} else {
+  $redirect .= 'browse/agent.cgi';
+}
+
 </%init>
-<% $cgi->redirect(popurl(2) . "browse/agent.cgi") %>
+<% $cgi->redirect($redirect) %>