From f31ef3420db5ed600a988dc300f2d2f56b31acc6 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Mon, 17 Oct 2016 20:52:02 -0700 Subject: issue #549, ACL has 'public' selected even when restrictive ACL is being used. --- include/acl_selectors.php | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'include/acl_selectors.php') diff --git a/include/acl_selectors.php b/include/acl_selectors.php index 80d1f1216..dcf0fe9a2 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -152,13 +152,36 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti array_walk($deny_gid,'fixacl'); } + + $channel = ((local_channel()) ? \App::get_channel() : ''); + $has_acl = false; + $single_group = false; + $just_me = false; + $custom = false; + + if($allow_cid || $allow_gid || $deny_gid || $deny_cid) { + $has_acl = true; + $custom = true; + } + + if(count($allow_gid) === 1 && (! $allow_cid) && (! $deny_gid) && (! $deny_cid)) { + $single_group = true; + $custom = false; + } + + if(count($allow_cid) === 1 && $channel && $allow_cid[0] = $channel['channel_hash'] && (! $allow_gid) && (! $deny_gid) && (! $deny_cid)) { + $just_me = true; + $custom = false; + } + $r = q("SELECT id, hash, gname FROM groups WHERE deleted = 0 AND uid = %d ORDER BY gname ASC", intval(local_channel()) ); if($r) { foreach($r as $rr) { - $groups .= '' . "\r\n"; + $selected = (($single_group && $rr['hash'] === $allow_gid[0]) ? ' selected = "selected" ' : ''); + $groups .= '' . "\r\n"; } } @@ -166,7 +189,10 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti $o = replace_macros($tpl, array( '$showall' => $showall_caption, '$onlyme' => t('Only me'), - '$groups' => $groups, + '$groups' => $groups, + '$public_selected' => (($has_acl) ? false : true), + '$justme_selected' => $just_me, + '$custom_selected' => $custom, '$showallOrigin' => $showall_origin, '$showallIcon' => $showall_icon, '$select_label' => t('Who can see this?'), -- cgit v1.2.3