private function TryPageLoad($currentUser)
 {
     $fileId = $this->page->GetFileId();
     $referenceNumber = $this->page->GetReferenceNumber();
     Log::Debug('Trying to load reservation attachment. FileId: %s, ReferenceNumber %s', $fileId, $referenceNumber);
     $attachment = $this->reservationRepository->LoadReservationAttachment($fileId);
     if ($attachment == null) {
         Log::Error('Error loading resource attachment, attachment not found');
         return false;
     }
     $reservation = $this->reservationRepository->LoadByReferenceNumber($referenceNumber);
     if ($reservation == null) {
         Log::Error('Error loading resource attachment, reservation not found');
         return false;
     }
     if ($reservation->SeriesId() != $attachment->SeriesId()) {
         Log::Error('Error loading resource attachment, attachment not associated with reservation');
         return false;
     }
     if (!$this->permissionService->CanAccessResource(new ReservationResource($reservation->ResourceId()), $currentUser)) {
         Log::Error('Error loading resource attachment, insufficient permissions');
         return false;
     }
     return $attachment;
 }
Ejemplo n.º 2
0
 public function testFiltersResources()
 {
     $scheduleId = 122;
     $resourceId = 4;
     $resource1 = new FakeBookableResource(1, 'resource1');
     $resource2 = new FakeBookableResource(2, 'resource2');
     $resource3 = new FakeBookableResource(3, 'resource3');
     $resource4 = new FakeBookableResource(4, 'resource4');
     $resources = array($resource1, $resource2, $resource3, $resource4);
     $this->resourceRepository->expects($this->once())->method('GetScheduleResources')->with($this->equalTo($scheduleId))->will($this->returnValue($resources));
     $this->permissionService->expects($this->any())->method('CanAccessResource')->with($this->anything(), $this->anything())->will($this->returnValue(true));
     $filter = $this->getMock('IScheduleResourceFilter');
     $filter->expects($this->once())->method('FilterResources')->with($this->equalTo($resources), $this->equalTo($this->resourceRepository))->will($this->returnValue(array($resourceId)));
     $resources = $this->resourceService->GetScheduleResources($scheduleId, true, $this->fakeUser, $filter);
     $this->assertEquals(1, count($resources));
     $this->assertEquals(4, $resources[0]->GetId());
 }
Ejemplo n.º 3
0
 public function ShouldInclude($resource)
 {
     return $this->permissionService->CanAccessResource($resource, $this->user);
 }