@Override public String getParentId() { if (updated != null) return updated.getParentId(); return cached.getParentId(); }
public static GroupRemovedEvent create(GroupModel group, String realmId) { GroupRemovedEvent event = new GroupRemovedEvent(); event.realmId = realmId; event.groupId = group.getId(); event.parentId = group.getParentId(); return event; }
@Override public String getParentId() { if (isUpdated()) return updated.getParentId(); return cached.getParentId(); }
@Override public List<GroupModel> searchForGroupByName(RealmModel realm, String search, Integer first, Integer max) { TypedQuery<String> query = em.createNamedQuery("getGroupIdsByNameContaining", String.class) .setParameter("realm", realm.getId()) .setParameter("search", search); if(Objects.nonNull(first) && Objects.nonNull(max)) { query= query.setFirstResult(first).setMaxResults(max); } List<String> groups = query.getResultList(); if (Objects.isNull(groups)) return Collections.EMPTY_LIST; List<GroupModel> list = new ArrayList<>(); for (String id : groups) { GroupModel groupById = session.realms().getGroupById(id, realm); while(Objects.nonNull(groupById.getParentId())) { groupById = session.realms().getGroupById(groupById.getParentId(), realm); } if(!list.contains(groupById)) { list.add(groupById); } } list.sort(Comparator.comparing(GroupModel::getName)); return Collections.unmodifiableList(list); }
public static List<String> resolveAttribute(GroupModel group, String name) { List<String> values = group.getAttribute(name); if (values != null && !values.isEmpty()) return values; if (group.getParentId() == null) return null; return resolveAttribute(group.getParent(), name); }
private static void addGroupRoles(GroupModel group, Set<RoleModel> roleMappings) { roleMappings.addAll(group.getRoleMappings()); if (group.getParentId() == null) return; addGroupRoles(group.getParent(), roleMappings); }
public static GroupMovedEvent create(GroupModel group, GroupModel toParent, String realmId) { GroupMovedEvent event = new GroupMovedEvent(); event.realmId = realmId; event.groupId = group.getId(); event.oldParentId = group.getParentId(); event.newParentId = toParent==null ? null : toParent.getId(); return event; }
public CachedGroup(Long revision, RealmModel realm, GroupModel group) { super(revision, group.getId()); this.realm = realm.getId(); this.name = group.getName(); this.parentId = group.getParentId(); this.attributes = new DefaultLazyLoader<>(source -> new MultivaluedHashMap<>(source.getAttributes()), MultivaluedHashMap::new); this.roleMappings = new DefaultLazyLoader<>(source -> source.getRoleMappings().stream().map(RoleModel::getId).collect(Collectors.toSet()), Collections::emptySet); this.subGroups = new DefaultLazyLoader<>(source -> source.getSubGroups().stream().map(GroupModel::getId).collect(Collectors.toSet()), Collections::emptySet); }
public static String resolveFirstAttribute(GroupModel group, String name) { String value = group.getFirstAttribute(name); if (value != null) return value; if (group.getParentId() == null) return null; return resolveFirstAttribute(group.getParent(), name); }
@Override public boolean removeGroup(RealmModel realm, GroupModel group) { invalidateGroup(group.getId(), realm.getId(), true); listInvalidations.add(realm.getId()); cache.groupQueriesInvalidations(realm.getId(), invalidations); if (group.getParentId() != null) { invalidateGroup(group.getParentId(), realm.getId(), false); // Queries already invalidated } invalidationEvents.add(GroupRemovedEvent.create(group, realm.getId())); return getRealmDelegate().removeGroup(realm, group); }
@Override public void addTopLevelGroup(RealmModel realm, GroupModel subGroup) { invalidateGroup(subGroup.getId(), realm.getId(), true); if (subGroup.getParentId() != null) { invalidateGroup(subGroup.getParentId(), realm.getId(), false); // Queries already invalidated } addGroupEventIfAbsent(GroupMovedEvent.create(subGroup, null, realm.getId())); getRealmDelegate().addTopLevelGroup(realm, subGroup); }
@Override public void moveGroup(RealmModel realm, GroupModel group, GroupModel toParent) { if (toParent != null && group.getId().equals(toParent.getId())) { return; } if (group.getParentId() != null) { group.getParent().removeChild(group); } group.setParent(toParent); if (toParent != null) toParent.addChild(group); else session.realms().addTopLevelGroup(realm, group); }
@Override public void moveGroup(RealmModel realm, GroupModel group, GroupModel toParent) { if (toParent != null && group.getId().equals(toParent.getId())) { return; } if (group.getParentId() != null) { group.getParent().removeChild(group); } group.setParent(toParent); if (toParent != null) toParent.addChild(group); else session.realms().addTopLevelGroup(realm, group); }
public CachedGroup(RealmModel realm, GroupModel group) { this.id = group.getId(); this.realm = realm.getId(); this.name = group.getName(); this.parentId = group.getParentId(); this.attributes.putAll(group.getAttributes()); for (RoleModel role : group.getRoleMappings()) { roleMappings.add(role.getId()); } Set<GroupModel> subGroups1 = group.getSubGroups(); if (subGroups1 != null) { for (GroupModel subGroup : subGroups1) { subGroups.add(subGroup.getId()); } } }