Commit 2b6bd77a09b3ad2db879d08745c138f2aa421e81

Authored by Neil Blakey-Milner
1 parent df3f5462

Add isUnitAdministratorForFolder, which checks if the user in question

is a unit administrator for the folder in question.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@4849 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 22 additions and 0 deletions
lib/security/Permission.inc
... ... @@ -155,6 +155,28 @@ class Permission {
155 155 "AND UGL.user_id = ?", $iUserID));
156 156 return $sql->next_record();
157 157 }
  158 +
  159 + function isUnitAdministratorForFolder($oUser, $oFolder) {
  160 + $sUnitTable = KTUtil::getTableName('units');
  161 + $sFolderIds = $oFolder->getParentFolderIds();
  162 + $aFolderIds = split(",", $sFolderIds);
  163 + $aFolderIds[] = $oFolder->getId();
  164 +
  165 + $sParams = DBUtil::paramArray($aFolderIds);
  166 + $aParams = $aFolderIds;
  167 + $sQuery = "SELECT id FROM $sUnitTable WHERE folder_id IN ($sParams)";
  168 + $aUnitIds = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'id');
  169 +
  170 + foreach($aUnitIds as $iUnitId) {
  171 + $aGroups = Group::getUnitAdministratorGroupsByUnit($iUnitId);
  172 + foreach ($aGroups as $oGroup) {
  173 + if ($oGroup->hasMember($oUser)) {
  174 + return true;
  175 + }
  176 + }
  177 + }
  178 + return false;
  179 + }
158 180 }
159 181  
160 182 ?>
... ...