From 07b9f8dcae0e2b1923f2d20be9e3181f23dc67c9 Mon Sep 17 00:00:00 2001 From: Irina Peshinskaya Date: Thu, 13 Apr 2017 19:03:03 +0300 Subject: [PATCH] TT#10837 Make allowed_roles array reference Change-Id: I6ed557df160b963f964cd3cc09f79132ff37cfe8 --- lib/NGCP/Panel/Controller/API/AdminCerts.pm | 4 ++-- lib/NGCP/Panel/Controller/API/MetaConfigDefs.pm | 4 ++-- lib/NGCP/Panel/Controller/API/VoicemailGreetings.pm | 4 ++-- lib/NGCP/Panel/Controller/API/VoicemailGreetingsItem.pm | 4 ++-- lib/NGCP/Panel/Role/Entities.pm | 8 +++++--- lib/NGCP/Panel/Role/EntitiesItem.pm | 8 +++++--- 6 files changed, 18 insertions(+), 14 deletions(-) diff --git a/lib/NGCP/Panel/Controller/API/AdminCerts.pm b/lib/NGCP/Panel/Controller/API/AdminCerts.pm index 831ff38c84..cb104701d4 100644 --- a/lib/NGCP/Panel/Controller/API/AdminCerts.pm +++ b/lib/NGCP/Panel/Controller/API/AdminCerts.pm @@ -8,8 +8,8 @@ use NGCP::Panel::Utils::Admin; __PACKAGE__->set_config(); -sub allowed_roles { - return qw/admin reseller/; +sub config_allowed_roles { + return [qw/admin reseller/]; } sub allowed_methods { diff --git a/lib/NGCP/Panel/Controller/API/MetaConfigDefs.pm b/lib/NGCP/Panel/Controller/API/MetaConfigDefs.pm index c9f3542d83..7ad3a6b39e 100644 --- a/lib/NGCP/Panel/Controller/API/MetaConfigDefs.pm +++ b/lib/NGCP/Panel/Controller/API/MetaConfigDefs.pm @@ -109,12 +109,12 @@ sub GET :Allow { my $module = $modules->[$i]; my $module_item = $module.'Item'; my $roles = $module->can('config') ? $module->config->{action}->{OPTIONS}->{AllowedRole}:[]; - (!(ref $roles eq 'ARRAY')) and $roles = [$roles]; + $roles = 'ARRAY' eq ref $roles ? $roles : [$roles]; $meta->{collections}->{$collection} = { module => $module, allowed_methods => $module->can('config') ? $module->config->{action} : {}, query_params => $module->can('query_params') ? [map {$_->{param}} @{$module->query_params}] : [], - allowed_roles => [$roles], + allowed_roles => $roles, module_item => $module_item->can('config') ? $module_item : '', allowed_methods_item => $module_item->can('config') ? $module_item->config->{action} : {}, #container_item_id => '', diff --git a/lib/NGCP/Panel/Controller/API/VoicemailGreetings.pm b/lib/NGCP/Panel/Controller/API/VoicemailGreetings.pm index a3cb1d83e5..a93a1bdbef 100644 --- a/lib/NGCP/Panel/Controller/API/VoicemailGreetings.pm +++ b/lib/NGCP/Panel/Controller/API/VoicemailGreetings.pm @@ -11,8 +11,8 @@ sub allowed_methods{ return [qw/OPTIONS HEAD GET POST/]; } -sub allowed_roles { - return qw/admin reseller subscriberadmin subscriber/; +sub config_allowed_roles { + return [qw/admin reseller subscriberadmin subscriber/]; } sub api_description { diff --git a/lib/NGCP/Panel/Controller/API/VoicemailGreetingsItem.pm b/lib/NGCP/Panel/Controller/API/VoicemailGreetingsItem.pm index 8956882f85..c407f4b2f2 100644 --- a/lib/NGCP/Panel/Controller/API/VoicemailGreetingsItem.pm +++ b/lib/NGCP/Panel/Controller/API/VoicemailGreetingsItem.pm @@ -10,8 +10,8 @@ sub allowed_methods{ return [qw/GET OPTIONS HEAD PUT DELETE/]; } -sub allowed_roles { - return qw/admin reseller subscriberadmin subscriber/; +sub config_allowed_roles { + return [qw/admin reseller subscriberadmin subscriber/]; } sub _set_config{ diff --git a/lib/NGCP/Panel/Role/Entities.pm b/lib/NGCP/Panel/Role/Entities.pm index 810a5239e8..38e654e294 100644 --- a/lib/NGCP/Panel/Role/Entities.pm +++ b/lib/NGCP/Panel/Role/Entities.pm @@ -14,11 +14,13 @@ use NGCP::Panel::Utils::DataHalLink qw(); sub set_config { my $self = shift; + my $allowed_roles = $self->config_allowed_roles; + $allowed_roles = 'ARRAY' eq ref $allowed_roles ? $allowed_roles : [$allowed_roles]; $self->config( action => { map { $_ => { ACLDetachTo => '/api/root/invalid_user', - AllowedRole => [$self->allowed_roles], + AllowedRole => $allowed_roles, Args => 0, Does => [qw(ACL CheckTrailingSlash RequireSSL)], Method => $_, @@ -37,8 +39,8 @@ sub gather_default_action_roles { return @roles; } -sub allowed_roles { - return qw/admin reseller/; +sub config_allowed_roles { + return [qw/admin reseller/]; } sub get_list{ diff --git a/lib/NGCP/Panel/Role/EntitiesItem.pm b/lib/NGCP/Panel/Role/EntitiesItem.pm index c58208289c..4c26a2fd5a 100644 --- a/lib/NGCP/Panel/Role/EntitiesItem.pm +++ b/lib/NGCP/Panel/Role/EntitiesItem.pm @@ -18,11 +18,13 @@ use NGCP::Panel::Utils::ValidateJSON qw(); sub set_config { my $self = shift; + my $allowed_roles = $self->config_allowed_roles; + $allowed_roles = 'ARRAY' eq ref $allowed_roles ? $allowed_roles : [$allowed_roles]; $self->config( action => { map { $_ => { ACLDetachTo => '/api/root/invalid_user', - AllowedRole => [$self->allowed_roles], + AllowedRole => $allowed_roles, Args => 1, Does => [qw(ACL RequireSSL)], Method => $_, @@ -41,8 +43,8 @@ sub gather_default_action_roles { return @roles; } -sub allowed_roles { - return qw/admin reseller/; +sub config_allowed_roles { + return [qw/admin reseller/]; } sub get {