/
Util.pm
36 lines (28 loc) · 841 Bytes
/
Util.pm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package Koha::Plack::Util;
use Koha;
sub GetCanonicalHostname {
my $env = shift;
my $hostname
= $env->{HTTP_X_FORWARDED_HOST}
// $env->{HTTP_X_FORWARDED_SERVER}
// $env->{HTTP_HOST}
// $env->{SERVER_NAME}
// 'koha-opac.default';
$hostname = (split qr{,}, $hostname)[0];
$hostname =~ s/:.*//;
return $hostname;
}
sub IsStaff {
my $hostname = GetCanonicalHostname(shift);
return 1 if $ENV{KOHA_STAFF};
return $hostname =~ /-staff/;
}
sub RedirectRootAndOpac {
my $env = shift;
my $is_staff = shift // \&IsStaff;
return 302 if ($is_staff->($env) && s{^/$}{/cgi-bin/koha/mainpage.pl});
return 302 if (!$is_staff->($env) && s{^/$}{/cgi-bin/koha/opac-main.pl});
if (!$is_staff->($env)) { s{^/cgi-bin/koha/}{/cgi-bin/koha/opac/}}
return;
}
1;