// Create Diaspora signature
if ($item['origin'] && empty($item['diaspora_signed_text']) && ($item['gravity'] != GRAVITY_PARENT)) {
- if ($uid == 0) {
- $sender_contact = Contact::getById($item['contact-id'], ['uid']);
- $sender_uid = $sender_contact['uid'];
- } else {
- $sender_uid = $uid;
- }
- $signed = Diaspora::createCommentSignature($sender_uid, $item);
+ $signed = Diaspora::createCommentSignature($item);
if (!empty($signed)) {
$item['diaspora_signed_text'] = json_encode($signed);
}
/**
* Creates the signature for Comments that are created on our system
*
- * @param integer $uid The user of that comment
* @param array $item Item array
*
* @return array Signed content
* @throws \Exception
*/
- public static function createCommentSignature($uid, array $item)
+ public static function createCommentSignature(array $item)
{
+ $contact = Contact::getById($item['author-id'], ['url']);
+ if (empty($contact['url'])) {
+ Logger::warning('Author Contact not found', ['author-id' => $item['author-id']]);
+ return false;
+ }
+
+ $uid = User::getIdForURL($contact['url']);
+ if (empty($uid)) {
+ Logger::info('No owner post, so not storing signature', ['url' => $contact['url']]);
+ return false;
+ }
+
$owner = User::getOwnerDataById($uid);
if (empty($owner)) {
Logger::info('No owner post, so not storing signature');