Esempio n. 1
0
 /**
  * Returns the user that match the given string
  *
  * @param String $user_name
  * @return PFUser
  * @throws Exception
  */
 public function getUserByName($user_name)
 {
     $user = $this->user_manager->getUserByIdentifier($user_name);
     if ($user && $user->isAlive()) {
         return $user;
     }
     throw new Exception('Invalid user');
 }
 /**
  * @param SimpleXMLElement $xml_element
  * @return PFUser
  */
 public function getUser(SimpleXMLElement $xml_element)
 {
     $submitter = $this->user_manager->getUserByIdentifier($this->getUserFormat($xml_element));
     if (!$submitter) {
         $submitter = $this->user_manager->getUserAnonymous();
         $submitter->setEmail((string) $xml_element);
     }
     return $submitter;
 }
 public function getFieldDataFromRESTObject(array $rest_data, Tracker_FormElement_Field_List $field)
 {
     if (isset($rest_data['id']) && is_numeric($rest_data['id'])) {
         $id = (int) $rest_data['id'];
         $user = $this->getValue($id);
         if (!$user) {
             throw new Tracker_FormElement_InvalidFieldValueException('Cannot Bind to user with ID ' . $id . ' for field ID ' . $field->getId());
         }
         return Tracker_FormElement_Field_OpenList::BIND_PREFIX . $id;
     }
     if (isset($rest_data['username'])) {
         $identifier = (string) $rest_data['username'];
         $user = $this->userManager->getUserByIdentifier($identifier);
         if (!$user) {
             throw new Tracker_FormElement_InvalidFieldValueException('Cannot Bind to user "' . $identifier . '" for field ID ' . $field->getId());
         }
         return Tracker_FormElement_Field_OpenList::BIND_PREFIX . $user->getId();
     }
     if (!isset($rest_data['email'])) {
         throw new Tracker_FormElement_InvalidFieldValueException('OpenList user fields values should be passed as an object with at least one of the properties "id", "username" or "email"');
     }
     $identifier = (string) $rest_data['email'];
     $user = $this->userManager->getUserByIdentifier("email:{$identifier}");
     if (!$user) {
         return Tracker_FormElement_Field_OpenList::NEW_VALUE_PREFIX . $identifier;
     }
     return Tracker_FormElement_Field_OpenList::BIND_PREFIX . $user->getId();
 }
 /**
  * @param SimpleXMLElement $ugroup
  *
  * @return PFUser[]
  */
 private function getListOfUgroupMember(SimpleXMLElement $ugroup)
 {
     $ugroup_members = array();
     foreach ($ugroup->members->member as $xml_member) {
         $identifier = $this->xml_helper->getUserFormat($xml_member);
         $user = $this->user_manager->getUserByIdentifier($identifier);
         if (!$user) {
             $this->logger->debug("User ({$identifier}) does not exist -> skipped");
             continue;
         }
         $ugroup_members[] = $user;
     }
     return $ugroup_members;
 }
 public function isValid($value)
 {
     if ($value) {
         $values = explode(',', $value);
         foreach ($values as $v) {
             if (stripos($v, '!') !== false) {
                 //we check the string is an email
                 $rule = new Rule_Email();
                 if (!$rule->isValid($v)) {
                     //we check the string correspond to a username
                     if (!$this->userManager->getUserByIdentifier(substr($v, 1))) {
                         return false;
                     }
                 }
             }
         }
     }
     return true;
 }