Change mergeInto return signature; only merge posts if same user

This commit is contained in:
Toby Zerner 2015-05-07 06:38:40 +09:30
parent fd2708485a
commit 14b1a0dc4f
2 changed files with 14 additions and 9 deletions

View File

@ -13,16 +13,21 @@ class DiscussionRenamedPost extends ActivityPost
* Merge the post into another post of the same type.
*
* @param \Flarum\Core\Models\DiscussionRenamedPost $previous
* @return boolean true if the post was merged, false if it was deleted.
* @return \Flarum\Core\Models\Model|null The final model, or null if the
* previous post was deleted.
*/
protected function mergeInto(Model $previous)
{
if ($previous->content[0] == $this->content[1]) {
return false;
if ($this->user_id === $previous->user_id) {
if ($previous->content[0] == $this->content[1]) {
return;
}
$previous->content = static::buildContent($previous->content[0], $this->content[1]);
return $previous;
}
$previous->content = static::buildContent($previous->content[0], $this->content[1]);
return true;
return $this;
}
/**

View File

@ -5,13 +5,13 @@ trait MergeableTrait
public function saveAfter(Model $previous)
{
if ($previous instanceof static) {
if ($this->mergeInto($previous)) {
$previous->save();
if ($merged = $this->mergeInto($previous)) {
$merged->save();
return $merged;
} else {
$previous->delete();
return $previous;
}
return $previous;
}
$this->save();