Skip to content
Snippets Groups Projects
Select Git revision
  • 5bfd91a5579a1dbb80eba00dbd32981d559d665e
  • test default protected
  • master protected
  • original
  • pirati-backup protected
  • beta-2
  • beta-1
  • v3.1.4
  • v3.1.3
  • v3.1.2
  • v3.1.1
  • v3.1.0
  • v3.0.16
  • v3.0.15
  • v3.0.14
  • v3.0.13
  • v3.0.12
  • v3.0.11
  • v3.0.10
  • v3.0.9
  • v3.0.8
  • v3.0.7
  • v3.0.6
  • v3.0.5
  • v3.0.4
25 results

models.py

Blame
  • 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;