]> git.mxchange.org Git - friendica.git/commitdiff
Set item permissions on reshare
authorMichael <heluecht@pirati.ca>
Mon, 29 Nov 2021 04:38:58 +0000 (04:38 +0000)
committerMichael <heluecht@pirati.ca>
Mon, 29 Nov 2021 04:38:58 +0000 (04:38 +0000)
src/Module/Api/Twitter/Statuses/Retweet.php
src/Module/Api/Twitter/Statuses/Update.php

index 0df60d2c97f00ffaed775c3fd53e328c9050846e..7c6a53e19a4c9a177f200251332db1c6e9a6486b 100644 (file)
@@ -27,6 +27,7 @@ use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Item;
 use Friendica\Model\Post;
 use Friendica\DI;
 use Friendica\Model\Item;
 use Friendica\Model\Post;
+use Friendica\Model\User;
 use Friendica\Module\BaseApi;
 use Friendica\Network\HTTPException\BadRequestException;
 use Friendica\Network\HTTPException\ForbiddenException;
 use Friendica\Module\BaseApi;
 use Friendica\Network\HTTPException\BadRequestException;
 use Friendica\Network\HTTPException\ForbiddenException;
@@ -80,6 +81,21 @@ class Retweet extends BaseApi
                                        'app'  => $request['source'] ?? '',
                                ];
 
                                        'app'  => $request['source'] ?? '',
                                ];
 
+                               $owner = User::getOwnerDataById($uid);
+
+                               $item['allow_cid'] = $owner['allow_cid'];
+                               $item['allow_gid'] = $owner['allow_gid'];
+                               $item['deny_cid']  = $owner['deny_cid'];
+                               $item['deny_gid']  = $owner['deny_gid'];
+
+                               if (!empty($item['allow_cid'] . $item['allow_gid'] . $item['deny_cid'] . $item['deny_gid'])) {
+                                       $item['private'] = Item::PRIVATE;
+                               } elseif (DI::pConfig()->get($uid, 'system', 'unlisted')) {
+                                       $item['private'] = Item::UNLISTED;
+                               } else {
+                                       $item['private'] = Item::PUBLIC;
+                               }
+
                                if (empty($item['app']) && !empty(self::getCurrentApplication()['name'])) {
                                        $item['app'] = self::getCurrentApplication()['name'];
                                }
                                if (empty($item['app']) && !empty(self::getCurrentApplication()['name'])) {
                                        $item['app'] = self::getCurrentApplication()['name'];
                                }
index be55cc414635731dda8f5f03a70ed78317013f08..b15b7f189c7627b0cc8f4cfc0e0f350b39ac966e 100644 (file)
@@ -184,6 +184,7 @@ class Update extends BaseApi
                                // output the post that we just posted.
                                $status_info = DI::twitterStatus()->createFromUriId($item['uri-id'], $uid, $request['include_entities'])->toArray();
                                DI::apiResponse()->exit('status', ['status' => $status_info], $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid));
                                // output the post that we just posted.
                                $status_info = DI::twitterStatus()->createFromUriId($item['uri-id'], $uid, $request['include_entities'])->toArray();
                                DI::apiResponse()->exit('status', ['status' => $status_info], $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid));
+                               return;
                        }
                }
                DI::mstdnError()->InternalError();
                        }
                }
                DI::mstdnError()->InternalError();