Package com.jalios.jcms.accesscontrol
Class AccessControlList
- java.lang.Object
-
- com.jalios.jstore.BasicStorable
-
- com.jalios.jcms.Data
-
- com.jalios.jcms.accesscontrol.AccessControlList
-
- All Implemented Interfaces:
AccessControlConstants
,EditableData
,JcmsConstants
,ImportConstants
,MashupConstants
,Storable
,JaliosConstants
,LangPropertyArgument
,java.lang.Cloneable
,java.lang.Comparable<BasicStorable>
public class AccessControlList extends Data implements AccessControlConstants, EditableData
Define a collection of resources and their associated authorization.- Since:
- jcms-7.0
- Version:
- $Revision: 111954 $
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AccessControlList.NameComparator<T extends AccessControlList>
Comparator sorting ACL alphabetically using their name.static class
AccessControlList.NameSelector
Select ACL by their name.static class
AccessControlList.WorkspaceAclSelector
DataSelector selecting only workspace ACL.-
Nested classes/interfaces inherited from class com.jalios.jcms.Data
Data.AuthorComparator<T extends Data>, Data.AuthorizedSelector, Data.AuthorSelector, Data.CdateSelector, Data.DataNameComparator<T extends Data>, Data.DeletableSelector, Data.ImportSelector, Data.MdateSelector, Data.OpAuthorComparator<T extends Data>, Data.RowIdComparator<T extends Data>, Data.StrongLockSelector
-
Nested classes/interfaces inherited from class com.jalios.jstore.BasicStorable
BasicStorable.CdateComparator<T extends Storable>, BasicStorable.IdComparator<T extends Storable>, BasicStorable.MdateComparator<T extends Storable>
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.HashMap<java.lang.String,java.lang.Boolean>
explicitResourceToAuthorizationMap
protected boolean
isAdminOnly
protected boolean
isWorkspaceACL
protected java.lang.String
name
static java.lang.String
REVISION
-
Fields inherited from class com.jalios.jcms.Data
author, authorDBID, channel, DISPLAY_URL_EXTRA_INFO, extension, extraDataMap, extraDBDataMapToSaveOnOp, importMap, opAuthor, opDelegate, WRITE_IN_PROGRESS_EXTRA_INFO
-
Fields inherited from class com.jalios.jstore.BasicStorable
cdate, ddate, id, isStoreCache, mdate, store
-
Fields inherited from interface com.jalios.jcms.accesscontrol.AccessControlConstants
ADMIN_RESOURCE, CTXT_DATA, CTXT_WORKSPACE, DBMBR_EDIT_RESOURCE, GRP_EDIT_RESOURCE, MBR_EDIT_RESOURCE, WORKSPACE_ADMIN_RESOURCE, WS_EDIT_RESOURCE, WSGRP_EDIT_RESOURCE, WSMBR_EDIT_RESOURCE
-
Fields inherited from interface com.jalios.jcms.mashup.ImportConstants
IMPORT_ALARM_MGR, IMPORT_AUTHOR_PROP, IMPORT_CATEGORY_DEFAULT, IMPORT_DC_ATTR, IMPORT_DC_STEP, IMPORT_DIR, IMPORT_ENABLED, IMPORT_JDOM_ELEMENT, IMPORT_LOG_FILE, IMPORT_LOG_MAX, IMPORT_OPTIONS, IMPORT_OPTIONS_DC_CONTEXT, IMPORT_ROOT_PROP, IMPORT_SOURCE_FILE, IMPORT_SOURCE_PREFIX_PROP, IMPORT_SOURCES_DIR, IMPORT_STEP_CLEAN, IMPORT_STEP_IMPORT, IMPORT_STEP_UPDATE_REF, IMPORT_WS_PROP
-
Fields inherited from interface com.jalios.util.JaliosConstants
CRLF, MILLIS_IN_ONE_DAY, MILLIS_IN_ONE_HOUR, MILLIS_IN_ONE_MINUTE, MILLIS_IN_ONE_MONTH, MILLIS_IN_ONE_SECOND, MILLIS_IN_ONE_WEEK, MILLIS_IN_ONE_YEAR
-
Fields inherited from interface com.jalios.jcms.JcmsConstants
ADATE_SEARCH, ADMIN_NOTES_PROP, ADVANCED_TAB, AJAX_MODE_ATTR, ARCHIVES_DIR, ASCII_WIDTH, CATEGORY_TAB, CDATE_SEARCH, CLASS_PROPERTY, COMMON_ALARM, CONTENT_TAB, COOKIE_MAX_AGE, COUNTRY_SPRITE, CS_TYPOLOGY_ROOT_CAT_VID, CTRL_TOPIC_INTERNAL, CTRL_TOPIC_REF, CTRL_TOPIC_VALUE, CTRL_TOPIC_WRITE, CUSTOM_PROP, DEFAULT_PHOTO_PROP, DOCCHOOSER_HEIGHT, DOCCHOOSER_WIDTH, DOCS_DIR, EDATE_SEARCH, EMAIL_REGEXP, ERROR_MSG, FORBIDDEN_FILE_ACCESS, FORBIDDEN_REDIRECT, FORCE_REDIRECT, GLYPH_ICON_PREFIX, ICON_ARCHIVE, ICON_ICON_PREFIX, ICON_LOCK, ICON_LOCK_STRONG, ICON_PREFIX_PROP, ICON_WARN, ICON_WH_BOOK_CLOSED, ICON_WH_BOOK_OPEN, INFORMATION_MSG, IS_IN_FRONT_OFFICE, JALIOS_JUNIT_PROP, JCMS_CADDY, JCMS_MSG_LIST, JCMS_TOASTR_COLLECTION, JSYNC_DOWNLOAD_DIR, JSYNC_SYNC_ALARM, LANG_SPRITE, LOG_FILE, LOG_TOPIC_SECURITY, LOGGER_PROP, LOGGER_XMLPROP, MBR_PHOTO_DIR, MDATE_SEARCH, MONITOR_XML, OP_CREATE, OP_CREATE_STR, OP_DEEP_COPY, OP_DEEP_COPY_STR, OP_DEEP_DELETE, OP_DEEP_DELETE_STR, OP_DELETE, OP_DELETE_STR, OP_MERGE, OP_MERGE_STR, OP_UPDATE, OP_UPDATE_STR, ORGANIZATION_ROOT_GROUP_PROP, PDATE_SEARCH, PHOTO_DIR, PHOTO_ICON, PHOTO_ICON_HEIGHT, PHOTO_ICON_PROP_PREFIX, PHOTO_ICON_WIDTH, PHOTO_LARGE, PHOTO_LARGE_HEIGHT, PHOTO_LARGE_PROP_PREFIX, PHOTO_LARGE_WIDTH, PHOTO_NORMAL, PHOTO_NORMAL_HEIGHT, PHOTO_NORMAL_PROP_PREFIX, PHOTO_NORMAL_WIDTH, PHOTO_SMALL, PHOTO_SMALL_HEIGHT, PHOTO_SMALL_PROP_PREFIX, PHOTO_SMALL_WIDTH, PHOTO_TINY, PHOTO_TINY_HEIGHT, PHOTO_TINY_PROP_PREFIX, PHOTO_TINY_WIDTH, PREVIOUS_TAB, PRINT_VIEW, PRIVATE_FILE_ACCESS, PUBLIC_FILE_ACCESS, RAW_CONTENT_ICON_PREFIX, READ_RIGHT_TAB, SDATE_SEARCH, SEARCHENGINE_ALARM, SECURITY_LOG_FILE, SESSION_AUTHORIZED_FILENAMES_SET, SPRITE_ICON_PREFIX, STATS_REPORT_DIR, STATUS_PROP, STORE_XML, SUCCESS_MSG, SVG_ICON_PREFIX, SVGINLINE_ICON_PREFIX, TEMPLATE_TAB, THUMBNAIL_LARGE_HEIGHT, THUMBNAIL_LARGE_WIDTH, THUMBNAIL_SMALL_HEIGHT, THUMBNAIL_SMALL_WIDTH, TTCARD_MEDIA_HEIGHT, TTCARD_MEDIA_WIDTH, TYPES_ICON_ALT_PROP, TYPES_ICON_SUFFIX_PROP, TYPES_ICON_TITLE_PROP, TYPES_PREFIX_PROP, TYPES_THUMB_SUFFIX_PROP, UDATE_SEARCH, UPDATE_RIGHT_TAB, UPLOAD_DIR, UPLOAD_PERMISSION_COUNT_PROP_PREFIX, UPLOAD_PERMISSION_SIZE_PROP_PREFIX, URL_REGEXP, VID_LOGGED_MEMBER, WARNING_MSG, WEBAPP_PROP, WFEXPRESS_ALARM, WFREMINDER_ALARM, WORKFLOW_TAB, WORKFLOW_XML
-
Fields inherited from interface com.jalios.jcms.mashup.MashupConstants
DATA_TAG, DATASET_TAG, FIELD_CLASS, FIELD_ENTRY, FIELD_ITEM, FIELD_KEY, FIELD_NAME, FIELD_TAG, FIELD_VALUE, FILE_FIELD, FILE_ID, FILE_MTIME, FILE_SIZE, FILE_TAG, FILE_TICKET, FILESET_TAG, RELATED_TAG
-
-
Constructor Summary
Constructors Constructor Description AccessControlList()
Builds a new AccessControlList without any authorization and using default value.AccessControlList(AccessControlList other)
Builds a new AccessControlList by copying all authorization and option of the specified ACL.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ControllerStatus
checkDelete(Member mbr, java.util.Map context)
Checks if the deletion can be performedControllerStatus
checkIntegrity()
Checks whether or not data integrity constraints are respected.ControllerStatus
checkMember(int op, Member mbr, java.util.Map context)
Checks if the given member can perform the given operation.void
clearExplicitAccessAuthorization()
Remove all authorization for this ACLvoid
exportXmlField(java.lang.StringBuffer sb, int indentLevel)
Fills the given StringBuffer with Xml export of fields of this data.java.lang.Boolean
getAccessAuthorization(java.lang.String resource)
Retrieve the authorization of the specified resourcejava.lang.String
getDataName(java.lang.String language)
Return the name of this Data, every sub class Data which will be displayed to user should implements this method already.java.lang.Boolean
getExplicitAccessAuthorization(java.lang.String resource)
Retrieve the explicit authorization of the specified resource.java.util.HashMap<java.lang.String,java.lang.Boolean>
getExplicitResourceToAuthorizationMap()
Retrieve the internal map used to store authorization.java.util.Set<Group>
getGroupSet()
Retrieves the Set of Group using this ACL.java.lang.String
getName()
Gets the name of this ACL.static <T extends AccessControlList>
java.util.Comparator<T>getNameComparator()
Retrieve a Comparator to sort ACL alphabetically using their name.static AccessControlList.WorkspaceAclSelector
getWorkspaceAclSelector()
Retrieve a DataSelector to select only workspace ACL in a collection.boolean
isAdminOnly()
Check if this ACL can only be assigned by a global administrator.boolean
isWorker()
Check if any ACL provides worker right to the member using it.boolean
isWorkspaceACL()
Check if this ACL is dedicated for Workspace's resource access control or any other rightvoid
removeExplicitAccessAuthorization(java.lang.String resource)
Remove all authorization for the specified resourcevoid
setAdminOnly(boolean isAdminOnly)
Set whether this ACL can be assigned only by a global administrator or more.void
setExplicitAccessAuthorization(java.lang.String resource, java.lang.Boolean authorization)
Set the authorization of the specified resourcevoid
setExplicitResourceToAuthorizationMap(java.util.HashMap<java.lang.String,java.lang.Boolean> explicitResourceToAuthorizationMap)
Set the value of the internal map used to store authorization.void
setName(java.lang.String name)
Set the name of this ACL.void
setWorkspaceACL(boolean isWorkspaceACL)
Set if this ACL is dedicated for Workspace's resource access control.void
updateGroupSet(Group group, boolean add)
Internal method used to update the (transient) set of Group using this ACL.-
Methods inherited from class com.jalios.jcms.Data
canBeReadBy, canBeReadBy, canBeUnlockedBy, canRequestUnlock, checkAndPerformCreate, checkAndPerformCreate, checkAndPerformDelete, checkAndPerformDelete, checkAndPerformUpdate, checkAndPerformUpdate, checkCreate, checkCreate, checkDelete, checkIntegrity, checkLockMember, checkStrongLockMember, checkStrongLockMember, checkUpdate, checkUpdate, checkWrite, cleanHybridCollection, cleanHybridCollection, cleanHybridCollection, cleanHybridCollections, clone, computeDBIDArray, computeDBIDList, computeDBIDSet, exportXml, exportXml, exportXml, exportXml, exportXmlRelated, exportXmlRelated, fillExportXmlFieldAttributes, getAllReferrerSet, getAllReferrerSet, getAllTypeFieldEntry, getAuthor, getAuthor, getAuthorComparator, getAuthorDBID, getAuthorId, getAuthorSelector, getBooleanFieldValue, getBooleanFieldValue, getCaddyComparator, getCategoryFieldValue, getCategoryFieldValue, getCdateSelector, getComparator, getCSVHeader, getDataIcon, getDataIconAlt, getDataIconCSS, getDataIconHtml, getDataIconHtml, getDataIconTitle, getDataImage, getDataImage, getDataImage, getDataNameComparator, getDate, getDate, getDateSelector, getDeletableSelector, getDisplayLink, getDisplayLink, getDisplayLink, getDisplayLinkCss, getDisplayLinkDataAttribute, getDisplayLinkHtmlAttributes, getDisplayUrl, getDoubleFieldValue, getDoubleFieldValue, getExportXmlDataValue, getExtension, getExtraData, getExtraDataMap, getExtraDBData, getExtraDBDataMap, getExtraInfo, getExtraInfoMap, getFieldStatusMap, getFieldValue, getFieldValue, getFieldValue, getFieldValue, getGenericThumbnail, getGenericThumbnail, getImportAuthor, getImportBatch, getImportDate, getImportDisplayUrl, getImportId, getImportMap, getImportMdate, getImportSelector, getImportSignature, getImportSource, getImportSourceUrl, getImportUrl, getIntFieldValue, getIntFieldValue, getLangPropertyValue, getLinkCount, getLinkIndexedDataSet, getLinkIndexedDataSet, getLockDate, getLockInfo, getLockMember, getLongFieldValue, getLongFieldValue, getMdateSelector, getNewDefaultExtraDataMap, getNewDefaultExtraDataMap, getNewDefaultExtraDataMap, getNewDefaultExtraDataMap, getNewDefaultExtraDBDataMap, getNewDefaultExtraDBDataMap, getNewDefaultExtraDBDataMap, getNewDefaultExtraDBDataMap, getOpAuthor, getOpAuthorComparator, getOpAuthorId, getOpDelegate, getReadAuthorizedSelector, getReferrerSet, getRowId, getRowIdComparator, getStrongLock, getStrongLockContext, getStrongLockContextData, getStrongLockDate, getStrongLockInfo, getStrongLockMember, getStrongLockSelector, getTypeEntry, getTypeFieldsEntries, getUpdateInstance, getVirtualIDSet, importXml, importXmlFieldsWithReferences, importXmlFiles, importXmlReferences, initializeDBDataCollections, isDBData, isImported, isImportUpdated, isInDatabase, isLocked, isPersisted, isStrongLocked, lock, markNewImport, mergeHybridLink, mergeHybridLink, performAfterWrite, performBeforeWrite, performCreate, performCreate, performDelete, performDelete, performUpdate, performUpdate, prepareUpdateContext, printDataName, printDisplayLinkEnd, printDisplayLinkStart, printDisplayLinkStart, printDisplayUrl, printDisplayUrl, putStrongLock, putStrongLock, releaseStrongLock, releaseStrongLock, removeExtraData, removeExtraDBData, removeExtraInfo, setAuthor, setAuthorDBID, setAuthorId, setBooleanFieldValue, setCategoryFieldValue, setDoubleFieldValue, setExtension, setExtraData, setExtraDataMap, setExtraDBData, setExtraDBDataMap, setExtraDBDataMap, setExtraInfo, setFieldValue, setFieldValue, setId, setImportAuthor, setImportBatch, setImportDate, setImportDisplayUrl, setImportId, setImportMap, setImportMdate, setImportSignature, setImportSource, setImportSourceUrl, setImportUpdated, setIntFieldValue, setLongFieldValue, setMdate, setOpAuthor, setOpAuthorId, setOpDelegate, setRowId, splitHybridCollections, toCSV, toFullString, toString, unlock, unlock, unmarkNewImport, updateDisplayLinkCss, updateDisplayLinkDataAttribute, updateDisplayLinkHtmlAttributes, updateExtraDataMap, updateExtraDBDataMap, updateIndexTreeSet
-
Methods inherited from class com.jalios.jstore.BasicStorable
clearId, compareTo, equals, getAttribute, getAttributes, getCdate, getCdateComparator, getDdate, getId, getIdComparator, getMdate, getMdateComparator, getStore, getUrid, hasBeenUpdated, hashCode, isStored, resetInternalCaches, resolveAtt, resolveVal, setAttributes, setAttributes, setCdate, setDdate, setStore, toXml
-
-
-
-
Field Detail
-
REVISION
public static final java.lang.String REVISION
- See Also:
- Constant Field Values
-
name
protected java.lang.String name
-
isWorkspaceACL
protected boolean isWorkspaceACL
-
isAdminOnly
protected boolean isAdminOnly
-
explicitResourceToAuthorizationMap
protected java.util.HashMap<java.lang.String,java.lang.Boolean> explicitResourceToAuthorizationMap
-
-
Constructor Detail
-
AccessControlList
public AccessControlList()
Builds a new AccessControlList without any authorization and using default value.- Since:
- jcms-7.0.0
-
AccessControlList
public AccessControlList(AccessControlList other)
Builds a new AccessControlList by copying all authorization and option of the specified ACL.- Parameters:
other
- the ACl from which to copy fields- Since:
- jcms-7.0.0
-
-
Method Detail
-
getDataName
public java.lang.String getDataName(java.lang.String language)
Description copied from class:Data
Return the name of this Data, every sub class Data which will be displayed to user should implements this method already.
- The Title (multi-language) for a Publication.
- The Name (multi-language) for a Category.
- The Name for a Group, a Member.
- The Title (multi-language) for a Workspace.
Default behaviour is to return toFullString() of Data or empty string if toFullString is null.- Overrides:
getDataName
in classData
- Parameters:
language
- the language in which to return the name if multilang available for the data.- Returns:
- name of ACL or empty String if not specified.
- Since:
- jcms-7.0
- See Also:
getName()
,Data.getDataName(String)
-
getName
public java.lang.String getName()
Gets the name of this ACL.- Returns:
- the acl's name or an empty string if the name has not been set.
- Since:
- jcms-7.0.0
-
setName
public void setName(java.lang.String name)
Set the name of this ACL.- Parameters:
name
- the name to use.- Since:
- jcms-7.0.0
-
isWorkspaceACL
public boolean isWorkspaceACL()
Check if this ACL is dedicated for Workspace's resource access control or any other right- Returns:
- true if the acl is dedicated for Workspace's resource access (and only that), false if it is dedicated to anything else (excluding workspace's resource).
- Since:
- jcms-7.0.0
-
setWorkspaceACL
public void setWorkspaceACL(boolean isWorkspaceACL)
Set if this ACL is dedicated for Workspace's resource access control.- Parameters:
isWorkspaceACL
- true if the acl is dedicated for Workspace's resource access (and only that), false if it is dedicated to anything else (excluding workspace's resource).- Since:
- jcms-7.0.0
-
isAdminOnly
public boolean isAdminOnly()
Check if this ACL can only be assigned by a global administrator. When this option is enabled (default behavior), only a global administrator can assign this ACL to users (via a group). By disabling this option, members with access to members global administration will have the ability to assign this ACL to users. In every case, workspace members administrators do not benefit from this authorization.This option has no effect for workspace ACL.
- Returns:
- true if option is enabled (default), false if assignement authorization has been granted to members with access to members global administration.
- Since:
- JCMS-6893 (for JCMS-6056)
-
setAdminOnly
public void setAdminOnly(boolean isAdminOnly)
Set whether this ACL can be assigned only by a global administrator or more.This option has no effect for workspace ACL.
- Parameters:
isAdminOnly
- true to restrict to global admin only, false to grant authorization to members with access to members global administration.- Since:
- JCMS-6893 (for JCMS-6056)
-
getAccessAuthorization
public java.lang.Boolean getAccessAuthorization(java.lang.String resource)
Retrieve the authorization of the specified resource- Parameters:
resource
- URI of the resource- Returns:
- null if no authorization has been defined, TRUE if resource access is allowed, FALSE or null to apply default behavior.
-
isWorker
public boolean isWorker()
Check if any ACL provides worker right to the member using it.- Returns:
- true if ACL provides isWorker right, false otherwise
- Since:
- jcms-7.0.0
-
getExplicitAccessAuthorization
public java.lang.Boolean getExplicitAccessAuthorization(java.lang.String resource)
Retrieve the explicit authorization of the specified resource.Do not use this method for acces right check, see
getAccessAuthorization(String)
.- Parameters:
resource
- URI of the resource- Returns:
- null if no authorization has been defined, TRUE if resource access is allowed, FALSE or null to apply default behavior.
- Since:
- jcms-7.0.0
-
setExplicitAccessAuthorization
public void setExplicitAccessAuthorization(java.lang.String resource, java.lang.Boolean authorization)
Set the authorization of the specified resource- Parameters:
resource
- URI of the resourceauthorization
- TRUE to grant access, FALSE or null to apply default behavior. if null, the authorization is removed and default access will be applied.- Since:
- jcms-7.0.0
-
removeExplicitAccessAuthorization
public void removeExplicitAccessAuthorization(java.lang.String resource)
Remove all authorization for the specified resource- Parameters:
resource
- URI of the resource- Since:
- jcms-7.0.0
-
clearExplicitAccessAuthorization
public void clearExplicitAccessAuthorization()
Remove all authorization for this ACL- Since:
- jcms-7.0.0
-
getExplicitResourceToAuthorizationMap
public java.util.HashMap<java.lang.String,java.lang.Boolean> getExplicitResourceToAuthorizationMap()
Retrieve the internal map used to store authorization.- Returns:
- a Map of resource URI to authorization boolean
- Since:
- jcms-7.0.0
-
setExplicitResourceToAuthorizationMap
public void setExplicitResourceToAuthorizationMap(java.util.HashMap<java.lang.String,java.lang.Boolean> explicitResourceToAuthorizationMap)
Set the value of the internal map used to store authorization.- Parameters:
explicitResourceToAuthorizationMap
-- Since:
- jcms-7.0.0
-
checkIntegrity
public ControllerStatus checkIntegrity()
Checks whether or not data integrity constraints are respected.- Overrides:
checkIntegrity
in classData
- Returns:
- a ControllerStatus
- Since:
- jcms-7.0.0
-
checkMember
public ControllerStatus checkMember(int op, Member mbr, java.util.Map context)
Checks if the given member can perform the given operation.- Overrides:
checkMember
in classData
- Parameters:
op
- the operation (OP_CREATE, OP_UPDATE, ...)mbr
- the member which requests the write operationcontext
- a map which contains context parameters (may be null)- Returns:
- a ControllerStatus
- Since:
- jcms-7.0.0
-
checkDelete
public ControllerStatus checkDelete(Member mbr, java.util.Map context)
Checks if the deletion can be performed- Overrides:
checkDelete
in classData
- Parameters:
mbr
- the member which requests the write operationcontext
- a map which contains context parameters (may be null)- Returns:
- a ControllerStatus
- Since:
- jcms-7.0.0
-
updateGroupSet
public void updateGroupSet(Group group, boolean add)
Internal method used to update the (transient) set of Group using this ACL.- Parameters:
group
- the Group to add or remove from the group set.add
- true -> add, false -> remove- Since:
- jcms-7.0.0
-
getGroupSet
public java.util.Set<Group> getGroupSet()
Retrieves the Set of Group using this ACL.- Returns:
- a TreeSet of Group (internal variable exposed, do not modify the returned set)
- Since:
- jcms-7.0.0
-
exportXmlField
public void exportXmlField(java.lang.StringBuffer sb, int indentLevel)
Description copied from class:Data
Fills the given StringBuffer with Xml export of fields of this data.- Overrides:
exportXmlField
in classData
- Parameters:
sb
- the StringBufferindentLevel
- the indent level
-
getWorkspaceAclSelector
public static AccessControlList.WorkspaceAclSelector getWorkspaceAclSelector()
Retrieve a DataSelector to select only workspace ACL in a collection.- Returns:
- a new WorkspaceAclSelector
- Since:
- jcms-7.0.0
-
getNameComparator
public static <T extends AccessControlList> java.util.Comparator<T> getNameComparator()
Retrieve a Comparator to sort ACL alphabetically using their name.- Returns:
- a new NameComparator
- Since:
- jcms-7.0.0
-
-