summaryrefslogtreecommitdiff
path: root/httemplate/edit/process
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/edit/process')
-rwxr-xr-xhttemplate/edit/process/part_pkg.cgi12
1 files changed, 9 insertions, 3 deletions
diff --git a/httemplate/edit/process/part_pkg.cgi b/httemplate/edit/process/part_pkg.cgi
index e3ba1b576..456a7bcd0 100755
--- a/httemplate/edit/process/part_pkg.cgi
+++ b/httemplate/edit/process/part_pkg.cgi
@@ -11,9 +11,6 @@
%}
<%init>
-die "access denied"
- unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
-
my $dbh = dbh;
my $conf = new FS::Conf;
@@ -69,6 +66,8 @@ my %pkg_svc = map { $_ => scalar($cgi->param("pkg_svc$_")) }
map { $_->svcpart }
qsearch('part_svc', {} );
+my $curuser = $FS::CurrentUser::CurrentUser;
+
my $custnum = '';
if ( $error ) {
@@ -80,12 +79,19 @@ if ( $error ) {
} elsif ( $pkgpart ) {
+ die "access denied"
+ unless $curuser->access_right('Configuration')
+
$error = $new->replace( $old,
pkg_svc => \%pkg_svc,
primary_svc => scalar($cgi->param('pkg_svc_primary')),
);
} else {
+ die "access denied"
+ unless $curuser->access_right('Configuration')
+ || ( $cgi->param('pkgnum') && $curuser->access_right('Customize customer package') );
+
$error = $new->insert( pkg_svc => \%pkg_svc,
primary_svc => scalar($cgi->param('pkg_svc_primary')),
cust_pkg => $cgi->param('pkgnum'),