share() public method

public share ( )
Example #1
0
 /**
  * Removes a resource from storage, along with any events in the resource's
  * calendar.
  *
  * @param Kronolith_Resource_Base $resource  The kronolith resource to remove
  *
  * @throws Kronolith_Exception, Horde_Exception_PermissionDenied
  */
 public function delete($resource)
 {
     // @todo
     if (!$GLOBALS['registry']->isAdmin() && !$GLOBALS['injector']->getInstance('Horde_Core_Perms')->hasAppPermission('resource_management')) {
         throw new Horde_Exception_PermissionDenied();
     }
     if (!$resource->getId()) {
         throw new Kronolith_Exception(_("Resource not valid."));
     }
     // Get group memberships and remove from group.
     $groups = $this->getGroupMemberships($resource->getId());
     foreach ($groups as $id) {
         $rg = $this->getResource($id);
         $members = $rg->get('members');
         unset($members[array_search($resource->getId(), $members)]);
         $rg->set('members', $members);
         $rg->save();
     }
     $this->_deleteResourceCalendar($resource->get('calendar'));
     try {
         $GLOBALS['injector']->getInstance('Kronolith_Shares')->removeShare($resource->share());
     } catch (Horde_Share_Exception $e) {
         throw new Kronolith_Exception($e);
     }
 }