mirror of
https://github.com/friendica/friendica
synced 2024-11-10 01:42:53 +00:00
child conversations inherit ACL's from parent
This commit is contained in:
parent
e4325bc565
commit
c4f31ec65a
2 changed files with 30 additions and 1 deletions
|
@ -36,7 +36,7 @@ if($argc < 3)
|
|||
|
||||
$recipients = array();
|
||||
|
||||
// fetch requested item
|
||||
// fetch requested item(s)
|
||||
|
||||
$r = q("SELECT `item`.*, `contact`.*,`item`.`id` AS `item_id` FROM `item` LEFT JOIN `contact` ON `item`.`contact-id` = `contact`.`id`
|
||||
WHERE `item`.`id` = %d LIMIT 1",
|
||||
|
|
29
mod/item.php
29
mod/item.php
|
@ -13,6 +13,20 @@ function item_post(&$a) {
|
|||
|
||||
$uid = $_SESSION['uid'];
|
||||
$parent = ((x($_POST,'parent')) ? intval($_POST['parent']) : 0);
|
||||
|
||||
$parent_item = null;
|
||||
|
||||
if($parent) {
|
||||
$r = q("SELECT * FROM `item` WHERE `id` = %d LIMIT 1",
|
||||
intval($parent)
|
||||
);
|
||||
if(! count($r)) {
|
||||
notice("Unable to locate original post." . EOL);
|
||||
goaway($a->get_baseurl() . "/profile/$profile_uid");
|
||||
}
|
||||
$parent_item = $r[0];
|
||||
}
|
||||
|
||||
$profile_uid = ((x($_POST,'profile_uid')) ? intval($_POST['profile_uid']) : 0);
|
||||
|
||||
if(! can_write_wall($a,$profile_uid)) {
|
||||
|
@ -99,10 +113,25 @@ function item_post(&$a) {
|
|||
dbesc($hash));
|
||||
if(count($r)) {
|
||||
$post_id = $r[0]['id'];
|
||||
|
||||
if($parent) {
|
||||
|
||||
// This item is the last leaf and gets the comment box, clear any ancestors
|
||||
$r = q("UPDATE `item` SET `last-child` = 0 WHERE `parent` = %d ",
|
||||
intval($parent)
|
||||
);
|
||||
|
||||
// Inherit ACL's from the parent item.
|
||||
// TODO merge with subsequent UPDATE operation and save a db write
|
||||
|
||||
$r = q("UPDATE `item` SET `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s'
|
||||
WHERE `id` = %d LIMIT 1",
|
||||
intval($parent_item['allow_cid']),
|
||||
intval($parent_item['allow_gid']),
|
||||
intval($parent_item['deny_cid']),
|
||||
intval($parent_item['deny_gid']),
|
||||
intval($post_id)
|
||||
);
|
||||
}
|
||||
else {
|
||||
$parent = $post_id;
|
||||
|
|
Loading…
Reference in a new issue