diff options
author | ivan <ivan> | 2008-01-17 04:23:14 +0000 |
---|---|---|
committer | ivan <ivan> | 2008-01-17 04:23:14 +0000 |
commit | edb7652d50dcbabc4ec066a78ae8f65a4a7b5d24 (patch) | |
tree | 8749a7f45b4cfa74e149ab0fdeb5c1b11aaa1288 /httemplate/edit/process/part_pkg.cgi | |
parent | 911ceed14633190dc705b931d83db12a6f3d233d (diff) |
fix ACLs to allow the limited "package editing" of customizing customer packages
Diffstat (limited to 'httemplate/edit/process/part_pkg.cgi')
-rwxr-xr-x | httemplate/edit/process/part_pkg.cgi | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/httemplate/edit/process/part_pkg.cgi b/httemplate/edit/process/part_pkg.cgi index d3d4f8510..2381e7fc9 100755 --- a/httemplate/edit/process/part_pkg.cgi +++ b/httemplate/edit/process/part_pkg.cgi @@ -11,10 +11,6 @@ %} <%init> -die "access denied" - unless $FS::CurrentUser::CurrentUser->access_right('Edit package definitions') - || $FS::CurrentUser::CurrentUser->access_right('Edit global package definitions'); - my $dbh = dbh; my $conf = new FS::Conf; @@ -70,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 ) { @@ -81,12 +79,21 @@ if ( $error ) { } elsif ( $pkgpart ) { + die "access denied" + unless $curuser->access_right('Edit package definitions') + || $curuser->access_right('Edit global package definitions'); + $error = $new->replace( $old, pkg_svc => \%pkg_svc, primary_svc => scalar($cgi->param('pkg_svc_primary')), ); } else { + die "access denied" + unless $curuser->access_right('Edit package definitions') + || $curuser->access_right('Edit global package definitions'); + || ( $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'), |