Search in sources :

Example 6 with User

use of io.gravitee.repository.management.model.User in project gravitee-management-rest-api by gravitee-io.

the class UserServiceImpl method connect.

@Override
public UserEntity connect(String userId) {
    try {
        LOGGER.debug("Connection of {}", userId);
        Optional<User> checkUser = userRepository.findById(userId);
        if (!checkUser.isPresent()) {
            throw new UserNotFoundException(userId);
        }
        User user = checkUser.get();
        User previousUser = new User(user);
        // First connection: create default application for user
        if (defaultApplicationForFirstConnection && user.getLastConnectionAt() == null) {
            LOGGER.debug("Create a default application for {}", userId);
            NewApplicationEntity defaultApp = new NewApplicationEntity();
            defaultApp.setName("Default application");
            defaultApp.setDescription("My default application");
            applicationService.create(defaultApp, userId);
        }
        // Set date fields
        user.setLastConnectionAt(new Date());
        user.setUpdatedAt(user.getLastConnectionAt());
        User updatedUser = userRepository.update(user);
        auditService.createPortalAuditLog(Collections.singletonMap(USER, userId), User.AuditEvent.USER_CONNECTED, user.getUpdatedAt(), previousUser, user);
        return convert(updatedUser, true);
    } catch (TechnicalException ex) {
        LOGGER.error("An error occurs while trying to connect {}", userId, ex);
        throw new TechnicalManagementException("An error occurs while trying to connect " + userId, ex);
    }
}
Also used : UserNotFoundException(io.gravitee.management.service.exceptions.UserNotFoundException) User(io.gravitee.repository.management.model.User) TechnicalException(io.gravitee.repository.exceptions.TechnicalException) TechnicalManagementException(io.gravitee.management.service.exceptions.TechnicalManagementException)

Example 7 with User

use of io.gravitee.repository.management.model.User in project gravitee-management-rest-api by gravitee-io.

the class UserServiceImpl method convert.

private static User convert(NewExternalUserEntity newExternalUserEntity) {
    if (newExternalUserEntity == null) {
        return null;
    }
    User user = new User();
    user.setUsername(newExternalUserEntity.getUsername());
    user.setEmail(newExternalUserEntity.getEmail());
    user.setFirstname(newExternalUserEntity.getFirstname());
    user.setLastname(newExternalUserEntity.getLastname());
    user.setSource(newExternalUserEntity.getSource());
    user.setSourceId(newExternalUserEntity.getSourceId());
    return user;
}
Also used : User(io.gravitee.repository.management.model.User)

Example 8 with User

use of io.gravitee.repository.management.model.User in project gravitee-management-rest-api by gravitee-io.

the class UserServiceImpl method findByIds.

@Override
public Set<UserEntity> findByIds(List<String> ids) {
    try {
        LOGGER.debug("Find users by ID: {}", ids);
        Set<User> users = userRepository.findByIds(ids);
        if (!users.isEmpty()) {
            return users.stream().map(u -> this.convert(u, false)).collect(Collectors.toSet());
        }
        Optional<String> idsAsString = ids.stream().reduce((a, b) -> a + '/' + b);
        if (idsAsString.isPresent()) {
            throw new UserNotFoundException(idsAsString.get());
        } else {
            throw new UserNotFoundException("?");
        }
    } catch (TechnicalException ex) {
        Optional<String> idsAsString = ids.stream().reduce((a, b) -> a + '/' + b);
        LOGGER.error("An error occurs while trying to find users using their ID {}", idsAsString, ex);
        throw new TechnicalManagementException("An error occurs while trying to find users using their ID " + idsAsString, ex);
    }
}
Also used : RoleScope(io.gravitee.repository.management.model.RoleScope) java.util(java.util) BCryptPasswordEncoder(org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder) NotificationParamsBuilder(io.gravitee.management.service.notification.NotificationParamsBuilder) TechnicalException(io.gravitee.repository.exceptions.TechnicalException) MembershipDefaultReferenceId(io.gravitee.repository.management.model.MembershipDefaultReferenceId) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) EmailNotificationBuilder(io.gravitee.management.service.builder.EmailNotificationBuilder) StringUtils(org.apache.commons.lang3.StringUtils) Value(org.springframework.beans.factory.annotation.Value) DEFAULT_JWT_EMAIL_REGISTRATION_EXPIRE_AFTER(io.gravitee.management.service.common.JWTHelper.DefaultValues.DEFAULT_JWT_EMAIL_REGISTRATION_EXPIRE_AFTER) JWTVerifier(com.auth0.jwt.JWTVerifier) UUID(io.gravitee.common.utils.UUID) ConfigurableEnvironment(org.springframework.core.env.ConfigurableEnvironment) io.gravitee.management.model(io.gravitee.management.model) UserRepository(io.gravitee.repository.management.api.UserRepository) JWTSigner(com.auth0.jwt.JWTSigner) DEFAULT_JWT_ISSUER(io.gravitee.management.service.common.JWTHelper.DefaultValues.DEFAULT_JWT_ISSUER) UserNotFoundException(io.gravitee.management.service.exceptions.UserNotFoundException) Claims(io.gravitee.management.service.common.JWTHelper.Claims) MembershipReferenceType(io.gravitee.repository.management.model.MembershipReferenceType) UsernameAlreadyExistsException(io.gravitee.management.service.exceptions.UsernameAlreadyExistsException) Logger(org.slf4j.Logger) DefaultRoleNotFoundException(io.gravitee.management.service.exceptions.DefaultRoleNotFoundException) TechnicalManagementException(io.gravitee.management.service.exceptions.TechnicalManagementException) IOException(java.io.IOException) FileInputStream(java.io.FileInputStream) PortalHook(io.gravitee.management.service.notification.PortalHook) Collectors(java.util.stream.Collectors) IOUtils(org.apache.commons.io.IOUtils) Component(org.springframework.stereotype.Component) PasswordEncoder(org.springframework.security.crypto.password.PasswordEncoder) USER(io.gravitee.repository.management.model.Audit.AuditProperties.USER) io.gravitee.management.service(io.gravitee.management.service) User(io.gravitee.repository.management.model.User) io.gravitee.common.utils(io.gravitee.common.utils) DatatypeConverter(javax.xml.bind.DatatypeConverter) UserNotFoundException(io.gravitee.management.service.exceptions.UserNotFoundException) User(io.gravitee.repository.management.model.User) TechnicalException(io.gravitee.repository.exceptions.TechnicalException) TechnicalManagementException(io.gravitee.management.service.exceptions.TechnicalManagementException)

