Commit 07e3abe21e33c4a7c650b5b1783856c9f6d5183b

Authored by Neil Blakey-Milner
1 parent f01c5784

Add an option for getByGroups to return ids rather than objects.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3558 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/permissions/permissiondescriptor.inc.php
@@ -131,11 +131,19 @@ class KTPermissionDescriptor extends KTEntity { @@ -131,11 +131,19 @@ class KTPermissionDescriptor extends KTEntity {
131 return $aRet; 131 return $aRet;
132 } 132 }
133 133
134 - function &getByGroups($aGroups) { 134 + function &getByGroups($aGroups, $aOptions = null) {
135 global $default; 135 global $default;
  136 + if (is_null($aOptions)) {
  137 + $aOptions = array();
  138 + }
  139 + $ids = KTUtil::arrayGet($aOptions, 'ids');
136 $aGroupIDs = array(); 140 $aGroupIDs = array();
137 foreach ($aGroups as $oGroup) { 141 foreach ($aGroups as $oGroup) {
138 - $aGroupIDs[] = $oGroup->getID(); 142 + if (is_numeric($oGroup)) {
  143 + $aGroupIDs[] = $oGroup;
  144 + } else {
  145 + $aGroupIDs[] = $oGroup->getID();
  146 + }
139 } 147 }
140 $sGroupIDs = DBUtil::paramArray($aGroupIDs); 148 $sGroupIDs = DBUtil::paramArray($aGroupIDs);
141 $sQuery = "SELECT DISTINCT descriptor_id FROM $default->permission_descriptor_groups_table WHERE group_id IN ( $sGroupIDs )"; 149 $sQuery = "SELECT DISTINCT descriptor_id FROM $default->permission_descriptor_groups_table WHERE group_id IN ( $sGroupIDs )";
@@ -143,7 +151,11 @@ class KTPermissionDescriptor extends KTEntity { @@ -143,7 +151,11 @@ class KTPermissionDescriptor extends KTEntity {
143 $aIDs = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'descriptor_id'); 151 $aIDs = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'descriptor_id');
144 $aRet = array(); 152 $aRet = array();
145 foreach ($aIDs as $iID) { 153 foreach ($aIDs as $iID) {
146 - $aRet[] =& KTPermissionDescriptor::get($iID); 154 + if ($ids === true) {
  155 + $aRet[] = $iID;
  156 + } else {
  157 + $aRet[] =& KTPermissionDescriptor::get($iID);
  158 + }
147 } 159 }
148 return $aRet; 160 return $aRet;
149 } 161 }