diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 319d4ae2a..e2bdd2253 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -20,6 +20,7 @@ - fixed: Clipboard select all doesn't work with one item in IE - fixed: able to view visitor profile, send private messages, add as friend - fixed: international characters corrupted in titles + - fixed: Users without karma can transfer karma by rating posts 7.5.9 - fixed: Collaboration System attachments follow site's max size instead of CS's diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index c90d85f65..7bb51c74f 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -919,8 +919,10 @@ sub rate { return undef if $self->hasRated; $self->insertUserPostRating($rating); $self->recalculatePostRating(); - $self->getThread->updateThreadRating(); - if ($self->session->setting->get("useKarma")) { + my $thread = $self->getThread; + $thread->updateThreadRating(); + if ($self->session->setting->get("useKarma") + && $self->session->user->karma > $thread->getParent->get('karmaSpentToRate')) { $self->session->user->karma(-$self->getThread->getParent->get("karmaSpentToRate"), "Rated Post ".$self->getId, "Rated a CS Post."); my $u = WebGUI::User->new($self->session, $self->get("ownerUserId")); $u->karma($self->getThread->getParent->get("karmaRatingMultiplier"), "Post ".$self->getId." Rated by ".$self->session->user->userId, "Had post rated.");