/** * @param array $data * @param CurriculumInventoryInstitutionInterface $entity */ protected function assertDataEquals(array $data, $entity) { // `school_id`,`name`,`aamc_code`,`address_street`,`address_city`, // `address_state_or_province`,`address_zipcode`, // `address_country_code`,`institution_id` $this->assertEquals($data[0], $entity->getSchool()->getId()); $this->assertEquals($data[1], $entity->getName()); $this->assertEquals($data[2], $entity->getAamcCode()); $this->assertEquals($data[3], $entity->getAddressStreet()); $this->assertEquals($data[4], $entity->getAddressCity()); $this->assertEquals($data[5], $entity->getAddressStateOrProvince()); $this->assertEquals($data[6], $entity->getAddressZipcode()); $this->assertEquals($data[7], $entity->getAddressCountryCode()); $this->assertEquals($data[8], $entity->getId()); }
/** * @param string $attribute * @param CurriculumInventoryInstitutionInterface $institution * @param TokenInterface $token * @return bool */ protected function voteOnAttribute($attribute, $institution, TokenInterface $token) { $user = $token->getUser(); if (!$user instanceof UserInterface) { return false; } switch ($attribute) { case self::VIEW: case self::EDIT: case self::DELETE: return $this->userHasRole($user, ['Course Director', 'Developer']); break; } switch ($attribute) { case self::VIEW: // Only grant VIEW permissions to users with at least one of // 'Course Director' and 'Developer' roles. // - and - // the user must be associated with the institution's school // either by its primary school attribute // - or - by READ rights for the school // via the permissions system. return $this->userHasRole($user, ['Course Director', 'Developer']) && ($this->schoolsAreIdentical($user->getSchool(), $institution->getSchool()) || $this->permissionManager->userHasReadPermissionToSchool($user, $institution->getSchool()->getId())); break; case self::CREATE: case self::EDIT: case self::DELETE: // Only grant CREATE, EDIT and DELETE permissions to users with at least one of // 'Course Director' and 'Developer' roles. // - and - // the user must be associated with the institution's school // either by its primary school attribute // - or - by WRITE rights for the school // via the permissions system. return $this->userHasRole($user, ['Course Director', 'Developer']) && ($this->schoolsAreIdentical($user->getSchool(), $institution->getSchool()) || $this->permissionManager->userHasWritePermissionToSchool($user, $institution->getSchool()->getId())); break; } return false; }
/** * @param CurriculumInventoryInstitutionInterface $entity * @param array $data * @return CurriculumInventoryInstitutionInterface * * AbstractFixture::populateEntity() */ protected function populateEntity($entity, array $data) { // `school_id`,`name`,`aamc_code`,`address_street`,`address_city`, // `address_state_or_province`,`address_zipcode`, // `address_country_code`,`institution_id` $entity->setSchool($this->getReference('school' . $data[0])); $entity->setName($data[1]); $entity->setAamcCode($data[2]); $entity->setAddressStreet($data[3]); $entity->setAddressCity($data[4]); $entity->setAddressStateOrProvince($data[5]); $entity->setAddressZipCode($data[6]); $entity->setAddressCountryCode($data[7]); $entity->setId($data[8]); return $entity; }