From 2a525922929d5d9d54fd898e6f1658f0b959e667 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Sun, 12 Feb 2017 17:40:18 -0800 Subject: testing and bug fixes virtual profile groups --- Zotlabs/Module/Lockview.php | 39 +++++++++++++++++++++++++++++++++++++-- include/acl_selectors.php | 10 ++++++++++ include/photos.php | 4 ++-- 3 files changed, 49 insertions(+), 4 deletions(-) diff --git a/Zotlabs/Module/Lockview.php b/Zotlabs/Module/Lockview.php index 7d1d8a43f..fc7d5c7c8 100644 --- a/Zotlabs/Module/Lockview.php +++ b/Zotlabs/Module/Lockview.php @@ -32,10 +32,10 @@ class Lockview extends \Zotlabs\Web\Controller { if(! $item_id) killme(); - if (!in_array($type, array('item','photo','event', 'menu_item', 'chatroom'))) + if (! in_array($type, array('item', 'photo', 'attach', 'event', 'menu_item', 'chatroom'))) killme(); - //we have different naming in in menu_item table and chatroom table + // we have different naming in in menu_item table and chatroom table switch($type) { case 'menu_item': $id = 'mitem_id'; @@ -101,6 +101,22 @@ class Lockview extends \Zotlabs\Web\Controller { stringify_array_elms($deny_groups,true); stringify_array_elms($deny_users,true); + + $profile_groups = []; + if($allowed_groups) { + foreach($allowed_groups as $g) { + if(substr($g,0,4) === '\'vp.') { + $profile_groups[] = '\'' . substr($g,4); + } + } + } + if(count($profile_groups)) { + $r = q("SELECT profile_name FROM profile WHERE profile_guid IN ( " . implode(', ', $profile_groups) . " )"); + if($r) + foreach($r as $rr) + $l[] = '
  • ' . t('Profile','acl') . ' ' . $rr['profile_name'] . '
  • '; + } + if(count($allowed_groups)) { $r = q("SELECT gname FROM groups WHERE hash IN ( " . implode(', ', $allowed_groups) . " )"); if($r) @@ -120,6 +136,25 @@ class Lockview extends \Zotlabs\Web\Controller { } } } + + + $profile_groups = []; + if($deny_groups) { + foreach($deny_groups as $g) { + if(substr($g,0,4) === '\'vp.') { + $profile_groups[] = '\'' . substr($g,4); + } + } + } + if(count($profile_groups)) { + $r = q("SELECT profile_name FROM profile WHERE profile_guid IN ( " . implode(', ', $profile_groups) . " )"); + if($r) + foreach($r as $rr) + $l[] = '
  • ' . t('Profile','acl') . ' ' . $rr['profile_name'] . '
  • '; + } + + + if(count($deny_groups)) { $r = q("SELECT gname FROM groups WHERE hash IN ( " . implode(', ', $deny_groups) . " )"); if($r) diff --git a/include/acl_selectors.php b/include/acl_selectors.php index dcf0fe9a2..09c24f82c 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -174,6 +174,16 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti $custom = false; } + $r = q("SELECT id, profile_guid, profile_name from profile where is_default = 0 and uid = %d order by profile_name", + intval(local_channel()) + ); + if($r) { + foreach($r as $rv) { + $selected = (($single_group && 'vp.' . $rr['hash'] === $allow_gid[0]) ? ' selected = "selected" ' : ''); + $groups .= '' . "\r\n"; + } + } + $r = q("SELECT id, hash, gname FROM groups WHERE deleted = 0 AND uid = %d ORDER BY gname ASC", intval(local_channel()) ); diff --git a/include/photos.php b/include/photos.php index 4cd5952f9..c0f7dc8c4 100644 --- a/include/photos.php +++ b/include/photos.php @@ -750,14 +750,14 @@ function photo_profile_setperms($channel_id,$resource_id,$profile_id) { else { $r = q("update photo set allow_cid = '', allow_gid = '%s', deny_cid = '', deny_gid = '' where resource_id = '%s' and uid = %d", - dbesc('vp.' . $profile_guid), + dbesc(''), dbesc($resource_id), intval($channel_id) ); $r = q("update attach set allow_cid = '', allow_gid = '%s', deny_cid = '', deny_gid = '' where hash = '%s' and uid = %d", - dbesc('vp.' . $profile_guid), + dbesc(''), dbesc($resource_id), intval($channel_id) ); -- cgit v1.2.3