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; }
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()); }
public function ShouldInclude($resource) { return $this->permissionService->CanAccessResource($resource, $this->user); }