create or add a top level realm groupSet or create child. This will update the group and set the parent if it exists. Create it and set the parent if the group doesn't exist.
143 List<GroupRepresentation> search = ModelToRepresentation.searchForGroupByName(
realm, rep.getName(), 0, 1);
144 if (search != null && !search.isEmpty() && Objects.equals(search.get(0).getName(), rep.getName())) {
145 return ErrorResponse.exists(
"Top level group named '" + rep.getName() +
"' already exists.");
149 Response.ResponseBuilder builder = Response.status(204);
150 if (rep.getId() != null) {
151 child =
realm.getGroupById(rep.getId());
153 throw new NotFoundException(
"Could not find child by id");
157 child =
realm.createGroup(rep.getName());
158 GroupResource.updateGroup(rep, child);
159 URI uri =
session.getContext().getUri().getAbsolutePathBuilder()
160 .path(child.getId()).build();
161 builder.status(201).location(uri);
163 rep.setId(child.getId());
166 realm.moveGroup(child, null);
169 return builder.build();
final RealmModel realm
Definition: GroupsResource.java:54
GroupPermissionEvaluator groups()
final AdminEventBuilder adminEvent
Definition: GroupsResource.java:57
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
void requireManage(GroupModel group)
final AdminPermissionEvaluator auth
Definition: GroupsResource.java:56
final KeycloakSession session
Definition: GroupsResource.java:55
AdminEventBuilder representation(Object value)
Definition: AdminEventBuilder.java:210