Fix a bug where a User's object cached lastModified time and the time in the
db can be off by 1 second. This is pretty rare but can be found during testing.
This commit is contained in:
parent
48e005e8cb
commit
ba87ea3380
1 changed files with 5 additions and 4 deletions
|
|
@ -442,10 +442,11 @@ sub profileField {
|
|||
if (defined $value) {
|
||||
$self->uncache;
|
||||
$self->{_profile}{$fieldName} = $value;
|
||||
$self->session->db->write("delete from userProfileData where userId=".$self->session->db->quote($self->{_userId})." and fieldName=".$self->session->db->quote($fieldName));
|
||||
$self->session->db->write("insert into userProfileData values (".$self->session->db->quote($self->{_userId}).", ".$self->session->db->quote($fieldName).", ".$self->session->db->quote($value).")");
|
||||
$self->{_user}{"lastUpdated"} =$self->session->datetime->time();
|
||||
$self->session->db->write("update users set lastUpdated=".$self->session->datetime->time()." where userId=".$self->session->db->quote($self->{_userId}));
|
||||
$self->session->db->write("delete from userProfileData where userId=? and fieldName=?",[$self->{_userId}, $fieldName]);
|
||||
$self->session->db->write("insert into userProfileData values (?,?,?)", [$self->{_userId}, $fieldName,$value]);
|
||||
my $time = $self->session->datetime->time();
|
||||
$self->{_user}{"lastUpdated"} = $time;
|
||||
$self->session->db->write("update users set lastUpdated=? where userId=?", [$time, $self->{_userId}]);
|
||||
}
|
||||
return $self->{_profile}{$fieldName};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue