X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FActivityModeration%2FActivityModerationPlugin.php;h=ba53a13a8af3437e06d6af5f78e77665024446fa;hb=93524c4be384a9d75cdb4cd3413894bb4e39de6b;hp=35eb5eb17a3d73ac19e2d8d389918336553eb500;hpb=e4a1dff98d6a15c8f513bdb2ef55c699f8e70bcd;p=quix0rs-gnu-social.git diff --git a/plugins/ActivityModeration/ActivityModerationPlugin.php b/plugins/ActivityModeration/ActivityModerationPlugin.php index 35eb5eb17a..ba53a13a8a 100644 --- a/plugins/ActivityModeration/ActivityModerationPlugin.php +++ b/plugins/ActivityModeration/ActivityModerationPlugin.php @@ -34,6 +34,30 @@ class ActivityModerationPlugin extends ActivityVerbHandlerPlugin return true; } + public function onGetNoticeSqlTimestamp($id, &$timestamp) + { + try { + $deleted = Deleted_notice::getByID($id); + $timestamp = $deleted->act_created; + } catch (NoResultException $e) { + return true; + } + // we're done for the event, so return false to stop it + return false; + } + + public function onIsNoticeDeleted($id, &$deleted) + { + try { + $found = Deleted_notice::getByID($id); + $deleted = ($found instanceof Deleted_notice); + } catch (NoResultException $e) { + $deleted = false; + } + // return true (continue event) if $deleted is false, return false (stop event) if deleted notice was found + return !$deleted; + } + protected function getActionTitle(ManagedAction $action, $verb, Notice $target, Profile $scoped) { // FIXME: switch based on action type @@ -50,7 +74,7 @@ class ActivityModerationPlugin extends ActivityVerbHandlerPlugin switch (true) { case ActivityUtils::compareVerbs($verb, array(ActivityVerb::DELETE)): // do whatever preparation is necessary to delete a verb - $target->delete(); + $target->deleteAs($scoped); break; default: throw new ServerException('ActivityVerb POST not handled by plugin that was supposed to do it.'); @@ -63,7 +87,8 @@ class ActivityModerationPlugin extends ActivityVerbHandlerPlugin } public function onDeleteNoticeAsProfile(Notice $stored, Profile $actor, &$result) { - // By adding a new 'delete' verb we will eventually trigger $this->saveObjectFromActivity + // By adding a new object with the 'delete' verb we will trigger + // $this->saveObjectFromActivity that will do the actual ->delete() if (false === Deleted_notice::addNew($stored, $actor)) { // false is returned if we did not have an error, but did not create the object // (i.e. the author is currently being deleted) @@ -71,8 +96,8 @@ class ActivityModerationPlugin extends ActivityVerbHandlerPlugin } // We return false (to stop the event) if the deleted_notice entry was - // added, which means we have run $this->saveObjectFromActivity which - // in turn has called the delete function of the notice. + // added, which means we have already run $this->saveObjectFromActivity + // which in turn has called the delete function of the notice. return false; }