X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FPermissionTooltip.php;h=453bb5d3ac70bdf7d2000b98be1db6f755a7652d;hb=b36d4eb0dd4bdc25a468c95c749bfae1b6324be9;hp=032dc9c380827b8e7fd54001647257cb9fc24f9e;hpb=419fe67c6ca23dff0b2ec59d2af0c5e29699a648;p=friendica.git diff --git a/src/Module/PermissionTooltip.php b/src/Module/PermissionTooltip.php index 032dc9c380..453bb5d3ac 100644 --- a/src/Module/PermissionTooltip.php +++ b/src/Module/PermissionTooltip.php @@ -22,10 +22,13 @@ namespace Friendica\Module; use Friendica\Core\Hook; +use Friendica\Core\Session; +use Friendica\Core\System; use Friendica\Database\DBA; use Friendica\DI; use Friendica\Model\APContact; use Friendica\Model\Group; +use Friendica\Model\Item; use Friendica\Model\Post; use Friendica\Model\Tag; use Friendica\Model\User; @@ -47,7 +50,7 @@ class PermissionTooltip extends \Friendica\BaseModule throw new HTTPException\BadRequestException(DI::l10n()->t('Wrong type "%s", expected one of: %s', $type, implode(', ', $expectedTypes))); } - $condition = ['id' => $referenceId]; + $condition = ['id' => $referenceId, 'uid' => [0, Session::getLocalUser()]]; if ($type == 'item') { $fields = ['uid', 'psid', 'private', 'uri-id']; $model = Post::selectFirst($fields, $condition); @@ -77,12 +80,26 @@ class PermissionTooltip extends \Friendica\BaseModule if ($type == 'item') { $receivers = $this->fetchReceivers($model['uri-id']); + if (empty($receivers)) { + switch ($model['private']) { + case Item::PUBLIC: + $receivers = DI::l10n()->t('Public'); + break; + + case Item::UNLISTED: + $receivers = DI::l10n()->t('Unlisted'); + break; + + case Item::PRIVATE: + $receivers = DI::l10n()->t('Limited/Private'); + break; + } + } } else { $receivers = ''; } - if ($model['uid'] != local_user() || - empty($model['allow_cid']) + if (empty($model['allow_cid']) && empty($model['allow_gid']) && empty($model['deny_cid']) && empty($model['deny_gid']) @@ -149,20 +166,19 @@ class PermissionTooltip extends \Friendica\BaseModule } else { echo $o . $receivers; } - - exit(); + System::exit(); } /** * Fetch a list of receivers * * @param int $uriId - * @return string + * @return string */ - private function fetchReceivers(int $uriId):string + private function fetchReceivers(int $uriId): string { $own_url = ''; - $uid = local_user(); + $uid = Session::getLocalUser(); if ($uid) { $owner = User::getOwnerDataById($uid); if (!empty($owner['url'])) { @@ -177,17 +193,24 @@ class PermissionTooltip extends \Friendica\BaseModule continue; } - if ($receiver['url'] == ActivityPub::PUBLIC_COLLECTION) { - $receivers[$receiver['type']][] = DI::l10n()->t('Public'); - } else { - $apcontact = DBA::selectFirst('apcontact', ['name'], ['followers' => $receiver['url']]); - if (!empty($apcontact['name'])) { - $receivers[$receiver['type']][] = DI::l10n()->t('Followers (%s)', $apcontact['name']); - } elseif ($apcontact = APContact::getByURL($receiver['url'], false)) { - $receivers[$receiver['type']][] = $apcontact['name']; - } else { + switch (Tag::getTargetType($receiver['url'], false)) { + case Tag::PUBLIC_COLLECTION: + $receivers[$receiver['type']][] = DI::l10n()->t('Public'); + break; + case Tag::GENERAL_COLLECTION: + $receivers[$receiver['type']][] = DI::l10n()->t('Collection (%s)', $receiver['name']); + break; + case Tag::FOLLOWER_COLLECTION: + $apcontact = DBA::selectFirst('apcontact', ['name'], ['followers' => $receiver['url']]); + $receivers[$receiver['type']][] = DI::l10n()->t('Followers (%s)', $apcontact['name'] ?? $receiver['name']); + break; + case Tag::ACCOUNT: + $apcontact = APContact::getByURL($receiver['url'], false); + $receivers[$receiver['type']][] = $apcontact['name'] ?? $receiver['name']; + break; + default: $receivers[$receiver['type']][] = $receiver['name']; - } + break; } }