Fix some warnings on item creation
This commit is contained in:
parent
e6f6087cac
commit
cd3dbad2a8
4 changed files with 28 additions and 4 deletions
|
@ -859,7 +859,7 @@ class Item
|
|||
|
||||
$user = User::getById($post['uid'], ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid']);
|
||||
if (!$user) {
|
||||
throw new HTTPException\NotFoundException($this->l10n->t('Unable to locate original post.'));
|
||||
throw new HTTPException\NotFoundException($this->l10n->t('Unable to fetch user.'));
|
||||
}
|
||||
|
||||
$post['allow_cid'] = isset($request['contact_allow']) ? $this->aclFormatter->toString($request['contact_allow']) : $user['allow_cid'] ?? '';
|
||||
|
@ -957,10 +957,30 @@ class Item
|
|||
$post['origin'] = true;
|
||||
$post['wall'] = $post['wall'] ?? true;
|
||||
$post['guid'] = $post['guid'] ?? System::createUUID();
|
||||
$post['uri'] = $post['uri'] ?? ItemModel::newURI($post['guid']);
|
||||
$post['verb'] = $post['verb'] ?? Activity::POST;
|
||||
|
||||
if (empty($post['uri'])) {
|
||||
$post['thr-parent'] = $post['uri'] = ItemModel::newURI($post['guid']);
|
||||
$post['gravity'] = ItemModel::GRAVITY_PARENT;
|
||||
}
|
||||
|
||||
$owner = User::getOwnerDataById($post['uid']);
|
||||
|
||||
if (!isset($post['allow_cid']) || !isset($post['allow_gid']) || !isset($post['deny_cid']) || !isset($post['deny_gid'])) {
|
||||
$post['allow_cid'] = $owner['allow_cid'];
|
||||
$post['allow_gid'] = $owner['allow_gid'];
|
||||
$post['deny_cid'] = $owner['deny_cid'];
|
||||
$post['deny_gid'] = $owner['deny_gid'];
|
||||
}
|
||||
|
||||
if ($post['allow_gid'] || $post['allow_cid'] || $post['deny_gid'] || $post['deny_cid']) {
|
||||
$post['private'] = ItemModel::PRIVATE;
|
||||
} elseif ($this->pConfig->get($post['uid'], 'system', 'unlisted')) {
|
||||
$post['private'] = ItemModel::UNLISTED;
|
||||
} else {
|
||||
$post['private'] = ItemModel::PUBLIC;
|
||||
}
|
||||
|
||||
if (empty($post['contact-id'])) {
|
||||
$post['contact-id'] = $owner['id'];
|
||||
}
|
||||
|
|
|
@ -1224,6 +1224,8 @@ class Item
|
|||
Post\Content::insert($item['uri-id'], $item);
|
||||
}
|
||||
|
||||
$item['parent'] = $parent_id;
|
||||
|
||||
// Create Diaspora signature
|
||||
if ($item['origin'] && empty($item['diaspora_signed_text']) && ($item['gravity'] != self::GRAVITY_PARENT)) {
|
||||
$signed = Diaspora::createCommentSignature($item);
|
||||
|
@ -1741,16 +1743,16 @@ class Item
|
|||
$item['origin'] = 0;
|
||||
$item['wall'] = 0;
|
||||
|
||||
$item['contact-id'] = self::contactId($item);
|
||||
|
||||
$notify = false;
|
||||
if ($item['gravity'] == self::GRAVITY_PARENT) {
|
||||
$contact = DBA::selectFirst('contact', [], ['id' => $item['contact-id'], 'self' => false]);
|
||||
if (DBA::isResult($contact)) {
|
||||
$notify = self::isRemoteSelf($contact, $item);
|
||||
$item['wall'] = (bool)$notify;
|
||||
}
|
||||
}
|
||||
|
||||
$item['contact-id'] = self::contactId($item);
|
||||
$distributed = self::insert($item, $notify);
|
||||
|
||||
if (!$distributed) {
|
||||
|
|
|
@ -2079,6 +2079,7 @@ class DFRN
|
|||
// This is my contact on another system, but it's really me.
|
||||
// Turn this into a wall post.
|
||||
$notify = Item::isRemoteSelf($importer, $item);
|
||||
$item['wall'] = (bool)$notify;
|
||||
|
||||
$posted_id = Item::insert($item, $notify);
|
||||
|
||||
|
|
|
@ -624,6 +624,7 @@ class Feed
|
|||
Logger::info('Stored feed', ['item' => $item]);
|
||||
|
||||
$notify = Item::isRemoteSelf($contact, $item);
|
||||
$item['wall'] = (bool)$notify;
|
||||
|
||||
// Distributed items should have a well-formatted URI.
|
||||
// Additionally, we have to avoid conflicts with identical URI between imported feeds and these items.
|
||||
|
|
Loading…
Reference in a new issue