Luc Didry 1c2cee
# vim:set sw=4 ts=4 sts=4 ft=perl expandtab:
Luc Didry 1c2cee
package Lufi::Controller::Misc;
Luc Didry 1c2cee
use Mojo::Base 'Mojolicious::Controller';
Luc Didry 1c2cee
use Mojo::File;
Luc Didry 53342a
use Mojo::JSON qw(true false);
Luc Didry c64d26
use Mojo::URL;
Luc Didry d909b8
use Lufi::DB::File;
Luc Didry 1c2cee
Luc Didry 25ab7e
sub index {
Luc Didry 25ab7e
    my $c = shift;
mildis 537764
    if ((!defined($c->config('ldap')) && !defined($c->config('htpasswd')) && !defined($c->config('auth_headers'))) || $c->is_user_authenticated) {
Luc Didry 25ab7e
        $c->render(template => 'index');
Luc Didry 25ab7e
    } else {
Luc Didry 25ab7e
        $c->redirect_to('login');
Luc Didry 25ab7e
    }
Luc Didry 25ab7e
}
Luc Didry 25ab7e
Luc Didry 986e77
sub change_lang {
Luc Didry 986e77
    my $c = shift;
Luc Didry 986e77
    my $l = $c->param('l');
Luc Didry 986e77
Luc Didry 72404a
    if ($c->iso639_native_name($l)) {
Luc Didry 72404a
        $c->cookie($c->app->moniker.'_lang' => $l, { path => $c->config('prefix') });
Luc Didry 72404a
    }
Luc Didry 986e77
Luc Didry c64d26
    if ($c->req->headers->referrer
Luc Didry cd0c4f
        && Mojo::URL->new($c->req->headers->referrer)->host eq $c->req->url->to_abs->host) {
Luc Didry 986e77
        return $c->redirect_to($c->req->headers->referrer);
Luc Didry 986e77
    } else {
Luc Didry 986e77
        return $c->redirect_to('/');
Luc Didry 986e77
    }
Luc Didry 986e77
}
Luc Didry 986e77
Luc Didry 25ab7e
sub about {
Luc Didry 17600f
    my $c = shift;
Luc Didry 17600f
Luc Didry 17600f
    $c->render(
Luc Didry 17600f
        template => 'about',
Luc Didry 17600f
        version  => $c->git_version
Luc Didry 17600f
    );
Luc Didry 25ab7e
}
Luc Didry 25ab7e
Luc Didry 53342a
sub config_infos {
Luc Didry 53342a
    my $c = shift;
Luc Didry 53342a
Luc Didry 53342a
    $c->render(
Luc Didry 53342a
        json => {
Luc Didry 53342a
            report                   => $c->config('report'),
Luc Didry 53342a
            instance_name            => $c->config('instance_name'),
Luc Didry 53342a
            max_file_size            => $c->config('max_file_size'),
Luc Didry 53342a
            broadcast_message        => $c->config('broadcast_message'),
Luc Didry 53342a
            default_delay            => $c->config('default_delay'),
Luc Didry 53342a
            max_delay                => $c->config('max_delay'),
Luc Didry 53342a
            delay_for_size           => $c->config('delay_for_size'),
Luc Didry 53342a
            allow_pwd_on_files       => $c->config('allow_pwd_on_files'),
Luc Didry 53342a
            force_burn_after_reading => $c->config('force_burn_after_reading'),
Luc Didry 53342a
            keep_ip_during           => $c->config('keep_ip_during'),
Luc Didry 53342a
            stop_upload              => (-f 'stop-upload' || -f 'stop-upload.manual') ? true : false,
mildis 537764
            need_authentication      => (defined($c->config('ldap')) || defined($c->config('htpasswd')) || defined($c->config('auth_headers'))) ? true : false,
Luc Didry 17600f
            version                  => $c->git_version
Luc Didry 53342a
        }
Luc Didry 53342a
    );
Luc Didry 53342a
}
Luc Didry 53342a
Luc Didry 25ab7e
sub js_files {
Luc Didry 25ab7e
    my $c = shift;
Luc Didry 25ab7e
Luc Didry 25ab7e
    $c->stash($c->req->params->to_hash);
Luc Didry 25ab7e
    $c->render(
Luc Didry 25ab7e
        template => 'partial/'.$c->param('file'),
Luc Didry 25ab7e
        format   => 'js',
Luc Didry 25ab7e
        layout   => undef,
Luc Didry 25ab7e
    );
Luc Didry 25ab7e
}
Luc Didry 25ab7e
Luc Didry 1c2cee
sub fullstats {
Luc Didry 1c2cee
    my $c = shift;
Luc Didry 1c2cee
Luc Didry d909b8
    my $stats = Lufi::DB::File->new(app => $c->app)->get_stats;
Luc Didry 40dc29
    $stats->{timestamp} = time;
Luc Didry 1c2cee
Luc Didry 1c2cee
    return $c->render(
Luc Didry 40dc29
        json => $stats
Luc Didry 1c2cee
    );
Luc Didry 1c2cee
}
Luc Didry 1c2cee
Luc Didry 25ab7e
sub delays {
Luc Didry 25ab7e
    shift->render(template => 'delays');
Luc Didry 25ab7e
}
Luc Didry 25ab7e
Luc Didry 1c2cee
1;