[ Index ]
 

Code source de Horde 3.1.3

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

title

Body

[fermer]

/services/shares/ -> edit.php (source)

   1  <?php
   2  /**
   3   * $Horde: horde/services/shares/edit.php,v 1.26.10.8 2006/05/01 21:16:41 chuck Exp $
   4   *
   5   * Copyright 2002-2006 Chuck Hagenbuch <chuck@horde.org>
   6   *
   7   * See the enclosed file COPYING for license information (LGPL).  If you
   8   * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
   9   */
  10  
  11  $fieldsList['show'] = 0;
  12  $fieldsList['read'] = 1;
  13  $fieldsList['edit'] = 2;
  14  $fieldsList['delete'] = 3;
  15  
  16  @define('HORDE_BASE', dirname(__FILE__) . '/../..');
  17  require_once  HORDE_BASE . '/lib/base.php';
  18  require_once  'Horde/Menu.php';
  19  require_once  'Horde/Share.php';
  20  require_once  'Horde/Group.php';
  21  
  22  $app = Util::getFormData('app');
  23  $shares = &Horde_Share::singleton($app);
  24  $groups = &Group::singleton();
  25  $auth = &Auth::singleton($conf['auth']['driver']);
  26  
  27  $form = null;
  28  $reload = false;
  29  $actionID = Util::getFormData('actionID', 'edit');
  30  switch ($actionID) {
  31  case 'edit':
  32      $share = &$shares->getShareById(Util::getFormData('cid'));
  33      if (!is_a($share, 'PEAR_Error')) {
  34          $form = 'edit.inc';
  35          $perm = &$share->getPermission();
  36      } elseif (($category = Util::getFormData('share')) !== null) {
  37          $share = &$shares->getShare($category);
  38          if (!is_a($share, 'PEAR_Error')) {
  39              $form = 'edit.inc';
  40              $perm = &$share->getPermission();
  41          }
  42      }
  43      if (is_a($share, 'PEAR_Error')) {
  44          $notification->push($share, 'horde.error');
  45      } elseif (isset($share) && Auth::getAuth() != $share->get('owner')) {
  46          exit('permission denied');
  47      }
  48      break;
  49  
  50  case 'editform':
  51      $share = &$shares->getShareById(Util::getFormData('cid'));
  52      if (is_a($share, 'PEAR_Error')) {
  53          $notification->push(_("Attempt to edit a non-existent share."), 'horde.error');
  54      } else {
  55          if (Auth::getAuth() != $share->get('owner')) {
  56              exit('permission denied');
  57          }
  58          $perm = &$share->getPermission();
  59  
  60          // Process owner and owner permissions.
  61          $old_owner = $share->get('owner');
  62          $new_owner = Util::getFormData('owner', $old_owner);
  63          if ($old_owner !== $new_owner && !empty($new_owner)) {
  64              if ($old_owner != Auth::getAuth() && !Auth::isAdmin()) {
  65                  $notification->push(_("Only the owner or system administrator may change ownership or owner permissions for a share"), 'horde.error');
  66              } else {
  67                  $share->set('owner', $new_owner);
  68                  $share->save();
  69                  if (Util::getFormData('owner_show')) {
  70                      $perm->addUserPermission($new_owner, PERMS_SHOW, false);
  71                  } else {
  72                      $perm->removeUserPermission($new_owner, PERMS_SHOW, false);
  73                  }
  74                  if (Util::getFormData('owner_read')) {
  75                      $perm->addUserPermission($new_owner, PERMS_READ, false);
  76                  } else {
  77                      $perm->removeUserPermission($new_owner, PERMS_READ, false);
  78                  }
  79                  if (Util::getFormData('owner_edit')) {
  80                      $perm->addUserPermission($new_owner, PERMS_EDIT, false);
  81                  } else {
  82                      $perm->removeUserPermission($new_owner, PERMS_EDIT, false);
  83                  }
  84                  if (Util::getFormData('owner_delete')) {
  85                      $perm->addUserPermission($new_owner, PERMS_DELETE, false);
  86                  } else {
  87                      $perm->removeUserPermission($new_owner, PERMS_DELETE, false);
  88                  }
  89              }
  90          }
  91  
  92          // Process default permissions.
  93          if (Util::getFormData('default_show')) {
  94              $perm->addDefaultPermission(PERMS_SHOW, false);
  95          } else {
  96              $perm->removeDefaultPermission(PERMS_SHOW, false);
  97          }
  98          if (Util::getFormData('default_read')) {
  99              $perm->addDefaultPermission(PERMS_READ, false);
 100          } else {
 101              $perm->removeDefaultPermission(PERMS_READ, false);
 102          }
 103          if (Util::getFormData('default_edit')) {
 104              $perm->addDefaultPermission(PERMS_EDIT, false);
 105          } else {
 106              $perm->removeDefaultPermission(PERMS_EDIT, false);
 107          }
 108          if (Util::getFormData('default_delete')) {
 109              $perm->addDefaultPermission(PERMS_DELETE, false);
 110          } else {
 111              $perm->removeDefaultPermission(PERMS_DELETE, false);
 112          }
 113  
 114          // Process guest permissions.
 115          if (Util::getFormData('guest_show')) {
 116              $perm->addGuestPermission(PERMS_SHOW, false);
 117          } else {
 118              $perm->removeGuestPermission(PERMS_SHOW, false);
 119          }
 120          if (Util::getFormData('guest_read')) {
 121              $perm->addGuestPermission(PERMS_READ, false);
 122          } else {
 123              $perm->removeGuestPermission(PERMS_READ, false);
 124          }
 125          if (Util::getFormData('guest_edit')) {
 126              $perm->addGuestPermission(PERMS_EDIT, false);
 127          } else {
 128              $perm->removeGuestPermission(PERMS_EDIT, false);
 129          }
 130          if (Util::getFormData('guest_delete')) {
 131              $perm->addGuestPermission(PERMS_DELETE, false);
 132          } else {
 133              $perm->removeGuestPermission(PERMS_DELETE, false);
 134          }
 135  
 136          // Process creator permissions.
 137          if (Util::getFormData('creator_show')) {
 138              $perm->addCreatorPermission(PERMS_SHOW, false);
 139          } else {
 140              $perm->removeCreatorPermission(PERMS_SHOW, false);
 141          }
 142          if (Util::getFormData('creator_read')) {
 143              $perm->addCreatorPermission(PERMS_READ, false);
 144          } else {
 145              $perm->removeCreatorPermission(PERMS_READ, false);
 146          }
 147          if (Util::getFormData('creator_edit')) {
 148              $perm->addCreatorPermission(PERMS_EDIT, false);
 149          } else {
 150              $perm->removeCreatorPermission(PERMS_EDIT, false);
 151          }
 152          if (Util::getFormData('creator_delete')) {
 153              $perm->addCreatorPermission(PERMS_DELETE, false);
 154          } else {
 155              $perm->removeCreatorPermission(PERMS_DELETE, false);
 156          }
 157  
 158          // Process user permissions.
 159          $u_names = Util::getFormData('u_names');
 160          $u_show = Util::getFormData('u_show');
 161          $u_read = Util::getFormData('u_read');
 162          $u_edit = Util::getFormData('u_edit');
 163          $u_delete = Util::getFormData('u_delete');
 164  
 165          foreach ($u_names as $key => $user) {
 166              // If the user is empty, or we've already set permissions
 167              // via the owner_ options, don't do anything here.
 168              if (empty($user) || $user == $new_owner) {
 169                  continue;
 170              }
 171  
 172              if (!empty($u_show[$key])) {
 173                  $perm->addUserPermission($user, PERMS_SHOW, false);
 174              } else {
 175                  $perm->removeUserPermission($user, PERMS_SHOW, false);
 176              }
 177              if (!empty($u_read[$key])) {
 178                  $perm->addUserPermission($user, PERMS_READ, false);
 179              } else {
 180                  $perm->removeUserPermission($user, PERMS_READ, false);
 181              }
 182              if (!empty($u_edit[$key])) {
 183                  $perm->addUserPermission($user, PERMS_EDIT, false);
 184              } else {
 185                  $perm->removeUserPermission($user, PERMS_EDIT, false);
 186              }
 187              if (!empty($u_delete[$key])) {
 188                  $perm->addUserPermission($user, PERMS_DELETE, false);
 189              } else {
 190                  $perm->removeUserPermission($user, PERMS_DELETE, false);
 191              }
 192          }
 193  
 194          // Process group permissions.
 195          $g_names = Util::getFormData('g_names');
 196          $g_show = Util::getFormData('g_show');
 197          $g_read = Util::getFormData('g_read');
 198          $g_edit = Util::getFormData('g_edit');
 199          $g_delete = Util::getFormData('g_delete');
 200  
 201          foreach ($g_names as $key => $group) {
 202              if (empty($group)) {
 203                  continue;
 204              }
 205  
 206              if (!empty($g_show[$key])) {
 207                  $perm->addGroupPermission($group, PERMS_SHOW, false);
 208              } else {
 209                  $perm->removeGroupPermission($group, PERMS_SHOW, false);
 210              }
 211              if (!empty($g_read[$key])) {
 212                  $perm->addGroupPermission($group, PERMS_READ, false);
 213              } else {
 214                  $perm->removeGroupPermission($group, PERMS_READ, false);
 215              }
 216              if (!empty($g_edit[$key])) {
 217                  $perm->addGroupPermission($group, PERMS_EDIT, false);
 218              } else {
 219                  $perm->removeGroupPermission($group, PERMS_EDIT, false);
 220              }
 221              if (!empty($g_delete[$key])) {
 222                  $perm->addGroupPermission($group, PERMS_DELETE, false);
 223              } else {
 224                  $perm->removeGroupPermission($group, PERMS_DELETE, false);
 225              }
 226          }
 227  
 228          $share->setPermission($perm, false);
 229          $share->save();
 230          $notification->push(sprintf(_("Updated \"%s\"."), $share->get('name')), 'horde.success');
 231          $form = 'edit.inc';
 232      }
 233      break;
 234  }
 235  
 236  if (is_a($share, 'PEAR_Error')) {
 237      $title = _("Edit Permissions");
 238  } else {
 239      $title = sprintf(_("Edit Permissions for %s"), $share->get('name'));
 240  }
 241  
 242  if ($auth->hasCapability('list')) {
 243      $userList = $auth->listUsers();
 244      if (is_a($userList, 'PEAR_Error')) {
 245          Horde::logMessage($userList, __FILE__, __LINE__, PEAR_LOG_ERR);
 246          $userList = array();
 247      }
 248      sort($userList);
 249  } else {
 250      $userList = array();
 251  }
 252  
 253  $groupList = $groups->getGroupMemberships(Auth::getAuth(), true);
 254  if (is_a($groupList, 'PEAR_Error')) {
 255      Horde::logMessage($groupList, __FILE__, __LINE__, PEAR_LOG_NOTICE);
 256      $groupList = array();
 257  }
 258  asort($groupList);
 259  
 260  require  HORDE_TEMPLATES . '/common-header.inc';
 261  $notification->notify(array('listeners' => 'status'));
 262  if (!empty($form)) {
 263      require HORDE_TEMPLATES . '/shares/' . $form;
 264  }
 265  
 266  require  HORDE_TEMPLATES . '/common-footer.inc';


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