/** * @param Application $application * @param UserInterface $user * @return CvEntity * @since 0.26 */ public function createFromApplication(Application $application, UserInterface $user) { $cv = $this->create(); $cv->setContact($application->getContact()); $assignedUser = $application->getJob()->getUser(); $cv->setUser($assignedUser); $perms = $cv->getPermissions(); $perms->inherit($application->getPermissions()); // grant view permission to the user that issued this creation. $perms->grant($user, PermissionsInterface::PERMISSION_VIEW); // revoke change permission to the original applicant $perms->revoke($application->getUser(), PermissionsInterface::PERMISSION_CHANGE); $applicationAttachments = $application->getAttachments(); if (count($applicationAttachments) > 0) { $cvAttachments = []; /* @var $applicationAttachment \Applications\Entity\Attachment */ foreach ($applicationAttachments as $applicationAttachment) { $file = new \Doctrine\MongoDB\GridFSFile(); $file->setBytes($applicationAttachment->getContent()); $cvAttachment = new \Cv\Entity\Attachment(); $cvAttachment->setName($applicationAttachment->getName()); $cvAttachment->setType($applicationAttachment->getType()); $cvAttachment->setUser($assignedUser); $cvAttachment->setFile($file); $cvAttachment->setDateUploaded($applicationAttachment->getDateUploaded()); $cvAttachments[] = $cvAttachment; } $cv->setAttachments(new \Doctrine\Common\Collections\ArrayCollection($cvAttachments)); } return $cv; }
public function provideAssertTestData() { $role = new GenericRole('Test'); $resource = new GenericResource('Test'); $user = new User(); $user->setId('testuser'); $user2 = new User(); $user2->setId('testuser2'); $app = new Application(); $app2 = new Application(); $app2->getPermissions()->grant($user, PermissionsInterface::PERMISSION_VIEW)->grant($user2, PermissionsInterface::PERMISSION_CHANGE); return array('nouser-noapp' => array($role, $resource, null, false), 'user-noapp' => array($user, $resource, null, false), 'user-app-no-perm' => array($role, $app, null, false), 'read-not-granted' => array($user, $app, 'read', false), 'change-not-granted' => array($user, $app, 'write', false), 'read-granted' => array($user2, $app2, 'read', true), 'change-granted' => array($user2, $app2, 'write', true), 'change-not-granted2' => array($user, $app2, 'change', false)); }
public function provideAssertTestData() { $role = new GenericRole('Test'); $resource = new GenericResource('Test'); $user = new User(); $user->setId('testuser'); $user2 = new User(); $user2->setId('testuser2'); $app = new Application(); $app2 = new Application(); $app2->getPermissions()->grant($user, PermissionsInterface::PERMISSION_VIEW)->grant($user2, PermissionsInterface::PERMISSION_CHANGE); $app3 = new Application(); $app3->setIsDraft(true); //$app3->setUser($user); $app3->getPermissions()->grant($user, PermissionsInterface::PERMISSION_VIEW)->grant($user2, PermissionsInterface::PERMISSION_CHANGE); return array('nouser-noapp' => array($role, $resource, null, false), 'user-noapp' => array($user, $resource, null, false), 'user-app-no-perm' => array($role, $app, null, false), 'read-not-granted' => array($user, $app, 'read', false), 'change-not-granted' => array($user, $app, 'write', false), 'read-granted' => array($user2, $app2, 'read', true), 'change-granted' => array($user2, $app2, 'write', true), 'change-not-granted2' => array($user, $app2, 'change', false), 'subsequentAttachmentUpload-not-granted' => array($user, $app, Application::PERMISSION_SUBSEQUENT_ATTACHMENT_UPLOAD, false), 'subsequentAttachmentUpload-granted' => array($user, $app2, Application::PERMISSION_SUBSEQUENT_ATTACHMENT_UPLOAD, true), 'allow-draft-view' => [$user2, $app3, 'change', true], 'disallow-draft-view' => [$user, $app3, 'change', false]); }