- Timestamp:
- 05/23/12 17:11:17 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/modules/calendar/interceptors/DBMapping.php
r6250 r6286 560 560 public function deepnessReadParticipant( &$uri , &$result , &$criteria , $original ){ 561 561 562 563 562 if(isset($original['criteria']['deepness']) && $original['criteria']['deepness'] != 0) 564 563 { 565 if(isset($result['id']) )564 if(isset($result['id']) && isset($result['user'])) 566 565 { 567 566 $result['user'] = Controller::read( array( 'concept' => 'user' , 'id' => $result['user'] , 'service' => ( $result['isExternal'] == 1 ? 'PostgreSQL' : 'OpenLDAP' ) ) ); … … 713 712 if (Config::module('useCaldav', 'expressoCalendar')) 714 713 require_once ROOTPATH . '/modules/calendar/interceptors/DAViCalAdapter.php'; 714 715 if(isset($criteria['filter']) && $criteria['filter'] && isset($criteria['filter'][1][2])){ 716 $idSchedulable = $criteria['filter'][1][2]; 717 $idCalendar = $criteria['filter'][2][2]; 718 719 if(!self::ownerSchedulable($idSchedulable)){ 720 $isPermissionFromOwner = self::permissionFromCalendarSignature($idCalendar, $idSchedulable); 721 722 if($isPermissionFromOwner){ 723 Controller::delete(array('concept' => 'schedulable', 'id' => $idSchedulable)); 724 725 }else{ 726 $calendarsToSchedulable = self::schedulable2calendarToObject($idSchedulable); 727 728 foreach($calendarsToSchedulable as $value) 729 if($value['calendar_id'] == $idCalendar){ 730 Controller::delete(array('concept' => 'calendarToSchedulable', 'id' => $value['calendar_to_calendar_object'])); 731 break; 732 } 733 } 734 return false; 735 } 736 737 $uri['id'] = $idSchedulable; 738 } 715 739 716 740 $calendarsToSchedulable = self::schedulable2calendarToObject($uri['id']); … … 973 997 } 974 998 999 private static function permissionFromCalendarSignature($idCalendar, $idEvent) { 1000 $signature = Controller::find(array('concept' => 'calendarSignature'), false, array( 'filter' => array('AND', array('=', 'calendar', $idCalendar), array('=', 'isOwner', '1')), 'deepness' => 2)); 1001 1002 $signature = is_array($signature) ? $signature[0] : $signature; 1003 1004 if($signature['user']['id'] == Config::me('uidNumber')){ 1005 return false; 1006 }else{ 1007 $isOwner = Controller::find(array('concept' => 'participant'), array('id'), array('filter' => 1008 array('AND', 1009 array('=', 'isOrganizer', '1'), 1010 array('=', 'user', $signature['user']['id']), 1011 array('=', 'schedulable', $idEvent) 1012 ))); 1013 1014 return ( isset($isOwner[0]['id']) ) ? true : false; 1015 } 1016 } 1017 1018 975 1019 private static function ownerSchedulable($id) { 976 1020
Note: See TracChangeset
for help on using the changeset viewer.