mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-21 02:55:17 +00:00
Merge branch 'dev' into release
This commit is contained in:
commit
ddad07cb86
4 changed files with 30 additions and 5 deletions
|
@ -176,6 +176,7 @@ function import_config($channel, $configs)
|
||||||
}
|
}
|
||||||
set_pconfig($channel['channel_id'], $config['cat'], $config['k'], $config['v']);
|
set_pconfig($channel['channel_id'], $config['cat'], $config['k'], $config['v']);
|
||||||
}
|
}
|
||||||
|
set_pconfig($channel['channel_id'], 'perm_limits', 'deliver_stream', PERMS_SPECIFIC);
|
||||||
|
|
||||||
load_pconfig($channel['channel_id']);
|
load_pconfig($channel['channel_id']);
|
||||||
$permissions_role = get_pconfig($channel['channel_id'], 'system', 'permissions_role');
|
$permissions_role = get_pconfig($channel['channel_id'], 'system', 'permissions_role');
|
||||||
|
|
|
@ -161,11 +161,11 @@ function collect_recipients($item, &$private_envelope,$include_groups = true) {
|
||||||
|
|
||||||
// This is a somewhat expensive operation but important.
|
// This is a somewhat expensive operation but important.
|
||||||
// Don't send this item to anybody who doesn't have the deliver_stream permission
|
// Don't send this item to anybody who doesn't have the deliver_stream permission
|
||||||
|
logger('recip1: ' . print_r($recipients,true));
|
||||||
|
$recipients = check_deliver_permissions($item['uid'],$recipients);
|
||||||
|
logger('recip2: ' . print_r($recipients,true));
|
||||||
|
|
||||||
$recipients = check_list_permissions($item['uid'],$recipients,'deliver_stream');
|
// Add both the author and owner (if different).
|
||||||
|
|
||||||
|
|
||||||
// add ourself just in case we have nomadic clones that need to get a copy.
|
|
||||||
|
|
||||||
$recipients[] = $item['author_xchan'];
|
$recipients[] = $item['author_xchan'];
|
||||||
|
|
||||||
|
|
|
@ -532,6 +532,30 @@ function check_list_permissions($uid, $arr, $perm)
|
||||||
return($result);
|
return($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function check_deliver_permissions($uid, $arr)
|
||||||
|
{
|
||||||
|
$result = [];
|
||||||
|
// Find actors we are not delivering to.
|
||||||
|
$r = q("select * from abconfig where uid = %d and cat = 'system' and k = 'my_perms' and v not like '%%deliver_stream%%'",
|
||||||
|
intval($uid)
|
||||||
|
);
|
||||||
|
$disallowed = ids_to_array($r,'xchan');
|
||||||
|
|
||||||
|
// Filter the recipient list accordingly.
|
||||||
|
if ($arr) {
|
||||||
|
foreach ($arr as $x) {
|
||||||
|
if (! in_array($x, $disallowed)) {
|
||||||
|
$result[] = $x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return($result);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Sets site wide default permissions.
|
* @brief Sets site wide default permissions.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
<?php
|
<?php
|
||||||
define ( 'STD_VERSION', '22.05.12' );
|
define ( 'STD_VERSION', '22.05.13' );
|
||||||
|
|
Loading…
Reference in a new issue