Class BlueMindAclClient
java.lang.Object
org.exoplatform.caldav.client.bluemind.BlueMindAclClient
Reads the access control list of a BlueMind calendar through BlueMind's own
REST API — the one place its sharing state can be read (EXO-90253).
BlueMind's DAV server answers a CS:share with 200 whatever it did
and publishes no sharee list over DAV (CS:invite is a stub:
plugins/net.bluemind.dav.server/.../proto/props/calendarserver/Invite.java),
so the only proof that a grant was applied is the container's access list,
GET /api/containers/_manage/{containerUid}/_acl
(parent/core/net.bluemind.core.container.api/.../IContainerManagement.java),
which the container's owner may read
(ContainerPermissionResolver.java: the owner holds every verb).
The session — same server, the owner's stored credentials, log in, read,
always log out — is BlueMindRestSession's, shared with every other
REST conversation this add-on holds with BlueMind.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordOne entry of a BlueMind container's access list.classOne authenticated conversation with BlueMind's REST API, reading access lists. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe header BlueMind's REST API reads a session key from. -
Constructor Summary
ConstructorsConstructorDescriptionBlueMindAclClient(BlueMindRestSession session) The client Spring builds, over the shared session. -
Method Summary
Modifier and TypeMethodDescriptionbooleanacceptsCredentials(CalDavEndpoint endpoint) Whether the owner's configured credentials are a login and password this API can take, without calling the server: what decides whether sharing on BlueMind is offered at all, so that a registration whose provider produces a token never shows an action every click of which would be refused.open(CalDavEndpoint endpoint) Opens a REST session as the owner, for as many reads as one service call needs;BlueMindAclClient.Session.close()logs it out.readAcl(CalDavEndpoint endpoint, String containerUid) A container's access list, read as its owner in one short REST session.
-
Field Details
-
API_KEY_HEADER
The header BlueMind's REST API reads a session key from.- See Also:
-
-
Constructor Details
-
BlueMindAclClient
The client Spring builds, over the shared session.- Parameters:
session- the REST session every BlueMind conversation shares
-
-
Method Details
-
readAcl
A container's access list, read as its owner in one short REST session.- Parameters:
endpoint- the owner's DAV endpoint, minted from the registrycontainerUid- the container uid, the last segment of the calendar collection's path- Returns:
- the entries, in the order BlueMind lists them
- Throws:
UnsupportedOperationException- when the configured credentials are not a login and passwordCalDavAuthenticationException- when BlueMind refuses the loginCalDavForbiddenException- when the account may not read the listCalDavUnreachableException- when the server cannot be reachedCalDavException- when the answer is anything else
-
open
Opens a REST session as the owner, for as many reads as one service call needs;BlueMindAclClient.Session.close()logs it out. The exceptions are those ofreadAcl(CalDavEndpoint, String)for the login half.- Parameters:
endpoint- the owner's DAV endpoint, minted from the registry- Returns:
- the session, to close
-
acceptsCredentials
Whether the owner's configured credentials are a login and password this API can take, without calling the server: what decides whether sharing on BlueMind is offered at all, so that a registration whose provider produces a token never shows an action every click of which would be refused.- Parameters:
endpoint- the owner's endpoint, minted from the registry- Returns:
- true when the provider produces a Basic login and password
-