aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/DBIx/Class/FixMyStreet/EncodedColumn.pm
diff options
context:
space:
mode:
authorMarius Halden <marius.h@lden.org>2020-09-29 14:23:52 +0200
committerMarius Halden <marius.h@lden.org>2020-09-29 14:23:52 +0200
commita27ce1524d801d2742a2bdb6ec1da45126d64353 (patch)
tree64123c4e17dc1776aa0a7cd65ee01d49d3e7d978 /perllib/DBIx/Class/FixMyStreet/EncodedColumn.pm
parent377bd96aab7cad3434185c30eb908c9da447fe40 (diff)
parent2773c60226b9370fe8ee00f7b205b571bb87c3b5 (diff)
Merge tag 'v3.0.1' into fiksgatami-dev
Diffstat (limited to 'perllib/DBIx/Class/FixMyStreet/EncodedColumn.pm')
-rw-r--r--perllib/DBIx/Class/FixMyStreet/EncodedColumn.pm14
1 files changed, 14 insertions, 0 deletions
diff --git a/perllib/DBIx/Class/FixMyStreet/EncodedColumn.pm b/perllib/DBIx/Class/FixMyStreet/EncodedColumn.pm
index 0d86c7639..82e6e591e 100644
--- a/perllib/DBIx/Class/FixMyStreet/EncodedColumn.pm
+++ b/perllib/DBIx/Class/FixMyStreet/EncodedColumn.pm
@@ -8,6 +8,20 @@ use base qw/DBIx::Class::EncodedColumn/;
# mySociety override to allow direct setting without double encryption
sub set_column {
my $self = shift;
+ if ($_[0] eq 'password') {
+ my $cobrand = $self->result_source->schema->cobrand;
+ if ($cobrand && $cobrand->moniker eq 'tfl') {
+ if (defined $_[1]) {
+ if (defined $_[2]) {
+ $self->set_extra_metadata(tfl_password => $_[1]);
+ } else {
+ my $encoder = $self->_column_encoders->{password};
+ $self->set_extra_metadata(tfl_password => $encoder->($_[1]));
+ }
+ }
+ return $self->get_extra_metadata('tfl_password');
+ }
+ }
return DBIx::Class::Row::set_column($self, @_) unless defined $_[1] and not defined $_[2];
$self->next::method(@_);
}