aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/DB/Result/User.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet/DB/Result/User.pm')
-rw-r--r--perllib/FixMyStreet/DB/Result/User.pm14
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 (@_) {