Search in sources :

Example 6 with User

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;
}
Also used : User(com.google.api.services.directory.model.User) UserName(com.google.api.services.directory.model.UserName)

Example 7 with 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);
}
Also used : DbUser(org.pmiops.workbench.db.model.DbUser) User(com.google.api.services.directory.model.User) Timestamp(java.sql.Timestamp) DbUser(org.pmiops.workbench.db.model.DbUser) DataJpaTest(org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest) Test(org.junit.jupiter.api.Test)

Example 8 with User

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);
}
Also used : DbUser(org.pmiops.workbench.db.model.DbUser) User(com.google.api.services.directory.model.User) DbUser(org.pmiops.workbench.db.model.DbUser)

Example 9 with 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();
}
Also used : DbUser(org.pmiops.workbench.db.model.DbUser) User(com.google.api.services.directory.model.User) BadRequestException(org.pmiops.workbench.exceptions.BadRequestException) Institution(org.pmiops.workbench.model.Institution) WorkbenchException(org.pmiops.workbench.exceptions.WorkbenchException)

Aggregations

User (com.google.api.services.directory.model.User)9 DbUser (org.pmiops.workbench.db.model.DbUser)6 UserName (com.google.api.services.directory.model.UserName)2 AddressException (javax.mail.internet.AddressException)2 BadRequestException (org.pmiops.workbench.exceptions.BadRequestException)2 NotFoundException (org.pmiops.workbench.exceptions.NotFoundException)2 Profile (org.pmiops.workbench.model.Profile)2 GoogleJsonResponseException (com.google.api.client.googleapis.json.GoogleJsonResponseException)1 Utils.getDefaultJsonFactory (com.google.api.client.googleapis.util.Utils.getDefaultJsonFactory)1 HttpTransport (com.google.api.client.http.HttpTransport)1 Directory (com.google.api.services.directory.Directory)1 DirectoryScopes (com.google.api.services.directory.DirectoryScopes)1 UserEmail (com.google.api.services.directory.model.UserEmail)1 Users (com.google.api.services.directory.model.Users)1 HttpCredentialsAdapter (com.google.auth.http.HttpCredentialsAdapter)1 OAuth2Credentials (com.google.auth.oauth2.OAuth2Credentials)1 IamCredentialsClient (com.google.cloud.iam.credentials.v1.IamCredentialsClient)1 Strings (com.google.common.base.Strings)1 ImmutableSet (com.google.common.collect.ImmutableSet)1 Lists (com.google.common.collect.Lists)1