58 lines
1.9 KiB
Java
58 lines
1.9 KiB
Java
package eu.eudat.service.keycloak;
|
|
|
|
import org.keycloak.admin.client.resource.RealmResource;
|
|
import org.keycloak.representations.idm.GroupRepresentation;
|
|
import org.keycloak.representations.idm.UserRepresentation;
|
|
|
|
import java.util.List;
|
|
|
|
public class MyUsersModule {
|
|
private final RealmResource realm;
|
|
|
|
MyUsersModule(RealmResource realm) {
|
|
this.realm = realm;
|
|
}
|
|
|
|
public List<UserRepresentation> getUsers() {
|
|
return this.realm.users().list();
|
|
}
|
|
|
|
public UserRepresentation findUserById(String id) {
|
|
return this.realm.users().get(id).toRepresentation();
|
|
}
|
|
|
|
public List<UserRepresentation> findUsersByUsername(String username) {
|
|
return this.realm.users().search(username);
|
|
}
|
|
|
|
public UserRepresentation findUserByUsername(String username) {
|
|
return this.realm.users().search(username, true).stream().findFirst().orElse(null);
|
|
}
|
|
|
|
public UserRepresentation addUser(UserRepresentation user) {
|
|
return this.realm.users().create(user).readEntity(UserRepresentation.class);
|
|
}
|
|
|
|
public void addUserToGroup(String userId, String groupId) {
|
|
this.realm.users().get(userId).joinGroup(groupId);
|
|
}
|
|
|
|
public void removeUserFromGroup(String userId, String groupId) {
|
|
this.realm.users().get(userId).leaveGroup(groupId);
|
|
}
|
|
|
|
public List<GroupRepresentation> getGroups(String userId) {
|
|
return this.realm.users().get(userId).groups();
|
|
}
|
|
|
|
public void updateUser(String userId, UserRepresentation user) {
|
|
UserRepresentation existing = this.realm.users().get(userId).toRepresentation();
|
|
existing.setFirstName(user.getFirstName());
|
|
existing.setLastName(user.getLastName());
|
|
existing.setEnabled(user.isEnabled());
|
|
existing.setAttributes(user.getAttributes());
|
|
existing.setClientRoles(user.getClientRoles());
|
|
this.realm.users().get(userId).update(existing);
|
|
}
|
|
}
|