TT#4335 api subscriberpreferences for subscriber

Change-Id: I9a0116104dbe337c6824668e4c2e81da4491bff5
changes/36/12636/2
Gerhard Jungwirth 9 years ago
parent 80e69e5b5f
commit 1c80388ff4

@ -39,7 +39,7 @@ __PACKAGE__->config(
action => {
map { $_ => {
ACLDetachTo => '/api/root/invalid_user',
AllowedRole => [qw/admin reseller subscriberadmin/],
AllowedRole => [qw/admin reseller subscriberadmin subscriber/],
Args => 0,
Does => [qw(ACL CheckTrailingSlash RequireSSL)],
Method => $_,

@ -82,7 +82,7 @@ __PACKAGE__->config(
action => {
map { $_ => {
ACLDetachTo => '/api/root/invalid_user',
AllowedRole => [qw/admin reseller subscriberadmin/],
AllowedRole => [qw/admin reseller subscriberadmin subscriber/],
Args => 0,
Does => [qw(ACL CheckTrailingSlash RequireSSL)],
Method => $_,

@ -43,7 +43,7 @@ __PACKAGE__->config(
action => {
(map { $_ => {
ACLDetachTo => '/api/root/invalid_user',
AllowedRole => [qw/admin reseller subscriberadmin/],
AllowedRole => [qw/admin reseller subscriberadmin subscriber/],
Args => 1,
Does => [qw(ACL RequireSSL)],
Method => $_,
@ -51,7 +51,7 @@ __PACKAGE__->config(
} } @{ __PACKAGE__->allowed_methods }),
@{ __PACKAGE__->get_journal_action_config(__PACKAGE__->resource_name,{
ACLDetachTo => '/api/root/invalid_user',
AllowedRole => [qw/admin reseller subscriberadmin/],
AllowedRole => [qw/admin reseller subscriberadmin subscriber/],
Does => [qw(ACL RequireSSL)],
}) }
},

@ -101,7 +101,7 @@ sub get_resource {
my $value;
my $processed = 0;
if ($c->user->roles eq 'subscriberadmin') {
if ($c->user->roles eq 'subscriberadmin' || $c->user->roles eq 'subscriber') {
my $attrname = $pref->attribute->attribute;
unless ( $pref->attribute->expose_to_customer ) {
$c->log->debug("skipping attribute $attrname, not exposing to customer");
@ -319,6 +319,13 @@ sub _item_rs {
},{
join => 'contract',
});
} elsif ($c->user->roles eq 'subscriber') {
$item_rs = $c->model('DB')->resultset('voip_subscribers')->search({
'me.uuid' => $c->user->uuid,
'me.status' => { '!=' => 'terminated' },
},{
join => 'contract',
});
}
} elsif($type eq "peerings") {
if($c->user->roles eq "admin") {
@ -399,7 +406,7 @@ sub get_preference_rs {
c => $c,
attribute => $attr,
prov_subscriber => $elem,
($c->user->roles eq "subscriberadmin") ? (subscriberadmin => 1) : (),
($c->user->roles eq "subscriberadmin" || $c->user->roles eq "subscriber") ? (subscriberadmin => 1) : (),
);
} elsif($type eq "peerings") {
$rs = NGCP::Panel::Utils::Preferences::get_peer_preference_rs(
@ -469,7 +476,7 @@ sub update_item {
$accessor = $item->username . '@' . $item->domain->domain;
$elem = $item->provisioning_voip_subscriber;
$full_rs = $elem->voip_usr_preferences;
if ($c->user->roles eq 'subscriberadmin') {
if ($c->user->roles eq 'subscriberadmin' || $c->user->roles eq 'subscriber') {
$full_rs = $full_rs->search_rs({
'attribute.expose_to_customer' => 1,
},{

@ -1160,7 +1160,7 @@ sub api_preferences_defs{
my $schema = $params{schema} // $c->model('DB');
my $preferences_group = $params{preferences_group};
my $is_subadmin = ($c->user->roles eq 'subscriberadmin');
my $is_subadmin = ($c->user->roles eq 'subscriberadmin' || $c->user->roles eq 'subscriber');
my $preferences = $c->model('DB')->resultset('voip_preferences')->search({
internal => { '!=' => 1 }, # also fetch -1 for ncos, rwr

Loading…
Cancel
Save