Example 9 with User

use of io.gravitee.repository.management.model.User in project gravitee-management-rest-api by gravitee-io.

the class UserServiceImpl method findById.

@Override
public UserEntity findById(String id) {
    try {
        LOGGER.debug("Find user by ID: {}", id);
        Optional<User> optionalUser = userRepository.findById(id);
        if (optionalUser.isPresent()) {
            return convert(optionalUser.get(), false);
        }
        // should never happen
        throw new UserNotFoundException(id);
    } catch (TechnicalException ex) {
        LOGGER.error("An error occurs while trying to find user using its ID {}", id, ex);
        throw new TechnicalManagementException("An error occurs while trying to find user using its ID " + id, ex);
    }
}
Also used : UserNotFoundException(io.gravitee.management.service.exceptions.UserNotFoundException) User(io.gravitee.repository.management.model.User) TechnicalException(io.gravitee.repository.exceptions.TechnicalException) TechnicalManagementException(io.gravitee.management.service.exceptions.TechnicalManagementException)

Example 10 with User

use of io.gravitee.repository.management.model.User in project gravitee-management-rest-api by gravitee-io.

the class UserServiceImpl method findByIdWithRoles.

@Override
public UserEntity findByIdWithRoles(String id) {
    try {
        LOGGER.debug("Find user by ID: {}", id);
        Optional<User> optionalUser = userRepository.findById(id);
        if (optionalUser.isPresent()) {
            return convert(optionalUser.get(), true);
        }
        // should never happen
        throw new UserNotFoundException(id);
    } catch (TechnicalException ex) {
        LOGGER.error("An error occurs while trying to find user using its ID {}", id, ex);
        throw new TechnicalManagementException("An error occurs while trying to find user using its ID " + id, ex);
    }
}
Also used : UserNotFoundException(io.gravitee.management.service.exceptions.UserNotFoundException) User(io.gravitee.repository.management.model.User) TechnicalException(io.gravitee.repository.exceptions.TechnicalException) TechnicalManagementException(io.gravitee.management.service.exceptions.TechnicalManagementException)

Aggregations

User (io.gravitee.repository.management.model.User)12 TechnicalManagementException (io.gravitee.management.service.exceptions.TechnicalManagementException)9 TechnicalException (io.gravitee.repository.exceptions.TechnicalException)9 UserNotFoundException (io.gravitee.management.service.exceptions.UserNotFoundException)8 UsernameAlreadyExistsException (io.gravitee.management.service.exceptions.UsernameAlreadyExistsException)4 JWTVerifier (com.auth0.jwt.JWTVerifier)3 DefaultRoleNotFoundException (io.gravitee.management.service.exceptions.DefaultRoleNotFoundException)3 IOException (java.io.IOException)3 JWTSigner (com.auth0.jwt.JWTSigner)2 io.gravitee.common.utils (io.gravitee.common.utils)2 UUID (io.gravitee.common.utils.UUID)2 io.gravitee.management.model (io.gravitee.management.model)2 io.gravitee.management.service (io.gravitee.management.service)2 EmailNotificationBuilder (io.gravitee.management.service.builder.EmailNotificationBuilder)2 Claims (io.gravitee.management.service.common.JWTHelper.Claims)2 DEFAULT_JWT_EMAIL_REGISTRATION_EXPIRE_AFTER (io.gravitee.management.service.common.JWTHelper.DefaultValues.DEFAULT_JWT_EMAIL_REGISTRATION_EXPIRE_AFTER)2 DEFAULT_JWT_ISSUER (io.gravitee.management.service.common.JWTHelper.DefaultValues.DEFAULT_JWT_ISSUER)2 NotificationParamsBuilder (io.gravitee.management.service.notification.NotificationParamsBuilder)2 PortalHook (io.gravitee.management.service.notification.PortalHook)2 UserRepository (io.gravitee.repository.management.api.UserRepository)2