本文整理汇总了PHP中Claroline\CoreBundle\Entity\User::setAuthentication方法的典型用法代码示例。如果您正苦于以下问题:PHP User::setAuthentication方法的具体用法?PHP User::setAuthentication怎么用?PHP User::setAuthentication使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Claroline\CoreBundle\Entity\User
的用法示例。
在下文中一共展示了User::setAuthentication方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getFromProviders
private function getFromProviders(TokenInterface $token, $providerKey)
{
$drivers = $this->authenticationManager->getDrivers();
foreach ($drivers as $driver) {
$found = $this->authenticationManager->authenticate($driver, $token->getUsername(), $token->getCredentials());
if ($found) {
$data = $this->authenticationManager->findUser($driver, $token->getUsername());
$user = new User();
$user->setFirstName($data['first_name']);
$user->setPlainPassword($data['password']);
$user->setLastName($data['last_name']);
$user->setUsername($data['username']);
$user->setMail($data['email']);
$user->setAuthentication($driver);
$iser = $this->userManager->createUser($user, false);
return new UsernamePasswordToken($user, $user->getPassword(), $providerKey, $user->getRoles());
}
}
throw new AuthenticationException('Invalid username or password');
}
示例2: importUsers
/**
* Import users from an array.
* There is the array format:
* @todo some batch processing
*
* array(
* array(firstname, lastname, username, pwd, email, code, phone),
* array(firstname2, lastname2, username2, pwd2, email2, code2, phone2),
* array(firstname3, lastname3, username3, pwd3, email3, code3, phone3),
* )
*
* @param array $users
* @param string $authentication an authentication source
* @param boolean $mail do the users need to be mailed
* @param \Closure $logger an anonymous function allowing to log actions
*
* @return array
*/
public function importUsers(array $users, $sendMail = true, $logger = null, $additionalRoles = array())
{
$returnValues = array();
//keep these roles before the clear() will mess everything up. It's not what we want.
$tmpRoles = $additionalRoles;
$additionalRoles = [];
//I need to do that to import roles from models. Please don't ask why, I have no fucking idea.
$this->objectManager->clear();
foreach ($tmpRoles as $role) {
if ($role) {
$additionalRoles[] = $this->objectManager->merge($role);
}
}
$roleUser = $this->roleManager->getRoleByName('ROLE_USER');
$max = $roleUser->getMaxUsers();
$total = $this->countUsersByRoleIncludingGroup($roleUser);
if ($total + count($users) > $max) {
throw new AddRoleException();
}
$lg = $this->platformConfigHandler->getParameter('locale_language');
$this->objectManager->startFlushSuite();
$i = 1;
$j = 0;
foreach ($users as $user) {
$firstName = $user[0];
$lastName = $user[1];
$username = $user[2];
$pwd = $user[3];
$email = trim($user[4]);
if (isset($user[5])) {
$code = trim($user[5]) === '' ? null : $user[5];
} else {
$code = null;
}
if (isset($user[6])) {
$phone = trim($user[6]) === '' ? null : $user[6];
} else {
$phone = null;
}
if (isset($user[7])) {
$authentication = trim($user[7]) === '' ? null : $user[7];
} else {
$authentication = null;
}
if (isset($user[8])) {
$modelName = trim($user[8]) === '' ? null : $user[8];
} else {
$modelName = null;
}
if ($modelName) {
$model = $this->objectManager->getRepository('Claroline\\CoreBundle\\Entity\\Model\\WorkspaceModel')->findOneByName($modelName);
} else {
$model = null;
}
$newUser = new User();
$newUser->setFirstName($firstName);
$newUser->setLastName($lastName);
$newUser->setUsername($username);
$newUser->setPlainPassword($pwd);
$newUser->setMail($email);
$newUser->setAdministrativeCode($code);
$newUser->setPhone($phone);
$newUser->setLocale($lg);
$newUser->setAuthentication($authentication);
$this->createUser($newUser, $sendMail, $additionalRoles, $model, $username . uniqid());
$this->objectManager->persist($newUser);
$returnValues[] = $firstName . ' ' . $lastName;
if ($logger) {
$logger(" [UOW size: " . $this->objectManager->getUnitOfWork()->size() . "]");
}
if ($logger) {
$logger(" User {$j} ({$username}) being created");
}
$i++;
$j++;
if ($i % self::MAX_USER_BATCH_SIZE === 0) {
if ($logger) {
$logger(" [UOW size: " . $this->objectManager->getUnitOfWork()->size() . "]");
}
$this->objectManager->forceFlush();
if ($logger) {
$logger(" flushing users...");
//.........这里部分代码省略.........
示例3: importUsers
//.........这里部分代码省略.........
}
$userEntity = $this->userRepo->findOneByMail($email);
if (!$userEntity) {
$userEntity = $this->userRepo->findOneByUsername($username);
if (!$userEntity && $code !== null) {
//the code isn't required afaik
$userEntity = $this->userRepo->findOneByAdministrativeCode($code);
}
}
if ($userEntity && $options['ignore-update']) {
if ($logger) {
$logger(" Skipping {$userEntity->getUsername()}...");
}
continue;
}
$isNew = false;
if (!$userEntity) {
$isNew = true;
$userEntity = new User();
$userEntity->setPlainPassword($pwd);
++$countCreated;
} else {
if (!empty($pwd)) {
$userEntity->setPlainPassword($pwd);
}
++$countUpdated;
}
$userEntity->setUsername($username);
$userEntity->setMail($email);
$userEntity->setFirstName($firstName);
$userEntity->setLastName($lastName);
$userEntity->setAdministrativeCode($code);
$userEntity->setPhone($phone);
$userEntity->setLocale($lg);
$userEntity->setAuthentication($authentication);
$userEntity->setIsMailNotified($isMailNotified);
$userEntity->setIsMailValidated($isMailValidated);
if ($options['single-validate']) {
$errors = $this->validator->validate($userEntity);
if (count($errors) > 0) {
$skipped[$i] = $userEntity;
if ($isNew) {
--$countCreated;
} else {
--$countUpdated;
}
continue;
}
}
if (!$isNew && $logger) {
$logger(" User {$j} ({$username}) being updated...");
$this->roleManager->associateRoles($userEntity, $additionalRoles);
}
if ($isNew) {
if ($logger) {
$logger(" User {$j} ({$username}) being created...");
}
$this->createUser($userEntity, $sendMail, $additionalRoles, $model, $username . uniqid(), $organizations, $hasPersonalWorkspace, false);
}
$this->objectManager->persist($userEntity);
$returnValues[] = $firstName . ' ' . $lastName;
if ($group) {
$this->groupManager->addUsersToGroup($group, [$userEntity]);
}
if ($logger) {
$logger(' [UOW size: ' . $this->objectManager->getUnitOfWork()->size() . ']');
}
++$i;
++$j;
if ($i % self::MAX_USER_BATCH_SIZE === 0) {
if ($logger) {
$logger(' [UOW size: ' . $this->objectManager->getUnitOfWork()->size() . ']');
}
$this->objectManager->forceFlush();
if ($logger) {
$logger(' flushing users...');
}
$tmpRoles = $additionalRoles;
$this->objectManager->clear();
$additionalRoles = [];
foreach ($tmpRoles as $toAdd) {
if ($toAdd) {
$additionalRoles[] = $this->objectManager->merge($toAdd);
}
}
if ($this->tokenStorage->getToken()) {
$this->objectManager->merge($this->tokenStorage->getToken()->getUser());
}
}
}
$this->objectManager->endFlushSuite();
if ($logger) {
$logger($countCreated . ' users created.');
$logger($countUpdated . ' users updated.');
}
foreach ($skipped as $key => $user) {
$logger('The user ' . $user . ' was skipped at line ' . $key . ' because it failed the validation pass.');
}
return $returnValues;
}