X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fconfig%2Fconfig-delete.cgi;h=488886824c67ae6350381e272171ff33c356f54c;hp=cdac434fa539850733e602c49a77c55d965774c3;hb=c3da5cf1caa244937d280e0f406927103beef148;hpb=cc0c6be1aa795f85d05f15a3e8568fcef2bbd380 diff --git a/httemplate/config/config-delete.cgi b/httemplate/config/config-delete.cgi index cdac434fa..488886824 100644 --- a/httemplate/config/config-delete.cgi +++ b/httemplate/config/config-delete.cgi @@ -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'; +} + -<% $cgi->redirect(popurl(2) . "browse/agent.cgi") %> +<% $cgi->redirect($redirect) %>