mirror of
https://github.com/friendica/friendica
synced 2025-04-22 05:10:10 +00:00
Post permissions are now copied from the thread parent
This commit is contained in:
parent
999c56a284
commit
8e05c282b1
10 changed files with 141 additions and 33 deletions
|
@ -25,7 +25,6 @@ use Friendica\Content\PageInfo;
|
|||
use Friendica\Content\Text\BBCode;
|
||||
use Friendica\Content\Text\Markdown;
|
||||
use Friendica\Core\Protocol;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Core\Worker;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\DI;
|
||||
|
@ -192,6 +191,7 @@ class Statuses extends BaseApi
|
|||
$item['title'] = '';
|
||||
$item['body'] = $this->formatStatus($request['status'], $uid);
|
||||
$item['app'] = $this->getApp();
|
||||
$item['visibility'] = $request['visibility'];
|
||||
|
||||
switch ($request['visibility']) {
|
||||
case 'public':
|
||||
|
@ -209,6 +209,18 @@ class Statuses extends BaseApi
|
|||
$item['private'] = Item::UNLISTED;
|
||||
break;
|
||||
case 'private':
|
||||
if ($request['in_reply_to_id']) {
|
||||
$parent_item = Post::selectFirst(Item::ITEM_FIELDLIST, ['uri-id' => $request['in_reply_to_id'], 'uid' => $uid, 'private' => Item::PRIVATE]);
|
||||
if (!empty($parent_item)) {
|
||||
$item['allow_cid'] = $parent_item['allow_cid'];
|
||||
$item['allow_gid'] = $parent_item['allow_gid'];
|
||||
$item['deny_cid'] = $parent_item['deny_cid'];
|
||||
$item['deny_gid'] = $parent_item['deny_gid'];
|
||||
$item['private'] = $parent_item['private'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($owner['allow_cid'] . $owner['allow_gid'] . $owner['deny_cid'] . $owner['deny_gid'])) {
|
||||
$item['allow_cid'] = $owner['allow_cid'];
|
||||
$item['allow_gid'] = $owner['allow_gid'];
|
||||
|
@ -287,7 +299,7 @@ class Statuses extends BaseApi
|
|||
}
|
||||
|
||||
$item = DI::contentItem()->expandTags($item, $request['visibility'] == 'direct');
|
||||
|
||||
|
||||
if (!empty($request['media_ids'])) {
|
||||
$item = $this->storeMediaIds($request['media_ids'], $item);
|
||||
}
|
||||
|
|
|
@ -113,12 +113,26 @@ class PermissionTooltip extends \Friendica\BaseModule
|
|||
exit;
|
||||
}
|
||||
|
||||
if (!empty($model['allow_cid']) || !empty($model['allow_gid']) || !empty($model['deny_cid']) || !empty($model['deny_gid'])) {
|
||||
$receivers = $this->fetchReceiversFromACL($model);
|
||||
}
|
||||
|
||||
$this->httpExit(DI::l10n()->t('Visible to:') . '<br />' . $receivers);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch a list of receivers based on the ACL data
|
||||
*
|
||||
* @param array $model
|
||||
* @return string
|
||||
*/
|
||||
private function fetchReceiversFromACL(array $model)
|
||||
{
|
||||
$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:') . '<br />';
|
||||
$l = [];
|
||||
|
||||
if (count($allowed_circles)) {
|
||||
|
@ -165,11 +179,7 @@ class PermissionTooltip extends \Friendica\BaseModule
|
|||
$l[] = '<strike>' . $contact['name'] . '</strike>';
|
||||
}
|
||||
|
||||
if (!empty($l)) {
|
||||
$this->httpExit($o . implode(', ', $l));
|
||||
} else {
|
||||
$this->httpExit($o . $receivers);;
|
||||
}
|
||||
return implode(', ', $l);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue