summaryrefslogtreecommitdiffstats
path: root/extensions/BMO
diff options
context:
space:
mode:
authordklawren <dklawren@users.noreply.github.com>2017-06-30 19:34:14 +0200
committerDylan William Hardison <dylan@hardison.net>2017-07-07 00:19:20 +0200
commit7176e6d8dabbdd577e99c18fccb99fc9a09e1760 (patch)
treed02ade16e1d19eefe9cb879856a9c996b3affa0e /extensions/BMO
parent4c9f9a8c49e9f25096ee3b6982b197e9efa6dd60 (diff)
downloadbugzilla-7176e6d8dabbdd577e99c18fccb99fc9a09e1760.tar.gz
bugzilla-7176e6d8dabbdd577e99c18fccb99fc9a09e1760.tar.xz
Bug 1367604 - BMO extension to apply security policies to Phabricator revisions as needed
* - Updated based on dylans review - Fixed custom policy to instead allow projects and subscribers and then add BMO roles to the subscriber list - Some other bug fixes * fix lifetime of phabricator_url_re() Instead of passing the value (which depends on runtime configuration) pass in a reference. Also edit extensions/BMO/Extension.pm to allow %autodetect_attach_urls regex option to be a callback instead of just a plain regexp ref. * - Fixed regex in BMO extension to detect phabricator attachments - Use request_cache for useragent handle in Util.pm
Diffstat (limited to 'extensions/BMO')
-rw-r--r--extensions/BMO/Extension.pm6
-rw-r--r--extensions/BMO/lib/Data.pm11
2 files changed, 16 insertions, 1 deletions
diff --git a/extensions/BMO/Extension.pm b/extensions/BMO/Extension.pm
index 2a84cc077..99986f89f 100644
--- a/extensions/BMO/Extension.pm
+++ b/extensions/BMO/Extension.pm
@@ -1158,7 +1158,11 @@ sub _detect_attached_url {
return if $url =~ m<[^A-Za-z0-9._~:/?#\[\]@!\$&'()*+,;=`.%-]>;
foreach my $key (keys %autodetect_attach_urls) {
- if ($url =~ $autodetect_attach_urls{$key}->{regex}) {
+ my $regex = $autodetect_attach_urls{$key}->{regex};
+ if (ref($regex) eq 'CODE') {
+ $regex = $regex->();
+ }
+ if ($url =~ $regex) {
return $autodetect_attach_urls{$key};
}
}
diff --git a/extensions/BMO/lib/Data.pm b/extensions/BMO/lib/Data.pm
index fcb96a558..dbf0de108 100644
--- a/extensions/BMO/lib/Data.pm
+++ b/extensions/BMO/lib/Data.pm
@@ -42,6 +42,11 @@ my $mozreview_url_re = qr{
$
}ix;
+sub phabricator_url_re {
+ my $phab_uri = Bugzilla->params->{phabricator_base_uri} || 'https://example.com';
+ return qr/^\Q${phab_uri}\ED\d+$/i;
+}
+
our %autodetect_attach_urls = (
github_pr => {
title => 'GitHub Pull Request',
@@ -55,6 +60,12 @@ our %autodetect_attach_urls = (
content_type => 'text/x-review-board-request',
can_review => 1,
},
+ Phabricator => {
+ title => 'Phabricator',
+ regex => \&phabricator_url_re,
+ content_type => 'text/x-phabricator-request',
+ can_review => 1,
+ },
google_docs => {
title => 'Google Doc',
regex => qr#^https://docs\.google\.com/(?:document|spreadsheets|presentation)/d/#i,