X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Facl.php;h=817a026553b42ad78788be0c600cb07fbf9d7cb5;hb=6e7c6ab0fa46dc3ab2f35326bc1b2c747377d509;hp=a178a6922183c9a60d11d333fdc2b37975df6c67;hpb=207eac4a1694e41a0f80a867d2af4bfdecbc0fb0;p=friendica.git diff --git a/mod/acl.php b/mod/acl.php index a178a69221..817a026553 100644 --- a/mod/acl.php +++ b/mod/acl.php @@ -4,12 +4,11 @@ use Friendica\App; use Friendica\Content\Widget; -use Friendica\Core\Acl; +use Friendica\Core\ACL; use Friendica\Core\Addon; use Friendica\Database\DBM; use Friendica\Model\Contact; -require_once 'include/acl_selectors.php'; require_once 'include/dba.php'; require_once 'mod/proxy.php'; @@ -19,21 +18,21 @@ function acl_content(App $a) return ''; } - $start = defaults($_REQUEST, 'start', 0); - $count = defaults($_REQUEST, 'count', 100); - $search = defaults($_REQUEST, 'search', ''); - $type = defaults($_REQUEST, 'type', ''); + $start = defaults($_REQUEST, 'start' , 0); + $count = defaults($_REQUEST, 'count' , 100); + $search = defaults($_REQUEST, 'search' , ''); + $type = defaults($_REQUEST, 'type' , ''); $conv_id = defaults($_REQUEST, 'conversation', null); // For use with jquery.textcomplete for private mail completion - if (x($_REQUEST, 'query')) { + if (!empty($_REQUEST['query'])) { if (!$type) { $type = 'm'; } $search = $_REQUEST['query']; } - logger('Searching for ' . $search . ' - type ' . $type, LOGGER_DEBUG); + logger("Searching for ".$search." - type ".$type." conversation ".$conv_id, LOGGER_DEBUG); if ($search != '') { $sql_extra = "AND `name` LIKE '%%" . dbesc($search) . "%%'"; @@ -44,17 +43,17 @@ function acl_content(App $a) } // count groups and contacts + $group_count = 0; if ($type == '' || $type == 'g') { $r = q("SELECT COUNT(*) AS g FROM `group` WHERE `deleted` = 0 AND `uid` = %d $sql_extra", intval(local_user()) ); $group_count = (int) $r[0]['g']; - } else { - $group_count = 0; } $sql_extra2 .= ' ' . Widget::unavailableNetworks(); + $contact_count = 0; if ($type == '' || $type == 'c') { // autocomplete for editor mentions $r = q("SELECT COUNT(*) AS c FROM `contact` @@ -96,8 +95,6 @@ function acl_content(App $a) intval(local_user()) ); $contact_count = (int) $r[0]['c']; - } else { - $contact_count = 0; } $tot = $group_count + $contact_count; @@ -123,12 +120,12 @@ function acl_content(App $a) foreach ($r as $g) { $groups[] = [ - 'type' => 'g', + 'type' => 'g', 'photo' => 'images/twopeople.png', - 'name' => htmlentities($g['name']), - 'id' => intval($g['id']), - 'uids' => array_map('intval', explode(',', $g['uids'])), - 'link' => '', + 'name' => htmlentities($g['name']), + 'id' => intval($g['id']), + 'uids' => array_map('intval', explode(',', $g['uids'])), + 'link' => '', 'forum' => '0' ]; } @@ -137,50 +134,51 @@ function acl_content(App $a) } } + $r = []; if ($type == '') { $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv`, (`prv` OR `forum`) AS `frm` FROM `contact` - WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != '' - AND `success_update` >= `failure_update` AND NOT (`network` IN ('%s', '%s')) - $sql_extra2 - ORDER BY `name` ASC ", + WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != '' + AND `success_update` >= `failure_update` AND NOT (`network` IN ('%s', '%s')) + $sql_extra2 + ORDER BY `name` ASC ", intval(local_user()), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_STATUSNET) ); } elseif ($type == 'c') { $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv` FROM `contact` - WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != '' - AND `success_update` >= `failure_update` AND NOT (`network` IN ('%s')) - $sql_extra2 - ORDER BY `name` ASC ", + WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != '' + AND `success_update` >= `failure_update` AND NOT (`network` IN ('%s')) + $sql_extra2 + ORDER BY `name` ASC ", intval(local_user()), dbesc(NETWORK_STATUSNET) ); } elseif ($type == 'f') { $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv` FROM `contact` - WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != '' - AND `success_update` >= `failure_update` AND NOT (`network` IN ('%s')) - AND (`forum` OR `prv`) - $sql_extra2 - ORDER BY `name` ASC ", + WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != '' + AND `success_update` >= `failure_update` AND NOT (`network` IN ('%s')) + AND (`forum` OR `prv`) + $sql_extra2 + ORDER BY `name` ASC ", intval(local_user()), dbesc(NETWORK_STATUSNET) ); } elseif ($type == 'm') { $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `addr` FROM `contact` - WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` - AND `success_update` >= `failure_update` AND `network` IN ('%s', '%s') - $sql_extra2 - ORDER BY `name` ASC ", + WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` + AND `success_update` >= `failure_update` AND `network` IN ('%s', '%s') + $sql_extra2 + ORDER BY `name` ASC ", intval(local_user()), dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA) ); } elseif ($type == 'a') { $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv` FROM `contact` - WHERE `uid` = %d AND `pending` = 0 AND `success_update` >= `failure_update` - $sql_extra2 - ORDER BY `name` ASC ", + WHERE `uid` = %d AND `pending` = 0 AND `success_update` >= `failure_update` + $sql_extra2 + ORDER BY `name` ASC ", intval(local_user()) ); } elseif ($type == 'x') { @@ -188,17 +186,17 @@ function acl_content(App $a) $search = notags(trim($_REQUEST['search'])); $mode = $_REQUEST['smode']; - $r = Acl::contactAutocomplete($search, $mode); + $r = ACL::contactAutocomplete($search, $mode); $contacts = []; foreach ($r as $g) { $contacts[] = [ 'photo' => proxy_url($g['photo'], false, PROXY_SIZE_MICRO), 'name' => $g['name'], - 'nick' => (x($g['addr']) ? $g['addr'] : $g['url']), + 'nick' => defaults($g, 'addr', $g['url']), 'network' => $g['network'], 'link' => $g['url'], - 'forum' => (x($g['community']) ? 1 : 0), + 'forum' => !empty($g['community']) ? 1 : 0, ]; } $o = [ @@ -207,9 +205,7 @@ function acl_content(App $a) 'items' => $contacts, ]; echo json_encode($o); - killme(); - } else { - $r = []; + exit; } if (DBM::is_result($r)) { @@ -222,9 +218,9 @@ function acl_content(App $a) 'id' => intval($g['id']), 'network' => $g['network'], 'link' => $g['url'], - 'nick' => htmlentities(($g['attag']) ? $g['attag'] : $g['nick']), - 'addr' => htmlentities(($g['addr']) ? $g['addr'] : $g['url']), - 'forum' => ((x($g, 'forum') || x($g, 'prv')) ? 1 : 0), + 'nick' => htmlentities(defaults($g, 'attag', $g['nick'])), + 'addr' => htmlentities(defaults($g, 'addr', $g['url'])), + 'forum' => !empty($g['forum']) || !empty($g['prv']) ? 1 : 0, ]; if ($entry['forum']) { $forums[] = $entry; @@ -243,6 +239,12 @@ function acl_content(App $a) $items = array_merge($groups, $contacts); if ($conv_id) { + // In multi threaded posts the conv_id is not the parent of the whole thread + $parent_item = dba::selectFirst('item', ['parent'], ['id' => $conv_id]); + if (DBM::is_result($parent_item)) { + $conv_id = $parent_item['parent']; + } + /* * if $conv_id is set, get unknown contacts in thread * but first get known contacts url to filter them out @@ -270,15 +272,15 @@ function acl_content(App $a) if (count($contact) > 0) { $unknown_contacts[] = [ - 'type' => 'c', - 'photo' => proxy_url($contact['micro'], false, PROXY_SIZE_MICRO), - 'name' => htmlentities($contact['name']), - 'id' => intval($contact['cid']), + 'type' => 'c', + 'photo' => proxy_url($contact['micro'], false, PROXY_SIZE_MICRO), + 'name' => htmlentities($contact['name']), + 'id' => intval($contact['cid']), 'network' => $contact['network'], - 'link' => $contact['url'], - 'nick' => htmlentities($contact['nick'] ?: $contact['addr']), - 'addr' => htmlentities(($contact['addr']) ? $contact['addr'] : $contact['url']), - 'forum' => $contact['forum'] + 'link' => $contact['url'], + 'nick' => htmlentities(defaults($contact, 'nick', $contact['addr'])), + 'addr' => htmlentities(defaults($contact, 'addr', $contact['url'])), + 'forum' => $contact['forum'] ]; } } @@ -302,13 +304,12 @@ function acl_content(App $a) Addon::callHooks('acl_lookup_end', $results); $o = [ - 'tot' => $results['tot'], + 'tot' => $results['tot'], 'start' => $results['start'], 'count' => $results['count'], 'items' => $results['items'], ]; echo json_encode($o); - - killme(); + exit; }