[dw-free] migrate LJ::set_userprop to $u->set_prop
[commit: http://hg.dwscoalition.org/dw-free/rev/95226a1cdf3a]
http://bugs.dwscoalition.org/show_bug.cgi?id=2657
Pass in explicitly the option to only update the db if the value has
changed, instead of guessing (guessing may not catch cases where we had just
not passed in a value because we don't have it on hand)
Patch by
kareila.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=2657
Pass in explicitly the option to only update the db if the value has
changed, instead of guessing (guessing may not catch cases where we had just
not passed in a value because we don't have it on hand)
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- cgi-bin/LJ/User.pm
- htdocs/manage/profile/index.bml
-------------------------------------------------------------------------------- diff -r a1367eecddb9 -r 95226a1cdf3a cgi-bin/LJ/User.pm --- a/cgi-bin/LJ/User.pm Wed Jul 21 20:38:10 2010 -0700 +++ b/cgi-bin/LJ/User.pm Thu Jul 22 09:47:11 2010 -0700 @@ -2784,9 +2784,10 @@ sub remove_from_class { # or also accepts a hashref of propname keys and corresponding values. # Returns boolean indicating success or failure. sub set_prop { - my ( $u, $prop, $value ) = @_; + my ( $u, $prop, $value, $opts ) = @_; my $userid = $u->userid + 0; my $hash = ref $prop eq "HASH" ? $prop : { $prop => $value }; + $opts ||= {}; my %action; # $table -> {"replace"|"delete"} -> [ "($propid, $qvalue)" | propid ] my %multihomed; # { $propid => $value } @@ -2816,7 +2817,7 @@ sub set_prop { $table = 'userpropblob' if $p->{datatype} eq 'blobchar'; # only assign db for update action if value has changed - unless ( exists $u->{$propname} && $value eq $u->{$propname} ) { + unless ( $opts->{skip_db} && $value eq $u->{$propname} ) { my $db = $action{$table}->{db} ||= ( $table !~ m{userprop(lite2|blob)} ? LJ::get_db_writer() # global diff -r a1367eecddb9 -r 95226a1cdf3a htdocs/manage/profile/index.bml --- a/htdocs/manage/profile/index.bml Wed Jul 21 20:38:10 2010 -0700 +++ b/htdocs/manage/profile/index.bml Thu Jul 22 09:47:11 2010 -0700 @@ -709,7 +709,7 @@ body<= $eff_val = "" unless $eff_val; $prop{$uprop} = $eff_val; } - $u->set_prop( \%prop ); + $u->set_prop( \%prop, undef, { skip_db => 1 } ); # location or bday could've changed... (who cares about checking exactly) $u->invalidate_directory_record; --------------------------------------------------------------------------------