Commit 2b6bd77a09b3ad2db879d08745c138f2aa421e81
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,6 +155,28 @@ class Permission { | ||
| 155 | "AND UGL.user_id = ?", $iUserID)); | 155 | "AND UGL.user_id = ?", $iUserID)); |
| 156 | return $sql->next_record(); | 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 | ?> |