summaryrefslogtreecommitdiffstats
path: root/extensions/PhabBugz/lib/Feed.pm
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/PhabBugz/lib/Feed.pm')
-rw-r--r--extensions/PhabBugz/lib/Feed.pm39
1 files changed, 8 insertions, 31 deletions
diff --git a/extensions/PhabBugz/lib/Feed.pm b/extensions/PhabBugz/lib/Feed.pm
index 31dd8bca0..9fb1dac11 100644
--- a/extensions/PhabBugz/lib/Feed.pm
+++ b/extensions/PhabBugz/lib/Feed.pm
@@ -337,20 +337,6 @@ sub process_revision_change {
blessed $revision_phid
? $revision_phid
: Bugzilla::Extension::PhabBugz::Revision->new_from_query({ phids => [ $revision_phid ] });
-
- # Project tags/groups that will be used later for policies, etc.
- my $secure_revision =
- Bugzilla::Extension::PhabBugz::Project->new_from_query(
- {
- name => 'secure-revision'
- }
- );
- my $edit_bugs =
- Bugzilla::Extension::PhabBugz::Project->new_from_query(
- {
- name => 'bmo-editbugs-team'
- }
- );
# NO BUG ID
@@ -358,9 +344,7 @@ sub process_revision_change {
if ($story_text =~ /\s+created\s+D\d+/) {
# If new revision and bug id was omitted, make revision public
INFO("No bug associated with new revision. Marking public.");
- $revision->set_policy('view', 'public');
- $revision->set_policy('edit', ($edit_bugs ? $edit_bugs->phid : 'users'));
- $revision->remove_project($secure_revision->phid);
+ $revision->make_public();
$revision->update();
INFO("SUCCESS");
return;
@@ -388,9 +372,7 @@ sub process_revision_change {
# If bug is public then remove privacy policy
if (!@{ $bug->groups_in }) {
INFO('Bug is public so setting view/edit public');
- $revision->set_policy('view', 'public');
- $revision->set_policy('edit', ($edit_bugs ? $edit_bugs->phid : 'users'));
- $revision->remove_project($secure_revision->phid);
+ $revision->make_public();
}
# else bug is private.
else {
@@ -405,7 +387,7 @@ sub process_revision_change {
# Otherwise, we create a new custom policy containing the project
# groups that are mapped to bugzilla groups.
else {
- my @set_projects = map { "bmo-" . $_ } @set_groups;
+ my $set_project_names = [ map { "bmo-" . $_ } @set_groups ];
# If current policy projects matches what we want to set, then
# we leave the current policy alone.
@@ -414,13 +396,12 @@ sub process_revision_change {
INFO("Loading current policy: " . $revision->view_policy);
$current_policy
= Bugzilla::Extension::PhabBugz::Policy->new_from_query({ phids => [ $revision->view_policy ]});
- my $current_projects = $current_policy->rule_projects;
- INFO("Current policy projects: " . join(", ", @$current_projects));
- my ($added, $removed) = diff_arrays($current_projects, \@set_projects);
+ my $current_project_names = [ map { $_->name } @{ $current_policy->rule_projects } ];
+ INFO("Current policy projects: " . join(", ", @$current_project_names));
+ my ($added, $removed) = diff_arrays($current_project_names, $set_project_names);
if (@$added || @$removed) {
INFO('Project groups do not match. Need new custom policy');
$current_policy = undef;
-
}
else {
INFO('Project groups match. Leaving current policy as-is');
@@ -428,13 +409,9 @@ sub process_revision_change {
}
if (!$current_policy) {
- INFO("Creating new custom policy: " . join(", ", @set_projects));
- my $new_policy = Bugzilla::Extension::PhabBugz::Policy->create(\@set_projects);
- $revision->set_policy('view', $new_policy->phid);
- $revision->set_policy('edit', $new_policy->phid);
+ INFO("Creating new custom policy: " . join(", ", @$set_project_names));
+ $revision->make_private($set_project_names);
}
-
- $revision->add_project($secure_revision->phid);
}
# Subscriber list of the private revision should always match