feat: add set userId
This commit is contained in:
@@ -104,7 +104,7 @@ public class KeycloakService {
|
||||
public Uni<?> updateRole(String id, List<String> toAdd, List<String> toRemove) {
|
||||
return vertx.getOrCreateContext().executeBlocking(() -> {
|
||||
RoleScopeResource resource = keycloak.realm(realm).users().get(id).roles().realmLevel();
|
||||
List<RoleRepresentation> roles = keycloak.realm(realm) .roles().list();
|
||||
List<RoleRepresentation> roles = keycloak.realm(realm).roles().list();
|
||||
resource.add(roles.stream().filter(r -> toAdd.contains(r.getName())).toList());
|
||||
resource.remove(roles.stream().filter(r -> toRemove.contains(r.getName())).toList());
|
||||
return "OK";
|
||||
@@ -127,9 +127,18 @@ public class KeycloakService {
|
||||
}
|
||||
|
||||
private Uni<UserRepresentation> creatUser(MembreModel membreModel) {
|
||||
String login = makeLogin(membreModel);
|
||||
LOGGER.infof("Creation of user %s...", login);
|
||||
return vertx.getOrCreateContext().executeBlocking(() -> {
|
||||
String login;
|
||||
int i = 1;
|
||||
do {
|
||||
login = makeLogin(membreModel);
|
||||
if (i > 1) {
|
||||
login += i;
|
||||
}
|
||||
i++;
|
||||
} while (!keycloak.realm(realm).users().searchByUsername(login, true).isEmpty());
|
||||
LOGGER.infof("Creation of user %s...", login);
|
||||
|
||||
UserRepresentation user = new UserRepresentation();
|
||||
user.setUsername(login);
|
||||
user.setFirstName(membreModel.getFname());
|
||||
@@ -145,13 +154,18 @@ public class KeycloakService {
|
||||
throw new KeycloakException("Fail to creat user %s (reason=%s)".formatted(login, response.getStatusInfo().getReasonPhrase()));
|
||||
}
|
||||
|
||||
return getUser(login).orElseThrow(() -> new KeycloakException("Fail to fetch user %s".formatted(login)));
|
||||
String finalLogin = login;
|
||||
return getUser(login).orElseThrow(() -> new KeycloakException("Fail to fetch user %s".formatted(finalLogin)));
|
||||
})
|
||||
.invoke(user -> membreModel.setUserId(user.getId()))
|
||||
.call(user -> membreService.setUserId(membreModel.getId(), user.getId()))
|
||||
.call(user -> setClubGroupMembre(membreModel, membreModel.getClub()));
|
||||
}
|
||||
|
||||
public Uni<?> setId(long id, String nid) {
|
||||
return membreService.setUserId(id, nid).map(__ -> "OK");
|
||||
}
|
||||
|
||||
private Optional<UserRepresentation> getUser(String username) {
|
||||
List<UserRepresentation> users = keycloak.realm(realm).users().searchByUsername(username, true);
|
||||
|
||||
|
||||
@@ -33,6 +33,13 @@ public class CompteEndpoints {
|
||||
return service.initCompte(id);
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("{id}/setUUID/{nid}")
|
||||
@RolesAllowed("federation_admin")
|
||||
public Uni<?> initCompte(@PathParam("id") long id, @PathParam("nid") String nid) {
|
||||
return service.setId(id, nid);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("{id}/roles")
|
||||
@RolesAllowed("federation_admin")
|
||||
|
||||
Reference in New Issue
Block a user