summaryrefslogtreecommitdiffstats
path: root/extensions/GitHubAuth/lib/Util.pm
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/GitHubAuth/lib/Util.pm')
-rw-r--r--extensions/GitHubAuth/lib/Util.pm35
1 files changed, 35 insertions, 0 deletions
diff --git a/extensions/GitHubAuth/lib/Util.pm b/extensions/GitHubAuth/lib/Util.pm
new file mode 100644
index 000000000..bda76a420
--- /dev/null
+++ b/extensions/GitHubAuth/lib/Util.pm
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+package Bugzilla::Extension::GitHubAuth::Util;
+
+use strict;
+use warnings;
+
+use Bugzilla::Util qw(correct_urlbase);
+use URI;
+
+use base qw(Exporter);
+our @EXPORT = qw( target_uri );
+
+
+# this is like correct_urlbase() except it returns the *requested* uri, before http url rewrites have been applied.
+# needed to generate github's redirect_uri.
+sub target_uri {
+ my $cgi = Bugzilla->cgi;
+ my $base = URI->new(correct_urlbase());
+ if (my $request_uri = $cgi->request_uri) {
+ $base->path('');
+ $request_uri =~ s!^/+!!;
+ return URI->new($base . "/" . $request_uri);
+ }
+ else {
+ return URI->new(correct_urlbase() . $cgi->url(-relative => 1, query => ));
+ }
+}
+
+1;