Select Git revision
-
millosolomillo authored
This reverts commit 9b697dc6.
millosolomillo authoredThis reverts commit 9b697dc6.
SeMeet.pm 4.02 KiB
package SeMeet;
use Mojo::Base 'Mojolicious', -signatures;
use Mojo::Pg;
use Mojo::Redis;
use Mojolicious::Plugin::Authentication;
use Mojolicious::Plugin::I18N;
use Net::OAuth2::Profile::WebServer;
use SeMeet::Schema;
use SeMeet::Model::IAPI;
sub startup( $self ) {
# Nacteni konfigurace
my $cfg = $self->plugin('Config' => { file => 'semeet.conf'} );
# Konfigurace z ENV ma prednost
KEY:
foreach my $key ( keys %ENV ) {
if ( $key =~ /^CFG_(.+)/i ) {
$cfg->{lc($1)} = $ENV{$key};
}
}
$self->helper( cfg => sub { return $cfg; } );
# Podpis pro cookies
$self->secrets([$cfg->{session_secret}]);
# Delka session
$self->sessions->default_expiration($cfg->{session_lifetime} // 24 * 3600);
$self->plugin('SeMeet::Helpers::Core');
$self->plugin('SeMeet::Helpers::OIDC');
# migrace schematu
my $pg = Mojo::Pg->new
->dsn($cfg->{database}{dsn})
->username($cfg->{database}{user})
->password($cfg->{database}{password})
;
$pg->migrations->from_file($self->home . '/sql/migrations.sql');
$pg->migrations->migrate();
$self->helper( pg => sub { return $pg; } );
# Spojeni s databazi
my $schema = SeMeet::Schema->connect($cfg->{database});
$self->helper( schema => sub { return $schema; } );
# Redis
my $iapi = SeMeet::Model::IAPI->new( $cfg->{iapi} );
$self->helper( iapi => sub { return $iapi; } );
# Redis
my $redis = Mojo::Redis->new( $cfg->{redis} );
$self->helper( redis => sub { return $redis; } );
# i18n
$self->plugin( I18N => {
namespace => 'SeMeet::I18N',
default => 'cs',
});
$self->plugin('authentication', {
autoload_user => 1,
load_user => sub($c, $uid) {
# $c->trace($c->session->{user});
return $c->session->{user};
},
validate_user => sub($c, $user, $pass, $extradata) {
return $c->session->{user} ? 1 : undef;