diff options
author | dklawren <dklawren@users.noreply.github.com> | 2017-06-30 19:34:14 +0200 |
---|---|---|
committer | Dylan William Hardison <dylan@hardison.net> | 2017-07-07 00:19:20 +0200 |
commit | 7176e6d8dabbdd577e99c18fccb99fc9a09e1760 (patch) | |
tree | d02ade16e1d19eefe9cb879856a9c996b3affa0e /extensions/BMO | |
parent | 4c9f9a8c49e9f25096ee3b6982b197e9efa6dd60 (diff) | |
download | bugzilla-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.pm | 6 | ||||
-rw-r--r-- | extensions/BMO/lib/Data.pm | 11 |
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, |