Fix the user email issue while creating a user

When the user is created, the provisioning api
was not adding the email address of the user
when provided if the `send email to new user`
is not set.

Signed-off-by: Sujith Haridasan <sujith.h@gmail.com>
This commit is contained in:
Sujith Haridasan 2020-10-05 16:09:00 +05:30 committed by backportbot[bot]
parent 4f5a24bb50
commit c998209ec1
2 changed files with 19 additions and 13 deletions

View File

@ -337,8 +337,9 @@ class UsersController extends AUserData {
}
// Send new user mail only if a mail is set
if ($email !== '' && $this->config->getAppValue('core', 'newUser.sendEmail', 'yes') === 'yes') {
if ($email !== '') {
$newUser->setEMailAddress($email);
if ($this->config->getAppValue('core', 'newUser.sendEmail', 'yes') === 'yes') {
try {
$emailTemplate = $this->newUserMailHelper->generateTemplate($newUser, $generatePasswordResetToken);
$this->newUserMailHelper->sendMail($newUser, $emailTemplate);
@ -352,6 +353,7 @@ class UsersController extends AUserData {
]);
}
}
}
return new DataResponse(['id' => $userid]);
} catch (HintException $e) {

View File

@ -500,9 +500,13 @@ class UsersControllerTest extends TestCase {
->method('userExists')
->with('NewUser')
->willReturn(false);
$newUser = $this->createMock(IUser::class);
$newUser->expects($this->once())
->method('setEMailAddress');
$this->userManager
->expects($this->once())
->method('createUser');
->method('createUser')
->willReturn($newUser);
$this->logger
->expects($this->once())
->method('info')