From 0108fdcd068598353cc51015f231ae20ac3021df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrej=20Rama=C5=A1euski?= <andrej@x2.cz> Date: Fri, 12 Nov 2021 22:19:04 +0100 Subject: [PATCH] Roles bugfix, allow skip migration --- .gitlab-ci.yml | 2 +- lib/CF2022.pm | 26 ++++++++++++++------------ lib/CF2022/Controller/Orders.pm | 4 ++-- lib/CF2022/Helpers/Auth.pm | 4 +++- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2338ff3..5a960f5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,7 +2,7 @@ image: docker:20.10.9 variables: DOCKER_TLS_CERTDIR: "/certs" - IMAGE_VER: 0.5.0 + IMAGE_VER: 0.5.1 services: - docker:20.10.9-dind diff --git a/lib/CF2022.pm b/lib/CF2022.pm index 9f0924b..2beb42b 100644 --- a/lib/CF2022.pm +++ b/lib/CF2022.pm @@ -24,19 +24,21 @@ sub startup { # $self->helper( redis => sub { return $redis; } ); # migrace schematu - my $pg = Mojo::Pg->new - ->dsn($cfg->{db_dsn}) - ->username($cfg->{db_username}) - ->password($cfg->{db_password}) - ; - if ($cfg->{test}) { - $pg->search_path(['test']); - $pg->db->query('drop schema if exists test cascade'); - $pg->db->query('create schema test'); + if (! $cfg->{skip_migration}) { + my $pg = Mojo::Pg->new + ->dsn($cfg->{db_dsn}) + ->username($cfg->{db_username}) + ->password($cfg->{db_password}) + ; + if ($cfg->{test}) { + $pg->search_path(['test']); + $pg->db->query('drop schema if exists test cascade'); + $pg->db->query('create schema test'); + } + $pg->migrations->from_dir($self->home . '/sql'); + $pg->migrations->migrate(); + $self->helper( pg => sub { return $pg; } ); } - $pg->migrations->from_dir($self->home . '/sql'); - $pg->migrations->migrate(); - $self->helper( pg => sub { return $pg; } ); # DB Schema my $schema = CF2022::Schema->connect({ diff --git a/lib/CF2022/Controller/Orders.pm b/lib/CF2022/Controller/Orders.pm index fa3e677..e87defd 100644 --- a/lib/CF2022/Controller/Orders.pm +++ b/lib/CF2022/Controller/Orders.pm @@ -45,9 +45,9 @@ sub create ($c ) { ); @products = grep { $_->{id} !~ MAIN_PRODUCTS } @products; - push @products, { + @products = ({ id => $c->config->{'pretix_product_' . $group->{role}} - }; + }, @products); if ( $group->{role} eq 'member' ) { $args->{email} = $claims->{preferred_username} diff --git a/lib/CF2022/Helpers/Auth.pm b/lib/CF2022/Helpers/Auth.pm index 7537e87..da31c9f 100644 --- a/lib/CF2022/Helpers/Auth.pm +++ b/lib/CF2022/Helpers/Auth.pm @@ -80,12 +80,14 @@ sub register ( $class, $self, $conf) { GROUP: foreach my $group ( sort @{ $claims->{groups} } ) { if ( $group =~ REGIONS ) { + my $role = ( $2 eq 'f') ? 'member':'regp'; + my $region = $c->oauth_groups->{ $group }; $region =~ s/^KS\s+//i; return { region => $region, - role => ( $2 eq 'f') ? 'member':'regp', + role => $role, }; } } -- GitLab