Making a group system plugin
Colby Ranger (Google)
Previous Design
Motivation
API - GroupBackend
@ExtensionPoint
public interface GroupBackend {
boolean handles(AccountGroup.UUID uuid);
@Nullable
GroupDescription.Basic get(AccountGroup.UUID g);
Collection<GroupReference> suggest(String name);
GroupMembership membershipsOf(IdentifiedUser u);
}
API - GroupMembership
public interface GroupMembership {
boolean contains(AccountGroup.UUID groupId);
boolean containsAnyOf(
Iterable<AccountGroup.UUID> groupIds);
Set<AccountGroup.UUID> getKnownGroups();
}
Code!
A simple group plugin to interact with the group system for a premier Google Apps domain, using the Provisioning API
Plugin Pain Points
Reference