mirror of
https://framagit.org/hubzilla/core.git
synced 2026-06-21 00:52:33 -04:00
flag forums where we do not have post permissions and filter them from the acl selector
This commit is contained in:
@@ -82,7 +82,6 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti
|
||||
$r = q("SELECT id, hash, gname FROM pgrp WHERE deleted = 0 AND uid = %d ORDER BY gname ASC",
|
||||
intval(local_channel())
|
||||
);
|
||||
|
||||
if($r) {
|
||||
$groups .= '<optgroup label = "' . t('Privacy Groups').'">';
|
||||
foreach($r as $rr) {
|
||||
@@ -110,13 +109,23 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti
|
||||
if($dialog_description) {
|
||||
$forums = get_forum_channels(local_channel(),1);
|
||||
if($forums) {
|
||||
$groups .= '<optgroup label = "' . t('Forums').'">';
|
||||
$forums_count = 0;
|
||||
$forum_otions = '';
|
||||
foreach($forums as $f) {
|
||||
if($f['no_post_perms'])
|
||||
continue;
|
||||
|
||||
$private = (($f['private_forum']) ? ' (' . t('Private Forum') . ')' : '');
|
||||
$selected = (($single_group && $f['hash'] === $allow_cid[0]) ? ' selected = "selected" ' : '');
|
||||
$groups .= '<option id="^' . $f['abook_id'] . '" value="^' . $f['xchan_hash'] . '"' . $selected . '>' . $f['xchan_name'] . $private . '</option>' . "\r\n";
|
||||
$forum_otions .= '<option id="^' . $f['abook_id'] . '" value="^' . $f['xchan_hash'] . '"' . $selected . '>' . $f['xchan_name'] . $private . '</option>' . "\r\n";
|
||||
$forums_count++;
|
||||
}
|
||||
$groups .= '</optgroup>';
|
||||
if($forums_count) {
|
||||
$groups .= '<optgroup label = "' . t('Forums').'">';
|
||||
$groups .= $forum_otions;
|
||||
$groups .= '</optgroup>';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3690,6 +3690,11 @@ function get_forum_channels($uid) {
|
||||
);
|
||||
|
||||
if($x1) {
|
||||
|
||||
$x2 = [];
|
||||
$x3 = [];
|
||||
$x4 = [];
|
||||
|
||||
$xc = ids_to_querystr($x1,'xchan',true);
|
||||
|
||||
$x2 = q("select xchan from abconfig where chan = %d and cat = 'their_perms' and k = 'tag_deliver' and v = '1' and xchan in (" . $xc . ") ",
|
||||
@@ -3706,6 +3711,15 @@ function get_forum_channels($uid) {
|
||||
if($x3) {
|
||||
$xf = ids_to_querystr(array_merge($x2,$x3),'xchan',true);
|
||||
}
|
||||
|
||||
// public forums with no permission to post
|
||||
$x4 = q("select xchan from abconfig left join xchan on xchan = xchan_hash where chan = %d and cat = 'their_perms' and k in ('post_wall', 'tag_deliver') and v = '0' and xchan in (" . $xc . ") and xchan_pubforum = 1 $sql_extra ",
|
||||
intval(local_channel())
|
||||
);
|
||||
if($x4) {
|
||||
$xf = ids_to_querystr(array_merge($x2,$x3,$x4),'xchan',true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$sql_extra_1 = (($xf) ? " and ( xchan_hash in (" . $xf . ") or xchan_pubforum = 1 ) " : " and xchan_pubforum = 1 ");
|
||||
@@ -3722,6 +3736,15 @@ function get_forum_channels($uid) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($x4) {
|
||||
foreach($x4 as $xx) {
|
||||
if($r[$x]['xchan_hash'] == $xx['xchan']) {
|
||||
$r[$x]['no_post_perms'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
App::$data['forum_channels'] = $r;
|
||||
|
||||
Reference in New Issue
Block a user