61 lines
1.3 KiB
Perl
Executable File
61 lines
1.3 KiB
Perl
Executable File
#! /usr/bin/perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
no warnings 'redefine';
|
|
|
|
use Data::Dumper;
|
|
use JSON();
|
|
|
|
use config();
|
|
use params();
|
|
use log();
|
|
use entry();
|
|
use auth();
|
|
use localization();
|
|
|
|
binmode STDOUT, ":utf8";
|
|
|
|
my $r = shift;
|
|
( my $cgi, my $params, my $error ) = params::get($r);
|
|
|
|
my $config = config::get('../config/config.cgi');
|
|
my ( $user, $expires ) = auth::get_user( $config, $params, $cgi );
|
|
return if ( $user eq '' );
|
|
|
|
my $request = {
|
|
url => $ENV{QUERY_STRING} || '',
|
|
params => {
|
|
original => $params,
|
|
checked => check_params( $config, $params ),
|
|
}
|
|
};
|
|
$params = $request->{params}->{checked};
|
|
my $loc = localization::get( $config, { user => $user, file => $params->{usecase} } );
|
|
my $header = "Content-type:application/json; charset=UTF-8;\n\n";
|
|
$loc->{usecase} = $params->{usecase};
|
|
my $json = JSON::to_json( $loc, { pretty => 1 } );
|
|
my @json_lines = ();
|
|
|
|
for my $line ( split /\n/, $json ) {
|
|
push @json_lines, "'" . $line . "'\n";
|
|
}
|
|
|
|
$json = $header . $json;
|
|
print $json;
|
|
|
|
sub check_params {
|
|
my $config = shift;
|
|
my $params = shift;
|
|
|
|
my $checked = { usecase => '' };
|
|
|
|
if ( defined $params->{usecase} ) {
|
|
if ( $params->{usecase} =~ /^([a-z\-\_\,]+)$/ ) {
|
|
$checked->{usecase} = $1;
|
|
}
|
|
}
|
|
return $checked;
|
|
}
|
|
|