/** * @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()); }
/** * @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; }