Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import static jp.openstandia.connector.util.Utils.toZoneDateTimeForISO8601OffsetDateTime;
import static org.identityconnectors.framework.common.objects.AttributeInfo.Flags.*;
Expand Down Expand Up @@ -96,22 +97,22 @@ public static SchemaDefinition.Builder createSchema(AbstractGitHubConfiguration
},
(add, dest) -> dest.addMembers(add),
(remove, dest) -> dest.removeMembers(remove),
(source) -> source.members.stream().filter(x -> x.ref.contains("/Users/")).map(x -> x.value),
(source) -> source.members != null ? source.members.stream().filter(x -> x.ref.contains("/Users/")).map(x -> x.value) : Stream.empty(),
null
);

// Metadata (readonly)
sb.add("meta.created",
SchemaDefinition.Types.DATETIME,
null,
(source) -> toZoneDateTimeForISO8601OffsetDateTime(source.meta.created),
(source) -> source.meta != null ? toZoneDateTimeForISO8601OffsetDateTime(source.meta.created) : null,
null,
NOT_CREATABLE, NOT_UPDATEABLE
);
sb.add("meta.lastModified",
SchemaDefinition.Types.DATETIME,
null,
(source) -> toZoneDateTimeForISO8601OffsetDateTime(source.meta.lastModified),
(source) -> source.meta != null ? toZoneDateTimeForISO8601OffsetDateTime(source.meta.lastModified) : null,
null,
NOT_CREATABLE, NOT_UPDATEABLE
);
Expand Down Expand Up @@ -166,10 +167,10 @@ public int getByUid(Uid uid, ResultsHandler resultsHandler, OperationOptions opt
public int getByName(Name name, ResultsHandler resultsHandler, OperationOptions options,
Set<String> returnAttributesSet, Set<String> fetchFieldsSet,
boolean allowPartialAttributeValues, int pageSize, int pageOffset) {
SCIMEMUGroup user = client.getEMUGroup(name, options, fetchFieldsSet);
SCIMEMUGroup group = client.getEMUGroup(name, options, fetchFieldsSet);

if (user != null) {
resultsHandler.handle(toConnectorObject(schemaDefinition, user, returnAttributesSet, allowPartialAttributeValues));
if (group != null) {
resultsHandler.handle(toConnectorObject(schemaDefinition, group, returnAttributesSet, allowPartialAttributeValues));
return 1;
}
return 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

import java.util.ArrayList;
import java.util.Set;
import java.util.stream.Stream;

import static jp.openstandia.connector.util.Utils.toZoneDateTimeForISO8601OffsetDateTime;
import static org.identityconnectors.framework.common.objects.AttributeInfo.Flags.*;
Expand Down Expand Up @@ -200,7 +201,7 @@ public static SchemaDefinition.Builder createSchema(AbstractGitHubConfiguration
null,
null,
null,
(source) -> source.groups.stream().filter(x -> x.ref.contains("/Groups/")).map(x -> x.value),
(source) -> source.groups != null ? source.groups.stream().filter(x -> x.ref.contains("/Groups/")).map(x -> x.value) : Stream.empty(),
null,
NOT_CREATABLE, NOT_UPDATEABLE, NOT_RETURNED_BY_DEFAULT
);
Expand All @@ -209,14 +210,14 @@ public static SchemaDefinition.Builder createSchema(AbstractGitHubConfiguration
sb.add("meta.created",
SchemaDefinition.Types.DATETIME,
null,
(source) -> toZoneDateTimeForISO8601OffsetDateTime(source.meta.created),
(source) -> source.meta != null ? toZoneDateTimeForISO8601OffsetDateTime(source.meta.created) : null,
null,
NOT_CREATABLE, NOT_UPDATEABLE
);
sb.add("meta.lastModified",
SchemaDefinition.Types.DATETIME,
null,
(source) -> toZoneDateTimeForISO8601OffsetDateTime(source.meta.lastModified),
(source) -> source.meta != null ? toZoneDateTimeForISO8601OffsetDateTime(source.meta.lastModified) : null,
null,
NOT_CREATABLE, NOT_UPDATEABLE
);
Expand Down
29 changes: 17 additions & 12 deletions src/main/java/org/kohsuke/github/GHEnterpriseExt.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

/**
* GHEnterprise class.
Expand Down Expand Up @@ -65,12 +66,14 @@ public SCIMEMUUser getSCIMEMUUser(String scimUserId) throws IOException {
}

public SCIMEMUUser getSCIMEMUUserByUserName(String scimUserName) throws IOException {
SCIMEMUUser u = root.createRequest()
.withHeader(SCIMConstants.HEADER_ACCEPT, SCIMConstants.SCIM_ACCEPT)
.withHeader(SCIMConstants.HEADER_API_VERSION, SCIMConstants.GITHUB_API_VERSION)
.withUrlPath(String.format("/scim/v2/enterprises/%s/Users?filter=userName eq \"%s\"", login, scimUserName))
.fetch(SCIMEMUUser.class);
return u;
List<SCIMEMUUser> list = searchSCIMUsers()
.eq("userName", scimUserName)
.list()
.toList();
if (list.size() != 1) {
return null;
}
return list.get(0);
}

/**
Expand Down Expand Up @@ -142,12 +145,14 @@ public SCIMEMUGroup getSCIMEMUGroup(String scimGroupId) throws IOException {
}

public SCIMEMUGroup getSCIMEMUGroupByDisplayName(String scimGroupDisplayName) throws IOException {
SCIMEMUGroup g = root.createRequest()
.withHeader(SCIMConstants.HEADER_ACCEPT, SCIMConstants.SCIM_ACCEPT)
.withHeader(SCIMConstants.HEADER_API_VERSION, SCIMConstants.GITHUB_API_VERSION)
.withUrlPath(String.format("/scim/v2/enterprises/%s/Groups?filter=displayName eq \"%s\"", login, scimGroupDisplayName))
.fetch(SCIMEMUGroup.class);
return g;
List<SCIMEMUGroup> list = searchSCIMGroups()
.eq("displayName", scimGroupDisplayName)
.list()
.toList();
if (list.size() != 1) {
return null;
}
return list.get(0);
}

/**
Expand Down