diff --git a/lib/NGCP/Panel/Controller/API/Domains.pm b/lib/NGCP/Panel/Controller/API/Domains.pm index 7ab7e5b656..06b581e320 100644 --- a/lib/NGCP/Panel/Controller/API/Domains.pm +++ b/lib/NGCP/Panel/Controller/API/Domains.pm @@ -175,7 +175,10 @@ sub POST :Allow { resource => $resource, form => $form, ); - + #form for the reseller role doesn't have field reseller. + if($c->user->roles eq "reseller") { + $resource->{reseller_id} = $c->user->reseller_id; + } my $reseller = $c->model('DB')->resultset('resellers')->find($resource->{reseller_id}); unless($reseller) { $self->error($c, HTTP_UNPROCESSABLE_ENTITY, "Invalid 'reseller_id', doesn't exist."); diff --git a/t/api-rest/api-domains.t b/t/api-rest/api-domains.t new file mode 100644 index 0000000000..545f5ef7c7 --- /dev/null +++ b/t/api-rest/api-domains.t @@ -0,0 +1,46 @@ +use strict; +use warnings; + +use Test::Collection; +use Test::FakeData; +use Test::More; +use Data::Dumper; + +#init test_machine +my $test_machine = Test::Collection->new( + name => 'domains', +); +$test_machine->methods->{collection}->{allowed} = {map {$_ => 1} qw(GET HEAD OPTIONS POST)}; +$test_machine->methods->{item}->{allowed} = {map {$_ => 1} qw(GET HEAD OPTIONS DELETE)}; + +my $fake_data = Test::FakeData->new; +$fake_data->set_data_from_script({ + 'domains' => { + 'data' => { + domain => 'api_test_domain.api_test_domain', + reseller_id => sub { return shift->get_id('resellers',@_); }, + }, + 'query' => ['domain'], + }, +}); + +#for item creation test purposes /post request data/ +$test_machine->DATA_ITEM_STORE($fake_data->process('domains')); + +$test_machine->form_data_item( ); +# create 3 new sound sets from DATA_ITEM +$test_machine->check_create_correct( 1, sub{ $_[0]->{domain} .= $_[1]->{i}; } ); +$test_machine->check_bundle(); + +$test_machine->runas('reseller'); +diag('8185: Run as reseller'); +$test_machine->check_create_correct( 1, sub{ $_[0]->{domain} .= 'reseller'.$_[1]->{i}; } ); +$test_machine->check_bundle(); + + + +$test_machine->clear_test_data_all(); + +done_testing; + +# vim: set tabstop=4 expandtab: diff --git a/t/lib/Test/FakeData.pm b/t/lib/Test/FakeData.pm index c07af9d77d..bf9d559f1a 100644 --- a/t/lib/Test/FakeData.pm +++ b/t/lib/Test/FakeData.pm @@ -259,13 +259,6 @@ sub build_data{ 'no_delete_available' => 1, 'dependency_requires_recreation' => ['resellers'], }, - 'domains' => { - 'data' => { - domain => 'api_test_domain.api_test_domain', - reseller_id => sub { return shift->get_id('resellers',@_); }, - }, - 'query' => ['domain'], - }, 'subscriberprofilesets' => { 'data' => { name => 'api_test_subscriberprofileset',