Пример #1
0
 /**
  * @param UserInterface $user
  */
 protected function onSuccess(UserInterface $user)
 {
     // Disabling user password registration
     //        $user->setPlainPassword($this->getNewPassword());
     $user->setConfirmationToken(null);
     $user->setPasswordRequestedAt(null);
     $user->setEnabled(true);
     $this->userManager->updateUser($user);
     // getting DB user
     $dbUser = $this->em->getRepository('SpiritDevDBoxUserBundle:User')->findOneByUsername($user->getUsername());
     // Updating LDAP Password
     $this->ldap->ldapUpdatePassword($dbUser, $this->getNewPassword());
 }
Пример #2
0
 /**
  * @param Demand $demandToProcess
  * @return bool|null
  */
 protected function processLdapUserRegister(Demand $demandToProcess)
 {
     $demandToProcessContent = $demandToProcess->getContent();
     // Defining username
     // Concatenate firstname (char1) + lastname
     $username = substr($demandToProcessContent["firstname"], 0, 1) . $demandToProcessContent["lastname"];
     // Low case all
     $username = strtolower($username);
     // Defining userDN
     $userDn = 'uid=' . $username . ', ou=people, ' . $this->container->getParameter('spirit_dev_d_box_user.ldap_driver.user.basedn');
     $userDn = str_replace(" ", "", $userDn);
     // Generating encoded SSHA Password
     $salt = base_convert(sha1(uniqid(mt_rand(), true)), 16, 36);
     $plainpasswd = Randomizer::generateRandomString(8);
     $encodedPassword = '******' . base64_encode(sha1($plainpasswd . $salt, TRUE) . $salt);
     // LDAP Encoded infos
     $newUserInfo['uid'] = $username;
     $newUserInfo['preferredLanguage'] = "fr_FR";
     $newUserInfo['gosaMailServer'] = "localhost";
     $newUserInfo['gosaVacationStart'] = (int) "1446559098";
     $newUserInfo['gosaVacationStop'] = (int) "1446559098";
     $newUserInfo['gosaMailDeliveryMode'] = ['none'];
     $newUserInfo['objectClass'][0] = "inetOrgPerson";
     $newUserInfo['objectClass'][1] = "organizationalPerson";
     $newUserInfo['objectClass'][2] = "person";
     $newUserInfo['objectClass'][3] = "gosaMailAccount";
     $newUserInfo['mail'] = $demandToProcessContent["user_mail"];
     $newUserInfo['givenName'] = ucfirst($demandToProcessContent["firstname"]);
     $newUserInfo['sn'] = ucfirst($demandToProcessContent["lastname"]);
     $newUserInfo['cn'] = ucfirst($demandToProcessContent["firstname"]) . " " . ucfirst($demandToProcessContent["lastname"]);
     $newUserInfo['userPassword'] = $encodedPassword;
     // Applying LDAP registration
     $ldapCreateUserIssue = $this->ldapDriver->ldapCreateUser($userDn, $newUserInfo);
     // If OK
     if ($ldapCreateUserIssue) {
         // Add some information to the array
         $newUserInfo['created'] = true;
         $newUserInfo['userDn'] = $userDn;
         $newUserInfo['clear_password'] = $plainpasswd;
     } else {
         $newUserInfo['created'] = false;
     }
     // Return with added infos to array
     return $newUserInfo;
 }