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 | 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 | ?> | ... | ... |