diff options
author | ivan <ivan> | 2012-01-05 06:05:15 +0000 |
---|---|---|
committer | ivan <ivan> | 2012-01-05 06:05:15 +0000 |
commit | 626f5cd83480c923e7657e34fabfe1256a07e27d (patch) | |
tree | b62992efcab3d17311bc15ce9a9ed40f9ec6ca03 /FS | |
parent | f69c973ce72c4622cfba7a0c8c642454f1a3b1f1 (diff) |
add selfservice_access selection to part_svc, RT#15628
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/ClientAPI/MyAccount.pm | 7 | ||||
-rw-r--r-- | FS/FS/Schema.pm | 11 | ||||
-rw-r--r-- | FS/FS/part_svc.pm | 1 |
3 files changed, 13 insertions, 6 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 2e60eda3b..c2c295e27 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -1422,6 +1422,9 @@ sub list_svcs { next if $pkgnum && $cust_pkg->pkgnum != $pkgnum; push @cust_svc, @{[ $cust_pkg->cust_svc ]}; #@{[ ]} to force array context } + + @cust_svc = grep { $_->part_svc->selfservice_access ne 'hidden' } @cust_svc; + if ( $p->{'svcdb'} ) { my $svcdb = ref($p->{'svcdb'}) eq 'HASH' ? $p->{'svcdb'} @@ -1445,7 +1448,8 @@ sub list_svcs { map { my $svc_x = $_->svc_x; my($label, $value) = $_->label; - my $svcdb = $_->part_svc->svcdb; + my $part_svc = $_->part_svc; + my $svcdb = $part_svc->svcdb; my $cust_pkg = $_->cust_pkg; my $part_pkg = $cust_pkg->part_pkg; @@ -1455,6 +1459,7 @@ sub list_svcs { 'label' => $label, 'value' => $value, 'pkg_status' => $cust_pkg->status, + 'readonly' => ( $part_svc->selfservice_access eq 'readonly' ), ); if ( $svcdb eq 'svc_acct' ) { diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 782597313..a592efd6b 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -1805,11 +1805,12 @@ sub tables_hashref { 'part_svc' => { 'columns' => [ - 'svcpart', 'serial', '', '', '', '', - 'svc', 'varchar', '', $char_d, '', '', - 'svcdb', 'varchar', '', $char_d, '', '', - 'disabled', 'char', 'NULL', 1, '', '', - 'preserve', 'char', 'NULL', 1, '', '', + 'svcpart', 'serial', '', '', '', '', + 'svc', 'varchar', '', $char_d, '', '', + 'svcdb', 'varchar', '', $char_d, '', '', + 'disabled', 'char', 'NULL', 1, '', '', + 'preserve', 'char', 'NULL', 1, '', '', + 'selfservice_access', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'svcpart', 'unique' => [], diff --git a/FS/FS/part_svc.pm b/FS/FS/part_svc.pm index 19a71df15..65a76e400 100644 --- a/FS/FS/part_svc.pm +++ b/FS/FS/part_svc.pm @@ -386,6 +386,7 @@ sub check { || $self->ut_alpha('svcdb') || $self->ut_enum('disabled', [ '', 'Y' ] ) || $self->ut_enum('preserve', [ '', 'Y' ] ) + || $self->ut_enum('selfservice_access', [ '', 'hidden', 'readonly' ] ) ; return $error if $error; |