From 541e2b41af8cc44ad3eb0638618bc457c666d612 Mon Sep 17 00:00:00 2001 From: Dylan William Hardison Date: Sat, 7 Apr 2018 19:20:00 -0400 Subject: a bit of a quantum leap It's now possible to load the CGIs into a mojolicious controller. Compatibility isn't 100% yet, but it should give a migration path for any random CGI to become a proper controller. --- Bugzilla/Quantum/CGI.pm | 59 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Bugzilla/Quantum/CGI.pm (limited to 'Bugzilla/Quantum/CGI.pm') diff --git a/Bugzilla/Quantum/CGI.pm b/Bugzilla/Quantum/CGI.pm new file mode 100644 index 000000000..5afa19b18 --- /dev/null +++ b/Bugzilla/Quantum/CGI.pm @@ -0,0 +1,59 @@ +# 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::Quantum::CGI; +use 5.10.1; +use Moo; + +has 'controller' => ( + is => 'ro', + handles => [qw(param cookie)], +); + +has 'csp_object' => ( + is => 'ro', + writer => 'set_csp_object', +); + +with 'Bugzilla::CGI::ContentSecurityPolicyAttr'; + +sub script_name { + my ($self) = @_; + + return $self->controller->req->env->{SCRIPT_NAME}; +} + +sub http { + my ($self, $header) = @_; + return $self->controller->req->headers->header($header); +} + +sub header { + my ($self, @args) = @_; + my $c = $self->controller; + return '' if @args == 0; + + if (@args == 1) { + $c->res->headers->content_type($args[0]); + } + + return ''; +} + +sub redirect { + my ($self, $location) = @_; + + $self->controller->redirect_to($location); +} + +sub Vars { + my ($self) = @_; + + return $self->controller->req->query_params->to_hash; +} + +1; -- cgit v1.2.3-24-g4f1b