diff options
Diffstat (limited to 'perllib/FixMyStreet/DB/Result/User.pm')
-rw-r--r-- | perllib/FixMyStreet/DB/Result/User.pm | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/perllib/FixMyStreet/DB/Result/User.pm b/perllib/FixMyStreet/DB/Result/User.pm index 4f46fcfe2..b0a05d0b7 100644 --- a/perllib/FixMyStreet/DB/Result/User.pm +++ b/perllib/FixMyStreet/DB/Result/User.pm @@ -163,10 +163,22 @@ __PACKAGE__->add_columns( encode_column => 1, encode_class => 'Crypt::Eksblowfish::Bcrypt', encode_args => { cost => cost() }, - encode_check_method => 'check_password', + encode_check_method => '_check_password', }, ); +sub check_password { + my $self = shift; + my $cobrand = $self->result_source->schema->cobrand; + if ($cobrand->moniker eq 'tfl') { + my $col_v = $self->get_extra_metadata('tfl_password'); + return unless defined $col_v; + $self->_column_encoders->{password}->($_[0], $col_v) eq $col_v; + } else { + $self->_check_password(@_); + } +} + around password => sub { my ($orig, $self) = (shift, shift); if (@_) { |