use of com.google.api.services.directory.model.User in project workbench by all-of-us.
the class DirectoryServiceImpl method createUser.
@Override
public User createUser(String givenName, String familyName, String username, String contactEmail) {
String password = randomString();
User user = new User().setPrimaryEmail(username).setPassword(password).setName(new UserName().setGivenName(givenName).setFamilyName(familyName)).setChangePasswordAtNextLogin(true).setOrgUnitPath(GSUITE_WORKBENCH_ORG_UNIT_PATH);
addCustomSchemaAndEmails(user, username, contactEmail);
retryHandler.run((context) -> getGoogleDirectoryService().users().insert(user).execute());
return user;
}
use of com.google.api.services.directory.model.User in project workbench by all-of-us.
the class UserServiceTest method testSyncTwoFactorAuthStatus.
@Test
public void testSyncTwoFactorAuthStatus() {
User googleUser = new User();
googleUser.setPrimaryEmail(USERNAME);
googleUser.setIsEnrolledIn2Sv(true);
when(mockDirectoryService.getUserOrThrow(USERNAME)).thenReturn(googleUser);
userService.syncTwoFactorAuthStatus();
// twoFactorAuthCompletionTime should now be set
DbUser user = userDao.findUserByUsername(USERNAME);
Timestamp twoFactorAuthCompletionTime = getModuleCompletionTime(DbAccessModuleName.TWO_FACTOR_AUTH, user);
assertThat(twoFactorAuthCompletionTime).isNotNull();
// twoFactorAuthCompletionTime should not change when already set
tick();
userService.syncTwoFactorAuthStatus();
assertModuleCompletionEqual(DbAccessModuleName.TWO_FACTOR_AUTH, providedDbUser, twoFactorAuthCompletionTime);
// unset 2FA in google and check that twoFactorAuthCompletionTime is set to null
googleUser.setIsEnrolledIn2Sv(false);
userService.syncTwoFactorAuthStatus();
user = userDao.findUserByUsername(USERNAME);
assertModuleCompletionEqual(DbAccessModuleName.TWO_FACTOR_AUTH, providedDbUser, null);
}
use of com.google.api.services.directory.model.User in project workbench by all-of-us.
the class ProfileController method resendWelcomeEmail.
@Override
public ResponseEntity<Void> resendWelcomeEmail(ResendWelcomeEmailRequest resendRequest) {
String username = resendRequest.getUsername().toLowerCase();
User googleUser = directoryService.getUserOrThrow(username);
DbUser user = userService.getByUsernameOrThrow(username);
checkUserCreationNonce(user, resendRequest.getCreationNonce());
if (userHasEverLoggedIn(googleUser, user)) {
return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
}
return resetPasswordAndSendWelcomeEmail(username, user);
}
use of com.google.api.services.directory.model.User in project workbench by all-of-us.
the class ProfileController method resetPasswordAndSendWelcomeEmail.
private ResponseEntity<Void> resetPasswordAndSendWelcomeEmail(String username, DbUser user) {
User googleUser = directoryService.resetUserPassword(username);
try {
Institution userInstitution = institutionService.getByUser(user).orElseThrow(() -> new BadRequestException("User Institution cannot be found"));
sendWelcomeEmail(user, googleUser, userInstitution);
} catch (BadRequestException ex) {
log.log(Level.SEVERE, "Exception while resending sending welcome email: " + ex.getLocalizedMessage());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
} catch (WorkbenchException e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
}
Aggregations