Package org.nuxeo.ecm.directory.multi
Class MultiDirectorySession
java.lang.Object
org.nuxeo.ecm.directory.BaseSession
org.nuxeo.ecm.directory.multi.MultiDirectorySession
- All Implemented Interfaces:
AutoCloseable
,EntrySource
,Session
Directory session aggregating entries from different sources.
Each source can build an entry aggregating fields from one or several directories.
- Author:
- Florent Guillaume, Anahide Tchertchian
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static class
protected class
Nested classes/interfaces inherited from class org.nuxeo.ecm.directory.BaseSession
BaseSession.FieldDetector
-
Field Summary
Fields inherited from class org.nuxeo.ecm.directory.BaseSession
autoincrementId, computeMultiTenantId, directory, directoryName, MULTI_TENANT_ID_FORMAT, passwordHashAlgorithm, permissions, POWER_USERS_GROUP, readAllColumns, READONLY_ENTRY_FLAG, referenceClass, schemaName, substringMatchType, TENANT_ID_FIELD
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
authenticate
(String username, String password) Checks that the credentials provided by the UserManager match those registered in the directory.void
close()
Closes the session and all open result sets obtained from this session.createEntry
(DocumentModel entry) Creates an entry in a directory.createEntryWithoutReferences
(Map<String, Object> fieldMap) To be implemented for specific creation.void
deleteEntry
(String id) Deletes a directory entry by id.void
deleteEntry
(DocumentModel docModel) Deletes a directory entry.protected void
To be implemented for specific deletion.To be implemented with a more specific return type.Retrieves a directory entry using its id.getName()
getProjection
(Map<String, Serializable> filter, Set<String> fulltext, String columnName) boolean
Returns true if session has an entry with given id.query
(Map<String, Serializable> filter, Set<String> fulltext, Map<String, String> orderBy, boolean fetchReferences, int limit, int offset) Executes a query with the possibility to fetch a subset of the results. org.nuxeo.ecm.directory.BaseSession provides a default implementation fetching all results to return the subset.query
(QueryBuilder queryBuilder, boolean fetchReferences) Executes a query with the possibility to fetch a subset of the results.queryIds
(QueryBuilder queryBuilder) Executes a query with the possibility to fetch a subset of the results.protected static void
setProperties
(DocumentModel doc, String schema, Map<String, Object> map) Sets the properties of the givendoc
andschema
to the values provided by the givenmap
, ensuring that anynull
value gets transformed to an empty string for a string property.void
updateEntry
(DocumentModel docModel) Updates a directory entry.updateEntryWithoutReferences
(DocumentModel docModel) To be implemented for specific update.Methods inherited from class org.nuxeo.ecm.directory.BaseSession
addTenantId, applyQueryLimits, applyQueryLimits, canDeleteMultiTenantEntry, checkDeleteConstraints, checkPermission, computeMultiTenantDirectoryId, createEntry, createEntryModel, createEntryModel, createEntryModel, createEntryModel, createEntryModel, getCurrentTenantId, getEntry, getEntryFromSource, getIdField, getPasswordField, getProjection, hasPermission, hasPermission, isAuthenticating, isMultiTenant, isReadOnly, isReadOnlyEntry, query, query, query, query, setReadAllColumns, setReadOnlyEntry, setReadWriteEntry, toStringList
-
Constructor Details
-
MultiDirectorySession
-
-
Method Details
-
getDirectory
Description copied from class:BaseSession
To be implemented with a more specific return type.- Specified by:
getDirectory
in classBaseSession
-
close
public void close()Description copied from interface:Session
Closes the session and all open result sets obtained from this session.Releases this Connection object's resources immediately instead of waiting for them to be automatically released.
TODO: should this operation auto-commit pending changes?
-
getName
-
authenticate
Description copied from interface:Session
Checks that the credentials provided by the UserManager match those registered in the directory. If username is not in the directory, this should return false instead of throrwing an exception.- Returns:
- true is the credentials match those stored in the directory
-
getEntry
Description copied from interface:Session
Retrieves a directory entry using its id.- Specified by:
getEntry
in interfaceSession
- Overrides:
getEntry
in classBaseSession
- Parameters:
id
- the entry idfetchReferences
- boolean stating if references have to be fetched- Returns:
- a DocumentModel representing the entry
-
createEntryWithoutReferences
Description copied from class:BaseSession
To be implemented for specific creation.- Specified by:
createEntryWithoutReferences
in classBaseSession
-
updateEntryWithoutReferences
Description copied from class:BaseSession
To be implemented for specific update.- Specified by:
updateEntryWithoutReferences
in classBaseSession
-
deleteEntryWithoutReferences
Description copied from class:BaseSession
To be implemented for specific deletion.- Specified by:
deleteEntryWithoutReferences
in classBaseSession
-
deleteEntry
Description copied from interface:Session
Deletes a directory entry.- Specified by:
deleteEntry
in interfaceSession
- Overrides:
deleteEntry
in classBaseSession
- Parameters:
docModel
- The entry to delete
-
deleteEntry
Description copied from interface:Session
Deletes a directory entry by id.- Specified by:
deleteEntry
in interfaceSession
- Overrides:
deleteEntry
in classBaseSession
- Parameters:
id
- the id of the entry to delete
-
setProperties
Sets the properties of the givendoc
andschema
to the values provided by the givenmap
, ensuring that anynull
value gets transformed to an empty string for a string property. -
updateEntry
Description copied from interface:Session
Updates a directory entry.- Specified by:
updateEntry
in interfaceSession
- Overrides:
updateEntry
in classBaseSession
- Parameters:
docModel
- The entry to update
-
query
public DocumentModelList query(Map<String, Serializable> filter, Set<String> fulltext, Map<String, String> orderBy, boolean fetchReferences, int limit, int offset) Description copied from interface:Session
Executes a query with the possibility to fetch a subset of the results. org.nuxeo.ecm.directory.BaseSession provides a default implementation fetching all results to return the subset. Not recommended.limit
- maximum number of results ignored if less than 1offset
- number of rows skipped before starting, will be 0 if less than 0.- See Also:
-
query
Description copied from interface:Session
Executes a query with the possibility to fetch a subset of the results.- Parameters:
queryBuilder
- the query to use, including limit, offset, ordering and countTotalfetchReferences
- boolean stating if references have to be fetched- Returns:
- the list of documents, where the total size may be present if countTotal was true
-
queryIds
Description copied from interface:Session
Executes a query with the possibility to fetch a subset of the results. Returns the matching ids.- Parameters:
queryBuilder
- the query to use, including limit, offset and ordering- Returns:
- the list of document ids
-
getProjection
public List<String> getProjection(Map<String, Serializable> filter, Set<String> fulltext, String columnName) - Specified by:
getProjection
in interfaceSession
- Overrides:
getProjection
in classBaseSession
-
createEntry
Description copied from interface:Session
Creates an entry in a directory.- Specified by:
createEntry
in interfaceSession
- Overrides:
createEntry
in classBaseSession
- Parameters:
entry
- the document model representing the entry to create- Returns:
- The new entry created in the directory
-
hasEntry
Description copied from interface:Session
Returns true if session has an entry with given id.
-