[ Index ] |
|
Code source de Horde 3.1.3 |
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';
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 18:01:28 2007 | par Balluche grâce à PHPXref 0.7 |