]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1402494 - BMO Integration User is a full administrative user on Phabricator
authordklawren <dklawren@users.noreply.github.com>
Fri, 2 Mar 2018 20:20:43 +0000 (15:20 -0500)
committerGitHub <noreply@github.com>
Fri, 2 Mar 2018 20:20:43 +0000 (15:20 -0500)
extensions/PhabBugz/bin/update_project_members.pl
extensions/PhabBugz/lib/Policy.pm
extensions/PhabBugz/lib/Project.pm
extensions/PhabBugz/lib/Util.pm

index 2a305da3d3cf0f6c0aed632915b6f3b78abf0469..fe62170a6be0fff345aef74347f086152c4f9885 100755 (executable)
@@ -59,9 +59,15 @@ foreach my $group (@$sync_groups) {
         name => $phab_project_name
     });
     if (!$project) {
+        my $secure_revision = Bugzilla::Extension::PhabBugz::Project->new_from_query({
+            name => 'secure-revision'
+        });
         $project = Bugzilla::Extension::PhabBugz::Project->create({
             name        => $phab_project_name,
-            description => 'BMO Security Group for ' . $group->name
+            description => 'BMO Security Group for ' . $group->name,
+            view_policy => $secure_revision->phid,
+            edit_policy => $secure_revision->phid,
+            join_policy => $secure_revision->phid
         });
     }
 
index 23f04b354154daeeee5ef1c5a3290a31b1248739..8162ac52cb1809cf9c51c6bc27ba73f8c5775972 100644 (file)
@@ -117,7 +117,10 @@ sub create {
         };
     }
     else {
-        push @{ $data->{policy} }, { action => 'allow', value  => 'admin' };
+        my $secure_revision = Bugzilla::Extension::PhabBugz::Project->new_from_query({
+            name => 'secure-revision'
+        });
+        push @{ $data->{policy} }, { action => 'allow', value  => $secure_revision->phid };
     }
 
     my $result = request('policy.create', $data);
index fd09cbecffa741f93dc342f2d1dd0c2c54c346c3..b0babc58b8ff1758b00b05ba5cc3d5d4dc0b212b 100644 (file)
@@ -93,9 +93,9 @@ sub BUILDARGS {
 #         "dateCreated": 1500403964,
 #         "dateModified": 1505248862,
 #         "policy": {
-#           "view": "admin",
-#           "edit": "admin",
-#           "join": "admin"
+#           "view": "secure-revision",
+#           "edit": "secure-revision",
+#           "join": "secure-revision"
 #         },
 #         "description": "BMO Security Group for core-security"
 #       },
@@ -138,9 +138,9 @@ sub create {
     $name || ThrowCodeError( 'param_required', { param => 'name' } );
 
     my $description = $params->{description} || 'Need description';
-    my $view_policy = $params->{view_policy} || 'admin';
-    my $edit_policy = $params->{edit_policy} || 'admin';
-    my $join_policy = $params->{join_policy} || 'admin';
+    my $view_policy = $params->{view_policy};
+    my $edit_policy = $params->{edit_policy};
+    my $join_policy = $params->{join_policy};
 
     my $data = {
         transactions => [
index 5658ac9d83052a3d5c0118b8ae1e5cc1aca8ac38..6c51df98c48310757060288187311d0c06f2d2b2 100644 (file)
@@ -167,10 +167,13 @@ sub create_private_revision_policy {
         );
     }
     else {
+        my $secure_revision = Bugzilla::Extension::PhabBugz::Project->new_from_query({
+            name => 'secure-revision'
+        });
         push(@{ $data->{policy} },
             {
                 action => 'allow',
-                value  => 'admin',
+                value  => $secure_revision->phid,
             }
         );
     }
@@ -198,15 +201,20 @@ sub make_revision_public {
 
 sub make_revision_private {
     my ($revision_phid) = @_;
+
+    my $secure_revision = Bugzilla::Extension::PhabBugz::Project->new_from_query({
+        name => 'secure-revision'
+    });
+
     return request('differential.revision.edit', {
         transactions => [
             {
                 type  => "view",
-                value => "admin"
+                value => $secure_revision->phid
             },
             {
                 type  => "edit",
-                value => "admin"
+                value => $secure_revision->phid
             }
         ],
         objectIdentifier => $revision_phid
@@ -298,15 +306,19 @@ sub get_project_phid {
 sub create_project {
     my ($project, $description, $members) = @_;
 
+    my $secure_revision = Bugzilla::Extension::PhabBugz::Project->new_from_query({
+        name => 'secure-revision'
+    });
+
     my $data = {
         transactions => [
-            { type => 'name',  value => $project           },
-            { type => 'description', value => $description },
-            { type => 'edit',  value => 'admin'            },
-            { type => 'join',  value => 'admin'            },
-            { type => 'view',  value => 'admin'            },
-            { type => 'icon',  value => 'group'            },
-            { type => 'color', value => 'red'              }
+            { type => 'name',  value => $project               },
+            { type => 'description', value => $description     },
+            { type => 'edit',  value => $secure_revision->phid }.
+            { type => 'join',  value => $secure_revision->phid },
+            { type => 'view',  value => $secure_revision->phid },
+            { type => 'icon',  value => 'group'                },
+            { type => 'color', value => 'red'                  }
         ]
     };