From: <sy...@us...> - 2009-02-16 17:35:47
|
Revision: 16802 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=16802&view=rev Author: sylvieg Date: 2009-02-16 17:35:43 +0000 (Mon, 16 Feb 2009) Log Message: ----------- [FIX]group tracker: trackerlist must also filter on group Modified Paths: -------------- trunk/lib/wiki-plugins/wikiplugin_trackerlist.php Modified: trunk/lib/wiki-plugins/wikiplugin_trackerlist.php =================================================================== --- trunk/lib/wiki-plugins/wikiplugin_trackerlist.php 2009-02-16 17:04:26 UTC (rev 16801) +++ trunk/lib/wiki-plugins/wikiplugin_trackerlist.php 2009-02-16 17:35:43 UTC (rev 16802) @@ -210,8 +210,10 @@ } if ($tiki_p_admin_trackers != 'y') { + $userCreatorFieldId = $trklib->get_field_id_from_type($trackerId, 'u', '1%'); + $groupCreatorFieldId = $trklib->get_field_id_from_type($trackerId, 'g', '1%'); $perms = $tikilib->get_perm_object($trackerId, 'tracker', $tracker_info, false); - if ($perms['tiki_p_view_trackers'] != 'y' && $tracker_info['writerCanModify'] != 'y') { + if ($perms['tiki_p_view_trackers'] != 'y' && $tracker_info['writerCanModify'] != 'y' && empty($userCreatorFieldId) && empty($groupCreatorFieldId)) { return; } $smarty->assign_by_ref('perms', $perms); @@ -485,12 +487,12 @@ return tra('incorrect filterfield'); } } - if ($tiki_p_admin_trackers != 'y' && $perms['tiki_p_view_trackers'] != 'y' && $tracker_info['writerCanModify'] == 'y' && $user && ($fieldId = $trklib->get_field_id_from_type($trackerId, 'u', '1%'))) { //patch this should be in list_items - if ($filterfield != $fieldId || (is_array($filterfield) && !in_array($fieldId, $filterfield))) { + if ($tiki_p_admin_trackers != 'y' && $perms['tiki_p_view_trackers'] != 'y' && $tracker_info['writerCanModify'] == 'y' && $user && $userCreatorFieldId) { //patch this should be in list_items + if ($filterfield != $userCreatorFieldId || (is_array($filterfield) && !in_array($$userCreatorFieldId, $filterfield))) { if (is_array($filterfield)) - $filterfield[] = $fieldId; + $filterfield[] = $userCreatorFieldId; elseif (empty($filterfield)) - $filterfield = $fieldId; + $filterfield = $userCreatorFieldId; else $filterfield = array($filterfield, $fieldId); if (is_array($exactvalue)) @@ -501,8 +503,24 @@ $exactvalue = array($exactvalue, $user); } } + if ($tiki_p_admin_trackers != 'y' && $perms['tiki_p_view_trackers'] != 'y' && $user && $groupCreatorFieldId) { + if ($filterfield != $groupCreatorFieldId || (is_array($filterfield) && !in_array($groupCreatorFieldId, $filterfield))) { + global $group; + if (is_array($filterfield)) + $filterfield[] = $groupCreatorFieldId; + elseif (empty($filterfield)) + $filterfield = $groupCreatorFieldId; + else + $filterfield = array($filterfield, $fieldId); + if (is_array($exactvalue)) + $exactvalue[] = $group; + elseif (empty($exactvalue)) + $exactvalue = $group; + else + $exactvalue = array($exactvalue, $user); + } + } - for ($i = 0; $i < count($allfields["data"]); $i++) { if ((in_array($allfields["data"][$i]['fieldId'],$listfields) or in_array($allfields["data"][$i]['fieldId'],$popupfields))and $allfields["data"][$i]['isPublic'] == 'y') { $passfields["{$allfields["data"][$i]['fieldId']}"] = $allfields["data"][$i]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |