Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
public interface UserDAO extends GenericDAO<User> {

/**
* Finds user by given keycloak id.
* Finds user by given username.
*
* @param keycloakId Keycloak id of the user
* @param username username of the user
* @return Optional of user or empty when not found.
*/
Optional<User> findUser(String keycloakId);
Optional<User> findUser(String username);
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,4 @@ public class User extends GenericEntity {
@Getter
@NonNull
private String username;

@Setter
@Getter
@NonNull
@Column(unique = true)
private String keycloakId;

}
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ public UserDAOImpl() {
}

@Override
public Optional<User> findUser(String keycloakId) {
public Optional<User> findUser(String username) {
try {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<User> cq = cb.createQuery(type);
Root<User> user = cq.from(type);
cq.select(user).where(cb.equal(user.get("keycloakId"), keycloakId));
cq.select(user).where(cb.equal(user.get("username"), username));
TypedQuery<User> q = em.createQuery(cq);
return Optional.of(q.getSingleResult());
} catch (NoResultException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,12 @@ public abstract class ArtifactServiceImpl<T extends Artifact> implements Artifac

protected User currentUser() {
String username = auth.username().orElseThrow(() -> new IllegalStateException("No logged in user."));
String userId = auth.userId().orElseThrow(() -> new IllegalStateException("No logged in user."));

User user = users.findUser(userId).orElseGet(() -> {
User u = new User(username, userId);
return users.findUser(username).orElseGet(() -> {
User u = new User(username);
users.create(u);
return u;
});
if (!user.getUsername().equals(username)) {
user.setUsername(username);
users.update(user);
}
return user;
}

@Override
Expand Down