public function publish($target, $targetId, bdSocialShare_Shareable_Abstract $shareable, array $viewingUser = null) { $this->standardizeViewingUserReference($viewingUser); $shareable->setViewingUser($viewingUser); switch ($target) { case 'facebook': if (bdSocialShare_Option::hasPermissionFacebook($viewingUser)) { return $this->facebookPublish($targetId, $shareable, $viewingUser); } break; case 'twitter': if (bdSocialShare_Option::hasPermissionTwitter($viewingUser)) { return $this->twitterPublish($targetId, $shareable, $viewingUser); } break; } }