parent
92113fb6e3
commit
35d7e7e2f5
|
@ -409,19 +409,28 @@ sub getSkin {
|
||||||
$req->{sessionInfo}->{ipAddr} ||= $req->address;
|
$req->{sessionInfo}->{ipAddr} ||= $req->address;
|
||||||
|
|
||||||
# Load specific skin from skinRules
|
# Load specific skin from skinRules
|
||||||
foreach my $rule ( @{ $self->conf->{skinRules} } ) {
|
foreach my $rule ( @{ $self->{skinRules} } ) {
|
||||||
if ( $rule->[1]->( $req, $req->sessionInfo ) ) {
|
if ( $rule->[1]->( $req, $req->sessionInfo ) ) {
|
||||||
|
if ( -d $self->conf->{templateDir} . '/' . $rule->[0] ) {
|
||||||
$skin = $rule->[0];
|
$skin = $rule->[0];
|
||||||
$self->logger->debug("Skin $skin selected from skin rule");
|
$self->logger->debug("Skin $skin selected from skin rule");
|
||||||
|
last;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check skin GET/POST parameter
|
# Check skin GET/POST parameter
|
||||||
my $skinParam = $req->param('skin');
|
my $skinParam = $req->param('skin');
|
||||||
if ( defined $skinParam && !$self->checkXSSAttack( 'skin', $skinParam ) ) {
|
if ( defined $skinParam and !$self->checkXSSAttack( 'skin', $skinParam ) ) {
|
||||||
|
if ( -d $self->conf->{templateDir} . '/' . $skinParam ) {
|
||||||
$skin = $skinParam;
|
$skin = $skinParam;
|
||||||
$self->logger->debug("Skin $skin selected from GET/POST parameter");
|
$self->logger->debug("Skin $skin selected from GET/POST parameter");
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
$self->userLogger->error(
|
||||||
|
"User tries to access to unexistent skin dir $skinParam");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $skin;
|
return $skin;
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,6 +170,10 @@ sub reloadConf {
|
||||||
# Initialize templateDir
|
# Initialize templateDir
|
||||||
$self->{templateDir} =
|
$self->{templateDir} =
|
||||||
$self->conf->{templateDir} . '/' . $self->conf->{portalSkin};
|
$self->conf->{templateDir} . '/' . $self->conf->{portalSkin};
|
||||||
|
unless ( -d $self->{templateDir} ) {
|
||||||
|
$self->error("Template dir $self->{templateDir} doesn't exist");
|
||||||
|
return $self->fail;
|
||||||
|
}
|
||||||
|
|
||||||
$self->{staticPrefix} = $self->conf->{staticPrefix} || '/static';
|
$self->{staticPrefix} = $self->conf->{staticPrefix} || '/static';
|
||||||
$self->{languages} = $self->conf->{languages} || '/';
|
$self->{languages} = $self->conf->{languages} || '/';
|
||||||
|
|
Loading…
Reference in New Issue
Block a user