@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || !(o instanceof GroupModel)) return false; GroupModel that = (GroupModel) o; if (!cached.getId().equals(that.getId())) return false; return true; }
protected TypedQuery<UserGroupMembershipEntity> getUserGroupMappingQuery(GroupModel group) { TypedQuery<UserGroupMembershipEntity> query = em.createNamedQuery("userMemberOf", UserGroupMembershipEntity.class); query.setParameter("user", getEntity()); query.setParameter("groupId", group.getId()); return query; }
@Override public String getId() { if (updated != null) return updated.getId(); return cached.getId(); }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || !(o instanceof GroupModel)) return false; GroupModel that = (GroupModel) o; return that.getId().equals(getId()); }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || !(o instanceof GroupModel)) return false; GroupModel that = (GroupModel) o; return that.getId().equals(getId()); }
public static GroupEntity toEntity(GroupModel model, EntityManager em) { if (model instanceof GroupAdapter) { return ((GroupAdapter)model).getEntity(); } return em.getReference(GroupEntity.class, model.getId()); }
@Override public String getId() { if (isUpdated()) return updated.getId(); return cached.getId(); }
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 void addDefaultGroup(GroupModel group) { Collection<GroupEntity> entities = realm.getDefaultGroups(); for (GroupEntity entity : entities) { if (entity.getId().equals(group.getId())) return; } GroupEntity groupEntity = GroupAdapter.toEntity(group, em); realm.getDefaultGroups().add(groupEntity); em.flush(); }
@Override public void removeChild(GroupModel subGroup) { if (subGroup.getId().equals(getId())) { return; } subGroup.setParent(null); updateGroup(); } }
@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); }
protected void joinGroupImpl(GroupModel group) { UserGroupMembershipEntity entity = new UserGroupMembershipEntity(); entity.setUser(getEntity()); entity.setGroupId(group.getId()); em.persist(entity); em.flush(); em.detach(entity); }
@Override public boolean isMemberOf(GroupModel group) { if (updated != null) return updated.isMemberOf(group); if (cached.getGroups(modelSupplier).contains(group.getId())) return true; Set<GroupModel> roles = getGroups(); return RoleUtils.isMember(roles, group); }
@Override public void leaveGroup(GroupModel group) { if (user == null || group == null) return; getMongoStore().pullItemFromList(getUser(), "groupIds", group.getId(), invocationContext); }
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); }
@Override public boolean isMemberOf(GroupModel group) { if (user.getGroupIds() == null) return false; if (user.getGroupIds().contains(group.getId())) return true; Set<GroupModel> groups = getGroups(); return RoleUtils.isMember(groups, group); }
@Override public void moveGroup(RealmModel realm, GroupModel group, GroupModel toParent) { invalidateGroup(group.getId(), realm.getId(), true); if (toParent != null) invalidateGroup(group.getId(), realm.getId(), false); // Queries already invalidated listInvalidations.add(realm.getId()); invalidationEvents.add(GroupMovedEvent.create(group, toParent, realm.getId())); getRealmDelegate().moveGroup(realm, group, toParent); }
@Override public boolean removeGroup(RealmModel realm, GroupModel group) { session.users().preRemove(realm, group); realm.removeDefaultGroup(group); for (GroupModel subGroup : group.getSubGroups()) { removeGroup(realm, subGroup); } moveGroup(realm, group, null); return getMongoStore().removeEntity(MongoGroupEntity.class, group.getId(), invocationContext); }
@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); }