Exemplo n.º 1
0
 /**
  * Set the value of a field for a user
  *
  * @param User       $user
  * @param FieldFacet $field
  * @param mixed      $value
  *
  * @throws \Exception
  */
 public function setFieldValue(User $user, FieldFacet $field, $value, $force = false)
 {
     if (!$this->authorization->isGranted('edit', $field) && !$force) {
         throw new AccessDeniedException();
     }
     $fieldFacetValue = $this->om->getRepository('ClarolineCoreBundle:Facet\\FieldFacetValue')->findOneBy(array('user' => $user, 'fieldFacet' => $field));
     if ($fieldFacetValue === null) {
         $fieldFacetValue = new FieldFacetValue();
         $fieldFacetValue->setUser($user);
         $fieldFacetValue->setFieldFacet($field);
     }
     switch ($field->getType()) {
         case FieldFacet::DATE_TYPE:
             $date = is_string($value) ? \DateTime::createFromFormat($this->translator->trans('date_form_datepicker_php', array(), 'platform'), $value) : $value;
             $fieldFacetValue->setDateValue($date);
             break;
         case FieldFacet::FLOAT_TYPE:
             $fieldFacetValue->setFloatValue($value);
             break;
         case FieldFacet::STRING_TYPE:
             $fieldFacetValue->setStringValue($value);
             break;
         default:
             throw new \Exception('The facet type ' . $field->getType() . ' is unknown.');
     }
     $this->om->persist($fieldFacetValue);
     $this->om->flush();
 }
Exemplo n.º 2
0
 /**
  * Set the value of a field for a user.
  *
  * @param User       $user
  * @param FieldFacet $field
  * @param mixed      $value
  *
  * @throws \Exception
  */
 public function setFieldValue(User $user, FieldFacet $field, $value, $force = false)
 {
     if (!$this->authorization->isGranted('edit', new FieldFacetCollection([$field], $user)) && !$force) {
         throw new AccessDeniedException();
     }
     $fieldFacetValue = $this->om->getRepository('ClarolineCoreBundle:Facet\\FieldFacetValue')->findOneBy(['user' => $user, 'fieldFacet' => $field]);
     if ($fieldFacetValue === null) {
         $fieldFacetValue = new FieldFacetValue();
         $fieldFacetValue->setUser($user);
         $fieldFacetValue->setFieldFacet($field);
     }
     switch ($field->getType()) {
         case FieldFacet::DATE_TYPE:
             $date = is_string($value) ? new \DateTime($value) : $value;
             $fieldFacetValue->setDateValue($date);
             break;
         case FieldFacet::FLOAT_TYPE:
             $fieldFacetValue->setFloatValue($value);
             break;
         case FieldFacet::CHECKBOXES_TYPE:
             $fieldFacetValue->setArrayValue($value);
             break;
         default:
             $fieldFacetValue->setStringValue($value);
     }
     $this->om->persist($fieldFacetValue);
     $this->om->flush();
 }