X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FPermissionTooltip.php;h=4e5191e5a48c3b07e7a9193a62c6931fbb2752e5;hb=96d2cddb54f3ea3ead6e43e5ca1f814ed6327987;hp=c1ef4c2b4b794a5286cbd9d22ece63f98314d54e;hpb=2f3f41ed9cdb4229d78bdf2f91b0617403a8dd62;p=friendica.git
diff --git a/src/Module/PermissionTooltip.php b/src/Module/PermissionTooltip.php
index c1ef4c2b4b..4e5191e5a4 100644
--- a/src/Module/PermissionTooltip.php
+++ b/src/Module/PermissionTooltip.php
@@ -1,6 +1,6 @@
$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);
@@ -66,15 +79,7 @@ class PermissionTooltip extends \Friendica\BaseModule
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
+ // Kept for backwards compatibility
Hook::callAll('lockview_content', $model);
if ($type == 'item') {
@@ -108,29 +113,29 @@ class PermissionTooltip extends \Friendica\BaseModule
exit;
}
- $allowed_users = $model['allow_cid'];
- $allowed_groups = $model['allow_gid'];
- $deny_users = $model['deny_cid'];
- $deny_groups = $model['deny_gid'];
+ $allowed_users = $model['allow_cid'];
+ $allowed_circles = $model['allow_gid'];
+ $deny_users = $model['deny_cid'];
+ $deny_circles = $model['deny_gid'];
$o = DI::l10n()->t('Visible to:') . '
';
$l = [];
- if (count($allowed_groups)) {
- $key = array_search(Group::FOLLOWERS, $allowed_groups);
+ if (count($allowed_circles)) {
+ $key = array_search(Circle::FOLLOWERS, $allowed_circles);
if ($key !== false) {
$l[] = '' . DI::l10n()->t('Followers') . '';
- unset($allowed_groups[$key]);
+ unset($allowed_circles[$key]);
}
- $key = array_search(Group::MUTUALS, $allowed_groups);
+ $key = array_search(Circle::MUTUALS, $allowed_circles);
if ($key !== false) {
$l[] = '' . DI::l10n()->t('Mutuals') . '';
- unset($allowed_groups[$key]);
+ unset($allowed_circles[$key]);
}
- foreach (DI::dba()->selectToArray('group', ['name'], ['id' => $allowed_groups]) as $group) {
- $l[] = '' . $group['name'] . '';
+ foreach (DI::dba()->selectToArray('group', ['name'], ['id' => $allowed_circles]) as $circle) {
+ $l[] = '' . $circle['name'] . '';
}
}
@@ -138,21 +143,21 @@ class PermissionTooltip extends \Friendica\BaseModule
$l[] = $contact['name'];
}
- if (count($deny_groups)) {
- $key = array_search(Group::FOLLOWERS, $deny_groups);
+ if (count($deny_circles)) {
+ $key = array_search(Circle::FOLLOWERS, $deny_circles);
if ($key !== false) {
$l[] = '' . DI::l10n()->t('Followers') . '';
- unset($deny_groups[$key]);
+ unset($deny_circles[$key]);
}
- $key = array_search(Group::MUTUALS, $deny_groups);
+ $key = array_search(Circle::MUTUALS, $deny_circles);
if ($key !== false) {
$l[] = '' . DI::l10n()->t('Mutuals') . '';
- unset($deny_groups[$key]);
+ unset($deny_circles[$key]);
}
- foreach (DI::dba()->selectToArray('group', ['name'], ['id' => $allowed_groups]) as $group) {
- $l[] = '' . $group['name'] . '';
+ foreach (DI::dba()->selectToArray('group', ['name'], ['id' => $allowed_circles]) as $circle) {
+ $l[] = '' . $circle['name'] . '';
}
}
@@ -161,11 +166,10 @@ class PermissionTooltip extends \Friendica\BaseModule
}
if (!empty($l)) {
- echo $o . implode(', ', $l);
+ System::httpExit($o . implode(', ', $l));
} else {
- echo $o . $receivers;
+ System::httpExit($o . $receivers);;
}
- System::exit();
}
/**
@@ -186,7 +190,7 @@ class PermissionTooltip extends \Friendica\BaseModule
}
$receivers = [];
- foreach (Tag::getByURIId($uriId, [Tag::TO, Tag::CC, Tag::BCC]) as $receiver) {
+ foreach (Tag::getByURIId($uriId, [Tag::TO, Tag::CC, Tag::BCC, Tag::AUDIENCE, Tag::ATTRIBUTED]) as $receiver) {
// We only display BCC when it contains the current user
if (($receiver['type'] == Tag::BCC) && ($receiver['url'] != $own_url)) {
continue;
@@ -232,6 +236,12 @@ class PermissionTooltip extends \Friendica\BaseModule
case Tag::BCC:
$output .= DI::l10n()->t('BCC: %s
', implode(', ', $receiver));
break;
+ case Tag::AUDIENCE:
+ $output .= DI::l10n()->t('Audience: %s
', implode(', ', $receiver));
+ break;
+ case Tag::ATTRIBUTED:
+ $output .= DI::l10n()->t('Attributed To: %s
', implode(', ', $receiver));
+ break;
}
}