[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/mydms/inc/ -> class.bomydms.inc.php (source)

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


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7