summaryrefslogtreecommitdiff
path: root/httemplate/config
diff options
context:
space:
mode:
authorivan <ivan>2010-06-06 05:58:16 +0000
committerivan <ivan>2010-06-06 05:58:16 +0000
commitdad1e2689ba5ff448bf1bbc9a586023137864d12 (patch)
tree487b55d771567a913904b8606bad0e88636b6843 /httemplate/config
parenta91c47d734219f046c881662225cd3f00a3f2e92 (diff)
add disable_settings_changes conf for the demo
Diffstat (limited to 'httemplate/config')
-rw-r--r--httemplate/config/config-delete.cgi15
-rw-r--r--httemplate/config/config-process.cgi15
2 files changed, 26 insertions, 4 deletions
diff --git a/httemplate/config/config-delete.cgi b/httemplate/config/config-delete.cgi
index a05cb1e14..488886824 100644
--- a/httemplate/config/config-delete.cgi
+++ b/httemplate/config/config-delete.cgi
@@ -1,6 +1,17 @@
<%init>
-die "access denied\n"
- unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+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;
diff --git a/httemplate/config/config-process.cgi b/httemplate/config/config-process.cgi
index 788d9016e..c96f8d44d 100644
--- a/httemplate/config/config-process.cgi
+++ b/httemplate/config/config-process.cgi
@@ -70,10 +70,21 @@ my %namecol = (
);
</%once>
<%init>
-die "access denied\n"
- unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+die "access denied\n" unless $curuser->access_right('Configuration');
my $conf = new FS::Conf;
+
+if ( $conf->exists('disable_settings_changes') ) {
+ my @changers = split(/\s*,\s*/, $conf->config('disable_settings_changes'));
+ my %changers = map { $_=>1 } @changers;
+ unless ( $changers{$curuser->username} ) {
+ errorpage("Disabled in web demo");
+ die "shouldn't be reached";
+ }
+}
+
$FS::Conf::DEBUG = 1;
my @config_items = grep { $_->key != ~/^invoice_(html|latex|template)/ }
$conf->config_items;