diff options
Diffstat (limited to 'extensions/PhabBugz/lib/Policy.pm')
-rw-r--r-- | extensions/PhabBugz/lib/Policy.pm | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/extensions/PhabBugz/lib/Policy.pm b/extensions/PhabBugz/lib/Policy.pm index 1e925f55a..a86c83036 100644 --- a/extensions/PhabBugz/lib/Policy.pm +++ b/extensions/PhabBugz/lib/Policy.pm @@ -41,7 +41,7 @@ has 'rules' => ( has 'rule_projects' => ( is => 'lazy', - isa => ArrayRef[Str], + isa => ArrayRef[Object], ); # { @@ -88,7 +88,7 @@ sub new_from_query { } sub create { - my ($class, $project_names) = @_; + my ($class, $projects) = @_; my $data = { objectType => 'DREV', @@ -105,19 +105,11 @@ sub create { ] }; - if (@$project_names) { - my $project_phids = []; - foreach my $project_name (@$project_names) { - my $project = Bugzilla::Extension::PhabBugz::Project->new_from_query({ name => $project_name }); - push @$project_phids, $project->phid if $project; - } - - ThrowUserError('invalid_phabricator_projects') unless @$project_phids; - + if (@$projects) { push @{ $data->{policy} }, { action => 'allow', rule => 'PhabricatorProjectsAllPolicyRule', - value => $project_phids, + value => [ map { $_->phid } @$projects ], }; } else { @@ -138,8 +130,6 @@ sub _build_rule_projects { my $rule = first { $_->{rule} =~ /PhabricatorProjects(?:All)?PolicyRule/ } @{ $self->rules }; return [] unless $rule; return [ - map { $_->name } - grep { $_ } map { Bugzilla::Extension::PhabBugz::Project->new_from_query( { phids => [$_] } ) } @{ $rule->{value} } ]; |