diff options
author | Torbjørn Smørgrav <smorgrav@users.noreply.github.com> | 2019-09-09 14:00:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-09 14:00:02 +0200 |
commit | 4cf7978820c798fd39e407293f8de83855820fa6 (patch) | |
tree | 109d527be795b4202c3a65777632c3b0b7e06c7d /controller-api | |
parent | b69ba0ca936779c658a666ee414dd39204d3dd7b (diff) | |
parent | a63d09aa46cd441d59d34aa34f3833c483bbde26 (diff) |
Merge pull request #10561 from vespa-engine/smorgrav/list_users_not_ids
List user info not just ids from user api
Diffstat (limited to 'controller-api')
3 files changed, 62 insertions, 4 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockUserManagement.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockUserManagement.java index b6524deb4d1..5ebea6c8d87 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockUserManagement.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockUserManagement.java @@ -1,5 +1,6 @@ package com.yahoo.vespa.hosted.controller.api.integration.stubs; +import com.yahoo.vespa.hosted.controller.api.integration.user.User; import com.yahoo.vespa.hosted.controller.api.integration.user.UserId; import com.yahoo.vespa.hosted.controller.api.integration.user.UserManagement; import com.yahoo.vespa.hosted.controller.api.role.Role; @@ -10,13 +11,14 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; /** * @author jonmv */ public class MockUserManagement implements UserManagement { - private final Map<Role, Set<UserId>> memberships = new HashMap<>(); + private final Map<Role, Set<User>> memberships = new HashMap<>(); @Override public void createRole(Role role) { @@ -33,7 +35,10 @@ public class MockUserManagement implements UserManagement { @Override public void addUsers(Role role, Collection<UserId> users) { - memberships.get(role).addAll(users); + List<User> userObjs = users.stream() + .map(id -> new User(id.value(), id.value(), null, null)) + .collect(Collectors.toList()); + memberships.get(role).addAll(userObjs); } @Override @@ -42,7 +47,7 @@ public class MockUserManagement implements UserManagement { } @Override - public List<UserId> listUsers(Role role) { + public List<User> listUsers(Role role) { return List.copyOf(memberships.get(role)); } diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/user/User.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/user/User.java new file mode 100644 index 00000000000..35dcd54799b --- /dev/null +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/user/User.java @@ -0,0 +1,53 @@ +package com.yahoo.vespa.hosted.controller.api.integration.user; + +import java.util.Objects; + +public class User { + + private final String name; + private final String email; + private final String nickname; + private final String picture; + + public User(String email, String name, String nickname, String picture) { + Objects.requireNonNull(email); + Objects.requireNonNull(name); + + this.name = name; + this.email = email; + this.nickname = nickname; + this.picture = picture; + } + + public String name() { + return name; + } + + public String email() { + return email; + } + + public String nickname() { + return nickname; + } + + public String picture() { + return picture; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + User user = (User) o; + return Objects.equals(name, user.name) && + Objects.equals(email, user.email) && + Objects.equals(nickname, user.nickname) && + Objects.equals(picture, user.picture); + } + + @Override + public int hashCode() { + return Objects.hash(name, email, nickname, picture); + } +} diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/user/UserManagement.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/user/UserManagement.java index ff25e779d30..f56a9f66288 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/user/UserManagement.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/user/UserManagement.java @@ -25,6 +25,6 @@ public interface UserManagement { void removeUsers(Role role, Collection<UserId> users); /** Returns all users in the given role, or throws if the role does not exist. */ - List<UserId> listUsers(Role role); + List<User> listUsers(Role role); } |