<?php
/**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
namespace Friendica\Module;
use Friendica\Core\Hook;
+use Friendica\Core\Protocol;
+use Friendica\Core\System;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\APContact;
use Friendica\Model\Tag;
use Friendica\Model\User;
use Friendica\Network\HTTPException;
-use Friendica\Protocol\ActivityPub;
/**
* Outputs the permission tooltip HTML content for the provided item, photo or event id.
throw new HTTPException\BadRequestException(DI::l10n()->t('Wrong type "%s", expected one of: %s', $type, implode(', ', $expectedTypes)));
}
- $condition = ['id' => $referenceId, 'uid' => [0, local_user()]];
+ $condition = ['id' => $referenceId, 'uid' => [0, DI::userSession()->getLocalUserId()]];
if ($type == 'item') {
- $fields = ['uid', 'psid', 'private', 'uri-id'];
- $model = Post::selectFirst($fields, $condition);
+ $fields = ['uid', 'psid', 'private', 'uri-id', 'origin', 'network'];
+ $model = Post::selectFirst($fields, $condition, ['order' => ['uid' => true]]);
+
+ if ($model['origin'] || ($model['network'] != Protocol::ACTIVITYPUB)) {
+ $permissionSet = DI::permissionSet()->selectOneById($model['psid'], $model['uid']);
+ $model['allow_cid'] = $permissionSet->allow_cid;
+ $model['allow_gid'] = $permissionSet->allow_gid;
+ $model['deny_cid'] = $permissionSet->deny_cid;
+ $model['deny_gid'] = $permissionSet->deny_gid;
+ } else {
+ $model['allow_cid'] = [];
+ $model['allow_gid'] = [];
+ $model['deny_cid'] = [];
+ $model['deny_gid'] = [];
+ }
} else {
$fields = ['uid', 'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid'];
$model = DBA::selectFirst($type, $fields, $condition);
throw new HttpException\NotFoundException(DI::l10n()->t('Model not found'));
}
- if (isset($model['psid'])) {
- $permissionSet = DI::permissionSet()->selectOneById($model['psid'], $model['uid']);
- $model['allow_cid'] = $permissionSet->allow_cid;
- $model['allow_gid'] = $permissionSet->allow_gid;
- $model['deny_cid'] = $permissionSet->deny_cid;
- $model['deny_gid'] = $permissionSet->deny_gid;
- }
-
// Kept for backwards compatiblity
Hook::callAll('lockview_content', $model);
}
if (!empty($l)) {
- echo $o . implode(', ', $l);
+ System::httpExit($o . implode(', ', $l));
} else {
- echo $o . $receivers;
+ System::httpExit($o . $receivers);;
}
- DI::page()->logRuntime();
- exit();
}
/**
* @param int $uriId
* @return string
*/
- private function fetchReceivers(int $uriId):string
+ private function fetchReceivers(int $uriId): string
{
$own_url = '';
- $uid = local_user();
+ $uid = DI::userSession()->getLocalUserId();
if ($uid) {
$owner = User::getOwnerDataById($uid);
if (!empty($owner['url'])) {