Teach the physical location retrieval function about using an ENV var.
This allows a subdomain to force a specific physical location, say by adding
to their apache config:
SetEnv physical_loc 4
Rewriterules could also be used for more dynamic configuration.
Also, as a fix:
Have preferred library use the stored physical location instead of assuming
that CGI has the setting all the time.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
# physical_loc (i.e. "original location") passed in as a URL
# param will replace any existing physical_loc stored as a cookie.
+# If specified via ENV that rules over all and we don't set cookies.
sub get_physical_loc {
my $self = shift;
+ return $ENV{physical_loc} if($ENV{physical_loc});
+
if(my $physical_loc = $self->cgi->param('physical_loc')) {
$self->apache->headers_out->add(
"Set-Cookie" => $self->cgi->cookie(
return $ctx->{user}->home_ou;
}
- if ($self->cgi->param('physical_loc')) {
- return $self->cgi->param('physical_loc');
+ if ($ctx->{physical_loc}) {
+ return $ctx->{physical_loc};
}
}