From 2b6bd77a09b3ad2db879d08745c138f2aa421e81 Mon Sep 17 00:00:00 2001 From: Neil Blakey-Milner Date: Mon, 6 Feb 2006 12:21:36 +0000 Subject: [PATCH] Add isUnitAdministratorForFolder, which checks if the user in question is a unit administrator for the folder in question. --- lib/security/Permission.inc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+), 0 deletions(-) diff --git a/lib/security/Permission.inc b/lib/security/Permission.inc index 4b53c13..3b34962 100644 --- a/lib/security/Permission.inc +++ b/lib/security/Permission.inc @@ -155,6 +155,28 @@ class Permission { "AND UGL.user_id = ?", $iUserID)); return $sql->next_record(); } + + function isUnitAdministratorForFolder($oUser, $oFolder) { + $sUnitTable = KTUtil::getTableName('units'); + $sFolderIds = $oFolder->getParentFolderIds(); + $aFolderIds = split(",", $sFolderIds); + $aFolderIds[] = $oFolder->getId(); + + $sParams = DBUtil::paramArray($aFolderIds); + $aParams = $aFolderIds; + $sQuery = "SELECT id FROM $sUnitTable WHERE folder_id IN ($sParams)"; + $aUnitIds = DBUtil::getResultArrayKey(array($sQuery, $aParams), 'id'); + + foreach($aUnitIds as $iUnitId) { + $aGroups = Group::getUnitAdministratorGroupsByUnit($iUnitId); + foreach ($aGroups as $oGroup) { + if ($oGroup->hasMember($oUser)) { + return true; + } + } + } + return false; + } } ?> -- libgit2 0.21.4