TT#4324 voicemail permissions for subscriber

* /api/voicemailgreetings/
* /api/voicemailrecordings/
* /api/voicemails/
* /api/voicemailsettings/

Change-Id: I6f05273bec65bda8361783926dfe8e1d684202ec
changes/18/10918/2
Gerhard Jungwirth 9 years ago
parent 74348b797b
commit c37b0edbce

@ -12,7 +12,7 @@ sub allowed_methods{
}
sub allowed_roles {
return qw/admin reseller subscriberadmin/;
return qw/admin reseller subscriberadmin subscriber/;
}
sub api_description {

@ -11,7 +11,7 @@ sub allowed_methods{
}
sub allowed_roles {
return qw/admin reseller subscriberadmin/;
return qw/admin reseller subscriberadmin subscriber/;
}
sub _set_config{

@ -41,7 +41,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 => $_,

@ -34,7 +34,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 => $_,

@ -61,7 +61,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 => $_,

@ -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 => 1,
Does => [qw(ACL RequireSSL)],
Method => $_,
@ -47,7 +47,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)],
}) }
},

@ -70,7 +70,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 => $_,

@ -35,7 +35,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 => $_,

@ -61,7 +61,9 @@ sub _item_rs {
{ 'voip_subscriber' => 'contract' } } },
});
} elsif ($c->user->roles eq "subscriber") {
return; # forbidden
$item_rs = $item_rs->search_rs({
'voip_subscriber.uuid' => $c->user->uuid,
});
}
return $item_rs;
}
@ -114,6 +116,10 @@ sub check_resource{
},{
join => { 'contract' => 'contact'},
});
} elsif ($c->user->roles eq 'subscriber') {
$subscriber_rs = $subscriber_rs->search({
'me.uuid' => $c->user->uuid,
});
}
my $billing_subscriber = $subscriber_rs->first;
unless($billing_subscriber) {

@ -28,6 +28,10 @@ sub _item_rs {
},{
join => { mailboxuser => { provisioning_voip_subscriber => { voip_subscriber => 'contract' } } }
});
} elsif ($c->user->roles eq "subscriber") {
$item_rs = $item_rs->search({
'voip_subscriber.uuid' => $c->user->uuid,
});
}
return $item_rs;
}

@ -30,7 +30,9 @@ sub _item_rs {
'contract.id' => $c->user->account_id,
});
} elsif ($c->user->roles eq "subscriber") {
return;
$item_rs = $item_rs->search({
'voip_subscriber.uuid' => $c->user->uuid,
});
}
return $item_rs;
}

@ -36,7 +36,9 @@ sub _item_rs {
join => { mailboxuser => { provisioning_voip_subscriber => { voip_subscriber => 'contract' } } }
});
} elsif ($c->user->roles eq "subscriber") {
return; # forbidden
$item_rs = $item_rs->search({
'voip_subscriber.uuid' => $c->user->uuid,
});
}
return $item_rs;
}
@ -74,8 +76,6 @@ sub hal_from_item {
sub resource_from_item {
my ($self, $c, $item, $form) = @_;
$form //= $self->get_form($c);
my %resource = ();
$resource{id} = int($item->id);
$resource{duration} = is_int($item->duration) ? int($item->duration) : 0;

Loading…
Cancel
Save