Package org.nuxeo.ecm.directory.core
Class CoreDirectorySession
- java.lang.Object
-
- org.nuxeo.ecm.directory.BaseSession
-
- org.nuxeo.ecm.directory.core.CoreDirectorySession
-
- All Implemented Interfaces:
AutoCloseable
,EntrySource
,Session
public class CoreDirectorySession extends BaseSession
Session class for directory on repository- Since:
- 8.2
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.nuxeo.ecm.directory.BaseSession
BaseSession.FieldDetector
-
-
Field Summary
Fields Modifier and Type Field Description protected CoreSession
coreSession
protected String
createPath
protected String
docType
protected String
schemaIdField
protected String
schemaPasswordField
protected static String
UUID_FIELD
-
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
Constructors Constructor Description CoreDirectorySession(CoreDirectory directory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
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.DocumentModel
createEntry(Map<String,Object> fieldMap)
Creates an entry in a directory.DocumentModel
createEntryWithoutReferences(Map<String,Object> fieldMap)
To be implemented for specific creation.void
deleteEntry(String id)
Deletes a directory entry by id.void
deleteEntry(String id, Map<String,String> map)
Deletes a directory entry by id and secondary ids.void
deleteEntry(DocumentModel docModel)
Deletes a directory entry.protected void
deleteEntryWithoutReferences(String id)
To be implemented for specific deletion.CoreDirectory
getDirectory()
To be implemented with a more specific return type.DocumentModelList
getEntries()
Retrieves all the entries in the directory.DocumentModel
getEntry(String id, boolean fetchReferences)
Retrieves a directory entry using its id.protected String
getMappedPrefixedFieldName(String fieldName)
List<String>
getProjection(Map<String,Serializable> filter, String columnName)
Executes a query using filter and return only the column columnName.List<String>
getProjection(Map<String,Serializable> filter, Set<String> fulltext, String columnName)
boolean
hasEntry(String id)
Returns true if session has an entry with given id.boolean
isAuthenticating()
Tells whether the directory implementation can be used as an authenticating backend for the UserManager (based on login / password check).DocumentModelList
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.DocumentModelList
query(QueryBuilder queryBuilder, boolean fetchReferences)
Executes a query with the possibility to fetch a subset of the results.List<String>
queryIds(QueryBuilder queryBuilder)
Executes a query with the possibility to fetch a subset of the results.void
updateEntry(DocumentModel docModel)
Updates a directory entry.protected List<String>
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, hasPermission, hasPermission, isMultiTenant, isReadOnly, isReadOnlyEntry, query, query, query, query, setReadAllColumns, setReadOnlyEntry, setReadWriteEntry, toStringList
-
-
-
-
Field Detail
-
schemaIdField
protected final String schemaIdField
-
schemaPasswordField
protected final String schemaPasswordField
-
coreSession
protected final CoreSession coreSession
-
createPath
protected final String createPath
-
UUID_FIELD
protected static final String UUID_FIELD
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CoreDirectorySession
public CoreDirectorySession(CoreDirectory directory)
-
-
Method Detail
-
getDirectory
public CoreDirectory getDirectory()
Description copied from class:BaseSession
To be implemented with a more specific return type.- Specified by:
getDirectory
in classBaseSession
-
getEntry
public DocumentModel getEntry(String id, boolean fetchReferences)
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
-
getEntries
public DocumentModelList getEntries()
Description copied from interface:Session
Retrieves all the entries in the directory. If the remote server issues a size limit exceeded error while sending partial results up to that limit, the methodDocumentModelList#totalsize
on the returned list will return -2 as a special marker for truncated results.- Specified by:
getEntries
in interfaceSession
- Overrides:
getEntries
in classBaseSession
- Returns:
- a collection with all the entries in the directory
-
createEntryWithoutReferences
public DocumentModel createEntryWithoutReferences(Map<String,Object> fieldMap)
Description copied from class:BaseSession
To be implemented for specific creation.- Specified by:
createEntryWithoutReferences
in classBaseSession
-
updateEntryWithoutReferences
protected List<String> updateEntryWithoutReferences(DocumentModel docModel)
Description copied from class:BaseSession
To be implemented for specific update.- Specified by:
updateEntryWithoutReferences
in classBaseSession
-
deleteEntryWithoutReferences
protected void deleteEntryWithoutReferences(String id)
Description copied from class:BaseSession
To be implemented for specific deletion.- Specified by:
deleteEntryWithoutReferences
in classBaseSession
-
createEntry
public DocumentModel createEntry(Map<String,Object> fieldMap)
Description copied from interface:Session
Creates an entry in a directory.- Specified by:
createEntry
in interfaceSession
- Overrides:
createEntry
in classBaseSession
- Parameters:
fieldMap
- A map with keys and values that should be stored in a directoryNote: The values in the map should be of type String
- Returns:
- The new entry created in the directory
-
updateEntry
public void updateEntry(DocumentModel docModel)
Description copied from interface:Session
Updates a directory entry.- Specified by:
updateEntry
in interfaceSession
- Overrides:
updateEntry
in classBaseSession
- Parameters:
docModel
- The entry to update
-
deleteEntry
public void deleteEntry(DocumentModel docModel)
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
public void deleteEntry(String id)
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
-
deleteEntry
public void deleteEntry(String id, Map<String,String> map)
Description copied from interface:Session
Deletes a directory entry by id and secondary ids.This is used for hierarchical vocabularies, where the actual unique key is the couple (parent, id).
- Specified by:
deleteEntry
in interfaceSession
- Overrides:
deleteEntry
in classBaseSession
- Parameters:
id
- the id of the entry to delete.map
- a map of secondary key values.
-
getMappedPrefixedFieldName
protected String getMappedPrefixedFieldName(String fieldName)
-
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:
Session.query(Map, Set, Map, boolean)
-
query
public DocumentModelList query(QueryBuilder queryBuilder, boolean fetchReferences)
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
public List<String> queryIds(QueryBuilder queryBuilder)
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
-
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?
-
getProjection
public List<String> getProjection(Map<String,Serializable> filter, String columnName)
Description copied from interface:Session
Executes a query using filter and return only the column columnName.- Specified by:
getProjection
in interfaceSession
- Overrides:
getProjection
in classBaseSession
- Parameters:
filter
- the filter for the querycolumnName
- the column whose content should be returned- Returns:
- the list with the values of columnName for the entries matching filter
-
getProjection
public List<String> getProjection(Map<String,Serializable> filter, Set<String> fulltext, String columnName)
- Specified by:
getProjection
in interfaceSession
- Overrides:
getProjection
in classBaseSession
-
authenticate
public boolean authenticate(String username, String password)
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
-
isAuthenticating
public boolean isAuthenticating()
Description copied from interface:Session
Tells whether the directory implementation can be used as an authenticating backend for the UserManager (based on login / password check).- Specified by:
isAuthenticating
in interfaceSession
- Overrides:
isAuthenticating
in classBaseSession
- Returns:
- true is the directory is authentication aware
-
-