Ejemplo n.º 1
0
 /**
  * Hydrates an user entity with ldap attributes.
  *
  * @param  UserInterface $user user to hydrate
  * @param  array $entry ldap result
  *
  * @return UserInterface
  */
 protected function hydrate(UserInterface $user, array $entry)
 {
     $user->setPassword('');
     if ($user instanceof AdvancedUserInterface) {
         $user->setEnabled(true);
     }
     foreach ($this->params['attributes'] as $attr) {
         if (!array_key_exists($attr['ldap_attr'], $entry)) {
             continue;
         }
         $ldapValue = $entry[$attr['ldap_attr']];
         $value = null;
         if (!array_key_exists('count', $ldapValue) || $ldapValue['count'] == 1) {
             $value = $ldapValue[0];
         } else {
             $value = array_slice($ldapValue, 1);
         }
         call_user_func(array($user, $attr['user_method']), $value);
     }
     if ($user instanceof LdapUserInterface) {
         $user->setDn($entry['dn']);
     }
     if ($user instanceof LdapUserRoleInterface && count($this->params['role'])) {
         $this->addRoles($user, $entry);
     }
 }
Ejemplo n.º 2
0
 public function setUserPassword(UserInterface $user)
 {
     if (0 !== strlen($password = $user->getPlainPassword())) {
         $user->setPassword($user->getPlainPassword() . $this->getSalt());
         $encoder = $this->getEncoderFactory()->getEncoder($user);
         $user->setPassword($encoder->encodePassword($password, $user->getSalt()));
         $user->eraseCredentials();
     }
 }
Ejemplo n.º 3
0
 /**
  * Changes the password of a user.
  *
  * @param UserInterface $user
  * @param string        $password
  *
  * @throws MissingPasswordException
  */
 private function changePassword(UserInterface $user, $password)
 {
     if ($password === '') {
         throw new MissingPasswordException();
     }
     $em = $this->getDoctrine()->getManager();
     $user->setPassword($this->encodePassword($user, $password, $user->getSalt()));
     $em->persist($user);
     $em->flush();
 }
Ejemplo n.º 4
0
 /**
  * Sets the standard credentials for the user.
  *
  * @param UserInterface $user
  */
 private function setCredentials(UserInterface $user)
 {
     $user->setUsername('test');
     $user->setPassword('test');
     $user->setSalt('');
 }
Ejemplo n.º 5
0
 /**
  * creates user profile based on got values
  * @param \Symfony\Component\Security\Core\User\UserInterface $user
  * @param array $profile
  */
 protected function createProfile(UserInterface $user, array $profile)
 {
     $user->setEnabled(true);
     $user->setPassword('');
     $username = strtolower(trim($profile['preferredUsername'], '_'));
     $user->setUsername($username);
     $user->setSocialIdentifier($profile['identifier']);
     if (method_exists($user, 'setEmail') && @$profile['email']) {
         $user->setEmail($profile['email']);
     }
     // use givenName and familyName if provided
     $name = @$profile['name'];
     if (is_array($name)) {
         if (method_exists($user, 'setFirstName') && array_key_exists('givenName', $name) && $name['givenName']) {
             $user->setFirstName($name['givenName']);
         }
         if (method_exists($user, 'setLastName') && array_key_exists('familyName', $name) && $name['familyName']) {
             $user->setLastName($name['familyName']);
         }
     }
     // fill first name as displayName
     if (method_exists($user, 'setFirstName') && !$user->getFirstName()) {
         $user->setFirstName($profile['displayName']);
     }
 }