| [ Index ] |
|
Code source de eGroupWare 1.2.106-2 |
1 <?php 2 /***************************************************************************\ 3 * eGroupWare - mydms * 4 * http://www.linux-at-work.de * 5 * http://www.egroupware.org * 6 * Written by : Lars Kneschke [lkneschke@linux-at-work.de] * 7 * ------------------------------------------------- * 8 * This program is free software; you can redistribute it and/or modify it * 9 * under the terms of the GNU General Public License as published by the * 10 * Free Software Foundation; either version 2 of the License. * 11 \***************************************************************************/ 12 13 /* $Id: class.bomydms.inc.php 22719 2006-10-24 10:27:53Z lkneschke $ */ 14 15 require_once (EGW_SERVER_ROOT.'/mydms/inc/inc.DBAccess.php'); 16 require_once (EGW_SERVER_ROOT.'/mydms/inc/inc.AccessUtils.php'); 17 require_once (EGW_SERVER_ROOT.'/mydms/inc/inc.ClassUser.php'); 18 require_once (EGW_SERVER_ROOT.'/mydms/inc/inc.ClassFolder.php'); 19 require_once (EGW_SERVER_ROOT.'/mydms/inc/inc.ClassDocument.php'); 20 require_once (EGW_SERVER_ROOT.'/mydms/inc/inc.FileUtils.php'); 21 22 class bomydms 23 { 24 function addACL($_documentID, $_userID, $_groupID, $_access) 25 { 26 if(!$_documentID) return false; 27 28 $document = getDocument($_documentID); 29 $accessMode = $document->getAccessMode(getUser($GLOBALS['egw_info']['user']['account_id'])); 30 31 if($accessMode < M_ALL) return false; 32 33 if($_userID !== false) 34 { 35 $document->addAccess($_access, $_userID, true); 36 } 37 38 if($_groupID !== false) 39 { 40 $document->addAccess($_access, $_groupID, false); 41 } 42 } 43 44 function addNotification($_documentID, $_userID, $_groupID) 45 { 46 if(!$_documentID) return false; 47 48 $document = getDocument($_documentID); 49 $accessMode = $document->getAccessMode(getUser($GLOBALS['egw_info']['user']['account_id'])); 50 51 if($accessMode < M_READWRITE) return false; 52 53 if($_userID !== false) 54 { 55 $document->addNotify($_userID, true); 56 } 57 58 if($_groupID !== false) 59 { 60 $document->addNotify($_groupID, false); 61 } 62 } 63 64 function deleteACL($_documentID, $_userID, $_groupID) 65 { 66 if(!$_documentID) return false; 67 68 $document = getDocument($_documentID); 69 $accessMode = $document->getAccessMode(getUser($GLOBALS['egw_info']['user']['account_id'])); 70 71 if($accessMode < M_ALL) return false; 72 73 if($_userID !== false) 74 { 75 $document->removeAccess($_userID, true); 76 } 77 78 if($_groupID !== false) 79 { 80 $document->removeAccess($_groupID, false); 81 } 82 } 83 84 function deleteDocument($_documentID) 85 { 86 if(!$_documentID) return false; 87 88 $document = getDocument($_documentID); 89 $accessMode = $document->getAccessMode(getUser($GLOBALS['egw_info']['user']['account_id'])); 90 91 if($accessMode < M_ALL) return false; 92 93 if (!$document->remove()) 94 { 95 return false; 96 } 97 98 return true; 99 } 100 101 function deleteFile($_documentID, $_version) 102 { 103 if(!$_documentID || !$_version) return false; 104 105 $document = getDocument($_documentID); 106 $accessMode = $document->getAccessMode(getUser($GLOBALS['egw_info']['user']['account_id'])); 107 108 if($accessMode < M_ALL) return false; 109 110 if(!$version = $document->getContentByVersion($_version)) 111 { 112 return false; 113 } 114 115 if (!$version->remove()) 116 { 117 return false; 118 } 119 120 return true; 121 } 122 123 function deleteNotification($_documentID, $_userID, $_groupID) 124 { 125 if(!$_documentID) return false; 126 127 $document = getDocument($_documentID); 128 $accessMode = $document->getAccessMode(getUser($GLOBALS['egw_info']['user']['account_id'])); 129 130 if($accessMode < M_READWRITE) return false; 131 132 if($_userID !== false) 133 { 134 $document->removeNotify($_userID, true); 135 } 136 137 if($_groupID !== false) 138 { 139 $document->removeNotify($_groupID, false); 140 } 141 } 142 143 function inheritACL($_documentID, $_action, $_mode) 144 { 145 if(!$_documentID) return false; 146 147 $document = getDocument($_documentID); 148 $accessMode = $document->getAccessMode(getUser($GLOBALS['egw_info']['user']['account_id'])); 149 150 if($accessMode < M_ALL) return false; 151 152 switch($_action) 153 { 154 case 'notinherit': 155 switch($_mode) 156 { 157 case 'copy': 158 $defAccess = $document->getDefaultAccess(); 159 $document->setInheritAccess(false); 160 $document->setDefaultAccess($defAccess); 161 162 $folder = $document->getFolder(); 163 $accessList = $folder->getAccessList(); 164 165 foreach ($accessList["users"] as $userAccess) 166 $document->addAccess($userAccess->getMode(), $userAccess->getUserID(), true); 167 168 foreach ($accessList["groups"] as $groupAccess) 169 $document->addAccess($groupAccess->getMode(), $groupAccess->getGroupID(), false); 170 171 return true; 172 173 break; 174 175 case 'empty': 176 $defAccess = $document->getDefaultAccess(); 177 $document->setInheritAccess(false); 178 $document->setDefaultAccess($defAccess); 179 180 return true; 181 182 break; 183 } 184 break; 185 186 case 'inherit': 187 $document->clearAccessList(); 188 $document->setInheritAccess(true); 189 190 return true; 191 192 break; 193 } 194 195 return false; 196 } 197 198 function moveDocument($_documentID, $_targetID) 199 { 200 if(!$_documentID || !$_targetID) return false; 201 202 $document = getDocument($_documentID); 203 204 $oldFolder = $document->getFolder(); 205 $targetFolder = getFolder($_targetID); 206 207 208 $accessModeDocument = $document->getAccessMode(getUser($GLOBALS['egw_info']['user']['account_id'])); 209 $accessModeFolder = $targetFolder->getAccessMode(getUser($GLOBALS['egw_info']['user']['account_id'])); 210 211 if (($accessModeDocument < M_READWRITE) || ($accessModeFolder < M_READWRITE)) 212 return false; 213 214 if ($document->setFolder($targetFolder)) 215 { 216 return true; 217 } 218 219 return false; 220 } 221 222 function setDefaultAccess($_documentID, $_mode) 223 { 224 if(!$_documentID) return false; 225 226 $document = getDocument($_documentID); 227 $accessMode = $document->getAccessMode(getUser($GLOBALS['egw_info']['user']['account_id'])); 228 229 if($accessMode < M_ALL) return false; 230 231 $document->setDefaultAccess($_mode); 232 233 return true; 234 } 235 236 function setOwner($_documentID, $_owner) 237 { 238 if(!$_documentID) return false; 239 240 $document = getDocument($_documentID); 241 $accessMode = $document->getAccessMode(getUser($GLOBALS['egw_info']['user']['account_id'])); 242 243 if($accessMode < M_ALL) return false; 244 245 $document->setOwner(getUser($_owner)); 246 247 return true; 248 } 249 250 function updateACL($_documentID, $_userID, $_groupID, $_access) 251 { 252 if(!$_documentID) return false; 253 254 $document = getDocument($_documentID); 255 $accessMode = $document->getAccessMode(getUser($GLOBALS['egw_info']['user']['account_id'])); 256 257 if($accessMode < M_ALL) return false; 258 259 if($_userID !== false) 260 { 261 $document->changeAccess($_access, $_userID, true); 262 } 263 264 if($_groupID !== false) 265 { 266 $document->changeAccess($_access, $_groupID, false); 267 } 268 } 269 270 function updateDocument($_documentID, $_fileName, $_comment, $_keywords, $_expireDate) 271 { 272 if(!$_documentID) return false; 273 274 $document = getDocument($_documentID); 275 $accessMode = $document->getAccessMode(getUser($GLOBALS['egw_info']['user']['account_id'])); 276 277 if($accessMode < M_READWRITE) return false; 278 279 if ( (($document->getName() == $_fileName) || $document->setName($_fileName)) 280 && (($document->getComment() == $_comment) || $document->setComment($_comment)) 281 && (($document->getKeywords() == $_keywords) || $document->setKeywords($_keywords)) 282 && (($document->getExpires() == $_expireDate) || $document->setExpires($_expireDate)) 283 # && (($sequence == "keep") || $document->setSequence($sequence)) 284 ) 285 { 286 return true; 287 } 288 289 return false; 290 } 291 292 function updateFile($_documentID, $_userfile, $_comment, $_expireDate) 293 { 294 if(!$_documentID) return false; 295 296 $user = getUser($GLOBALS['egw_info']['user']['account_id']); 297 $document = getDocument($_documentID); 298 $accessMode = $document->getAccessMode($user); 299 300 if($accessMode < M_READWRITE) return false; 301 302 if ($document->isLocked()) 303 { 304 $lockingUser = $document->getLockingUser(); 305 306 if (($lockingUser->getID() != $user->getID()) && ($document->getAccessMode($user) != M_ALL)) 307 { 308 return false; 309 } 310 else 311 { 312 $document->setLocked(false); 313 } 314 } 315 316 if(is_uploaded_file($_userfile['tmp_name'])) 317 { 318 $lastDotIndex = strrpos(basename($_userfile['name']), "."); 319 if (is_bool($lastDotIndex) && !$lastDotIndex) 320 $fileType = "."; 321 else 322 $fileType = substr($_userfile['name'], $lastDotIndex); 323 324 if (!$document->addContent($_comment, $user, $_userfile['tmp_name'], basename($_userfile['name']), $fileType, $_userfile['type'])) 325 { 326 return false; 327 } 328 329 if(!$document->setExpires($_expireDate)) 330 { 331 return false; 332 } 333 334 return true; 335 } 336 337 return false; 338 } 339 340 function updateLockStatus($_documentID, $_lockStatus) 341 { 342 if(!$_documentID) return false; 343 344 $user = getUser($GLOBALS['egw_info']['user']['account_id']); 345 $document = getDocument($_documentID); 346 $accessMode = $document->getAccessMode($user); 347 348 if($accessMode < M_READWRITE) return false; 349 350 if($_lockStatus == 'locked') 351 { 352 if ($document->isLocked()) 353 { 354 // take over lock 355 if (($lockingUser->getID() == $user->getID()) || ($accessMode == M_ALL)) 356 { 357 if ($document->setLocked($user)) 358 { 359 return true; 360 } 361 } 362 } 363 else 364 { 365 if ($document->setLocked($user)) 366 { 367 return true; 368 } 369 } 370 } 371 elseif($_lockStatus == 'unlocked') 372 { 373 $lockingUser = $document->getLockingUser(); 374 375 if (($lockingUser->getID() == $user->getID()) || ($accessMode == M_ALL)) 376 { 377 if ($document->setLocked("false")) 378 { 379 return true; 380 } 381 } 382 } 383 384 return false; 385 } 386 } 387 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Sun Feb 25 17:20:01 2007 | par Balluche grâce à PHPXref 0.7 |