/** {@inheritDoc} */ @Override public MemberList getMembers() throws DirectoryException { Group targetGroup = DirectoryServer.getGroupManager().getGroupInstance(targetGroupDN); if (targetGroup == null) { LocalizableMessage message = ERR_VIRTUAL_STATIC_GROUP_NO_TARGET_GROUP.get(targetGroupDN, groupEntryDN); throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), message); } else if (targetGroup instanceof VirtualStaticGroup) { LocalizableMessage message = ERR_VIRTUAL_STATIC_GROUP_TARGET_CANNOT_BE_VIRTUAL.get(groupEntryDN, targetGroupDN); throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, message); } else { return targetGroup.getMembers(); } }
/** {@inheritDoc} */ @Override public boolean isMember(Entry userEntry, Set<DN> examinedGroups) throws DirectoryException { if (!examinedGroups.add(getGroupDN())) { return false; } Group targetGroup = DirectoryServer.getGroupManager().getGroupInstance(targetGroupDN); if (targetGroup == null) { LocalizableMessage message = ERR_VIRTUAL_STATIC_GROUP_NO_TARGET_GROUP.get(targetGroupDN, groupEntryDN); throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), message); } else if (targetGroup instanceof VirtualStaticGroup) { LocalizableMessage message = ERR_VIRTUAL_STATIC_GROUP_TARGET_CANNOT_BE_VIRTUAL.get(groupEntryDN, targetGroupDN); throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, message); } else { return targetGroup.isMember(userEntry); } }