public class AccessControlList extends TiePublicObject
Each ACE represents a single grant/revoke of a privilege or AccessLevel. The complete list of ACEs, that is the ACL itself, represents the cumulative list of who (DirectoryObjects) has what access to a specified PublicObject. An ACL may be referenced (shared) by more than one PublicObject.
The order of the ACEs is significant. Access is resolved in ascending order. If a user is first granted a privilege, then revoked, the result is the user will not have that privilege.
For example, the first ACE grants a group complete access to a PublicObject. The second ACE revokes specific privileges to distinct members of the group. The result would be some members having full privileges and others having restricted privileges. Had the order of the ACEs been reversed, the result would be the whole group having full privileges.
AccessLevel
,
DirectoryObject
,
DirectoryUser
,
PublicObject
Modifier and Type | Field and Description |
---|---|
static String |
CLASS_NAME
This class name for this class.
|
static String |
COMPONENTACLS_ATTRIBUTE
The component ACLs for a composite ACL.
|
static String |
OWNERUNIQUENAME_ATTRIBUTE
A system-set attribute used to ensure no ACLs owned by a user have duplicate names.
|
static String |
SHARED_ATTRIBUTE
An indicator of whether more than one PublicObject refers to this AccessControlList.
|
ACL_ATTRIBUTE, CREATEDATE_ATTRIBUTE, CREATOR_ATTRIBUTE, DELETOR_ATTRIBUTE, DESCRIPTION_ATTRIBUTE, EXPIRATIONDATE_ATTRIBUTE, FAMILY_ATTRIBUTE, FLAG_CATEGORY_EXISTS, FLAG_CONFIGURATIONCATEGORY_EXISTS, FLAG_MARKED, FLAG_NOINFERIOR, FLAG_NOSELECT, FLAG_NTFS_ARCHIVE, FLAG_NTFS_HIDDEN, FLAG_NTFS_READONLY, FLAG_NTFS_SYSTEM, FLAG_UNMARKED, FLAGS_ATTRIBUTE, LASTMODIFIER_ATTRIBUTE, LASTMODIFYDATE_ATTRIBUTE, LOCKENTRIES_ATTRIBUTE, LOCKOBJECT_ATTRIBUTE, NAME_ATTRIBUTE, OWNER_ATTRIBUTE, POLICYBUNDLE_ATTRIBUTE, POLICYLISTS_ATTRIBUTE, PRIMARYPARENTFOLDER_ATTRIBUTE, PROPERTYBUNDLE_ATTRIBUTE, RESOLVEDPUBLICOBJECT_ATTRIBUTE, SECURINGPUBLICOBJECT_ATTRIBUTE
DOMAIN_UNIQUENAME_DEFAULT_DELIMITER, m_ClassId, m_Id, m_Session
Modifier | Constructor and Description |
---|---|
protected |
AccessControlList(LibrarySession session,
Long id,
Long classId,
S_LibraryObjectData data)
Construct a AccessControlList object - standard variant.
|
Modifier and Type | Method and Description |
---|---|
protected AccessControlEntry |
addAccessControlEntry(AccessControlEntryDefinition aceDef)
Add an ACE to this ACL.
|
boolean |
checkEffectiveAccess(DirectoryObject obj,
AccessLevel level)
Check to see if specified user has the specified
access level on this object.
|
boolean |
checkGrantedAccess(AccessLevel level)
Check if current user has the specified access level on this object.
|
boolean |
checkGrantedAccess(DirectoryObject obj,
AccessLevel requestedLevel)
Check to see if specified user/group has the specified access level on this object.
|
protected static AccessControlList |
constructAccessControlList(LibrarySession sess,
S_LibraryObjectData data)
Returns AccessControlList from a S_LibraryObjectData
|
protected static AccessControlList[] |
constructAccessControlListArray(LibrarySession sess,
Long[] ids)
Constructs a AccessControlList array from an array of object IDs.
|
protected static Vector |
constructAccessControlListVector(LibrarySession sess,
Vector vector)
Construct Vector of AccessControlList from vector
of S_LibraryObjectData
|
static AccessControlList[] |
findAll(LibrarySession session)
Returns the set of defined AccessControlLists.
|
static AccessControlList |
findByName(LibrarySession session,
String name)
Returns the a AccessControlList matching the
specified name.
|
AccessControlEntry[] |
getAccessControlEntrys()
Returns an array of AccessControlEntry objects that
are part of this ACL.
|
AccessControlEntry |
getAccessControlEntrys(int index)
Returns the ACE at specified index in array of ACEs.
|
static Long |
getClassId(LibrarySession session)
Get the ID of the ClassObject representing ACCESSCONTROLLIST.
|
AccessControlList[] |
getComponentAcls()
Returns all AccessControlLists that are components of the target ACL.
|
AccessControlList[] |
getCompositeAcls()
Gets the set of composite ACLs which reference the target ACL as a
"component".
|
AccessControlList[] |
getCompositeAcls(SortSpecification sort)
Gets a sorted set of composite ACLs which reference the target ACL as a
"component".
|
AccessLevel |
getEffectiveAccessLevel(DirectoryObject obj)
Returns the effective access level
on this object for the specified user.
|
AccessLevel |
getGrantedAccessLevel()
Returns the access level on this object for the current user.
|
AccessLevel |
getGrantedAccessLevel(DirectoryObject obj)
Returns the access level on this object for a specified DirectoryObject.
|
static LibraryObjectLookupCache |
getLibraryObjectLookupCache(LibrarySessionInterface session)
Returns the LibraryObjectLookupCache used by find
AccessControlList instances by name.
|
AccessControlEntry |
grantAccess(AccessControlEntryDefinition aceDef)
Add or extend an ACE for this ACL.
|
boolean |
isComposite()
Returns indication as to whether the target ACL is considered a
"composite ACL", that is if it has one of more component ACLs.
|
boolean |
isShared()
Returns indication as to whether this is a shared ACL, meaning more
than one PublicObject refers to it.
|
void |
removeAccessControlEntry(AccessControlEntry ace)
Remove an ACE from this ACL.
|
static int |
removeAcesForFreedGrantees(LibrarySession session,
int batchSize)
Cleanup ACLs that have ACEs for grantees that have been freed.
|
protected void |
removeAllAccessControlEntries()
Remove all ACEs from this ACL.
|
AccessControlEntry |
revokeAccess(AccessControlEntryDefinition aceDef)
Remove or restrict an ACE for this ACL.
|
void |
revokeAllAccess()
Remove all ACEs for this ACL.
|
void |
setComponentAcls(AccessControlList[] acls)
Sets the AccessControlLists that are components of the target ACL.
|
void |
updateAccessControlEntry(AccessControlEntry ace,
AccessControlEntryDefinition aceDef)
Update an ACE in this ACL.
|
protected static AccessControlList |
vectorAclElement(Vector vector,
int index)
Returns an AccessControlList from a specified Vector of
AccessControlLists
and an index.
|
protected static AccessControlList[] |
vectorToAclArray(Vector vector)
Convert a Vector of AccessControlLists to an
array of AccessControlLists.
|
addAccess, addAttachment, addCategory, addFlags, addMessageList, addRelationship, auditPublicObjectLocked, auditPublicObjectUnlocked, canAcquireManualLock, canReleaseDavLock, canReleaseLock, canReleaseManualLock, capabilities, checkAuditViewCapability, checkCapabilities, checkCapability, checkEffectiveAccess, checkLockAccess, checkParentFolderCapability, checkVersioned, clearFlags, constructPublicObject, constructPublicObjectArray, constructPublicObjectVector, containsLockEntry, copy, coreAutoFolderingEnabled, createCategories, createDedicatedPolicyPropertyBundle, delete, deriveEffectiveAccessLevel, findAttachmentRelation, findOrAddActivityRecord, findOrAddActivityRecord, findOrAddActor, findOrAddActor, findOrAddMessageList, findOrAddMessageList, free, getAcl, getActivityRecord, getActor, getAllFolderPaths, getAllFolderPaths, getAllFolderPaths, getAnyFolderPath, getAnyFolderPath, getAnyFolderPath, getAttachmentRelation, getAttachmentRelations, getAttachments, getCapabilities, getCategories, getCategories, getCategories, getCategories, getCategories, getCategory, getConsumedStorage, getCreateDate, getCreator, getDefaultAccessLevel, getDefinitionForSimplePropertyUpdates, getDeletor, getDescription, getEffectiveAccessLevel, getExpirationDate, getFamily, getFirstCategory, getFirstVersion, getFlags, getFolderReferences, getFolderReferences, getFolderReferencesSortSpecification, getLastModifier, getLastModifyDate, getLastVersion, getLeftwardRelationshipObjects, getLeftwardRelationshipObjects, getLeftwardRelationships, getLeftwardRelationships, getLeftwardRelationshipsCount, getLeftwardRelationshipsCount, getLinks, getLockEntries, getLockEntries, getLockObject, getLockRestrictions, getLockTypeAuditProperties, getMessageList, getNextVersion, getOwner, getPolicyBundle, getPolicyLists, getPreviousVersion, getPrimaryFolderPath, getPrimaryParentFolder, getPrimaryParentFolder, getRelations, getReservationComment, getReservationDate, getReservor, getResolvedPublicObject, getRestrictingLockEntries, getRightwardRelationshipObjects, getRightwardRelationshipObjects, getRightwardRelationships, getRightwardRelationships, getSecuringPublicObject, getSingletonVersionDescription, getVersionNumber, getVersions, getVersionSeries, getWorkingCopy, handleCopy, handleCreate, handleUnlockAll, hasActivityRecord, hasActor, hasAttachmentRelation, hasCategories, hasCategory, hasConfigurationCategories, hasMessageList, hasNameAttribute, hasPropertyBundleAttribute, isAttachment, isDeleted, isLatestVersion, isLocked, isLockingSupported, isOwner, isReserved, isReservedByCurrentUser, isVersionable, isVersioned, isWorkingCopy, listLeftwardRelationships, listRightwardRelationships, lock, lock, lock, lock, newVersion, postCopy, postCreate, postSecurityChangedEvent, postUpdate, preCopy, preCreate, preFree, preUpdate, putPolicy, reassociateLinks, removeAllPolicies, removeAttachment, removePolicy, removePolicy, removeRelationship, reserveNext, resetFolderReferences, resolveFolderReferenceSortSpecification, setAcl, setDescription, setExpirationDate, setFlags, setFolderReferencesSortSpecification, setLockEntries, setLockEntrySecurity, setOwner, setOwnerByName, setPolicyBundle, setPolicyLists, setSecuringPublicObject, toPublicObjectArray, undelete, unlock, unlock, unlockAll, unReserve, updateFlags, updateLock, vectorPublicObjectElement, vectorToPublicObjectArray, verifyAddRelationshipCapability, verifyCapabilities, verifyCapability, verifyDeleteCapability, verifyLockCapability, verifyRemoveRelationshipCapability, verifyUnlockCapability, verifyVersionSeries
added, addSimpleProperty, addSimpleProperty, applyProperties, auditCreated, auditUpdated, canPurge, checkIfPropertyBundleSupported, checkRequiredAttributeSet, clearCopyContext, clearFreeContext, clearUpdateContext, compareTo, constructIdArray, constructIdArray, constructLibraryObject, constructLibraryObjectVector, createDedicatedPropertyBundle, createInstance, deriveDomainUniqueName, dispose, equals, equals, free, freeAll, get, getAttribute, getAttributeByUpperCaseName, getAttributes, getAttributesByUpperCaseNames, getAuditDomainContext, getAuditEventFolderContext, getClassId, getClassname, getClassName, getClassObject, getCommonName, getCommonNameAndClass, getCopyContext, getCreateContext, getData, getDefinition, getEffectivePolicyListElements, getEventualAttributeByUpperCaseName, getFreeContext, getId, getLabel, getName, getObjectReferenceAttribute, getOperationActionSpecificationContext, getPropertyBundle, getPropertyValue, getPublicObjectAttribute, getResourceString, getResourceString, getSchemaObjectAttribute, getSession, getSessionInterface, getSharedStateFactory, getSimpleObjectAttribute, getSimpleProperties, getSimpleProperty, getSimplePropertyValue, getStringIdentifier, getSystemObjectAttribute, getTraceLogger, getUpdateContext, handleAdminModeChange, handleEvent, handleFree, handleUpdate, hashCode, invalidateState, invokeOperation, invokeOperation, invokeServerMethod, isConnected, isCoreEventPostingEnabled, isInstanceOf, isPersistent, isTraced, isValidEventType, lockRows, lookupInstanceLabel, performPostCreateExtensions, performPostFreeExtensions, performPostUpdateExtensions, performPreCreateExtensions, performPreFreeExtensions, performPreUpdateExtensions, postEvent, postEvent, postFree, prePostAuditEvent, putProperty, putProperty, removeAllProperties, removeAllSimpleProperties, removeAllSimpleProperties, removed, removeProperty, removeSimpleProperty, removeSimpleProperty, renderAsRandomAccessContent, renderAsReader, renderAsStream, setAttribute, setAttribute, setAttributes, setAttributes, setCopyContext, setFreeContext, setId, setName, setPropertyBundle, setPropertyValue, setUpdateContext, toString, trace, trustHandleCreate, trustHandleCreateAsAdmin, trustHandleFree, trustHandleFreeAsAdmin, trustHandleUpdate, trustHandleUpdateAsAdmin, update, updateAndExposeDefinition, validatePropertyValues, vectorLibraryObjectElement, vectorToLibraryObjectArray, verifyAdministrationMode, verifyConnected, verifyPersistent, verifySystemUserAccess, verifyTargetObject
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getAttributeByUpperCaseName, getClassId, getId, getSessionInterface
getTraceLogger, isTraced, trace
public static final String CLASS_NAME
public static final String SHARED_ATTRIBUTE
public static final String OWNERUNIQUENAME_ATTRIBUTE
public static final String COMPONENTACLS_ATTRIBUTE
protected AccessControlList(LibrarySession session, Long id, Long classId, S_LibraryObjectData data) throws IfsException
session
- current Sessionid
- object IDclassId
- the class IDdata
- attributesIfsException
public static Long getClassId(LibrarySession session) throws IfsException
session
- the session contextIfsException
- if the operation failspublic boolean isShared() throws IfsException
IfsException
- if operation fails.public AccessControlList[] getComponentAcls() throws IfsException
IfsException
- if operation fails.public boolean isComposite() throws IfsException
IfsException
- if operation fails.public AccessControlList[] getCompositeAcls() throws IfsException
IfsException
- if operation fails.public AccessControlList[] getCompositeAcls(SortSpecification sort) throws IfsException
sort
- sort specificationIfsException
- if operation fails.public void setComponentAcls(AccessControlList[] acls) throws IfsException
acls
- the set of component AccessControlLists, or null
if none.IfsException
- if operation fails.public AccessLevel getGrantedAccessLevel() throws IfsException
IfsException
- if operation fails.public AccessLevel getGrantedAccessLevel(DirectoryObject obj) throws IfsException
obj
- the DirectoryObjectIfsException
- if operation fails.public boolean checkGrantedAccess(AccessLevel level) throws IfsException
level
- specified level.IfsException
- if operation fails.public boolean checkGrantedAccess(DirectoryObject obj, AccessLevel requestedLevel) throws IfsException
obj
- the DirectoryObject.IfsException
- if operation fails.public AccessLevel getEffectiveAccessLevel(DirectoryObject obj) throws IfsException
getEffectiveAccessLevel
in class PublicObject
obj
- the DirectoryObjectIfsException
- if operation fails.public boolean checkEffectiveAccess(DirectoryObject obj, AccessLevel level) throws IfsException
checkEffectiveAccess
in class PublicObject
obj
- specified user on which to check Access Controllevel
- specified level.IfsException
- if operation fails.public AccessControlEntry[] getAccessControlEntrys() throws IfsException
IfsException
- if operation fails.public AccessControlEntry getAccessControlEntrys(int index) throws IfsException
index
- index into the array of AccessControlEntrysIfsException
- if operation fails.public AccessControlEntry grantAccess(AccessControlEntryDefinition aceDef) throws IfsException
grantAccess
in class PublicObject
aceDef
- AccessControlEntry definitionIfsException
- if operation fails.public AccessControlEntry revokeAccess(AccessControlEntryDefinition aceDef) throws IfsException
revokeAccess
in class PublicObject
aceDef
- AccessControlEntry definitionIfsException
- if operation fails.public void revokeAllAccess() throws IfsException
revokeAllAccess
in class PublicObject
IfsException
- if operation fails.protected AccessControlEntry addAccessControlEntry(AccessControlEntryDefinition aceDef) throws IfsException
aceDef
- AccessControlEntryDefinition definitionIfsException
- if operation fails.public void removeAccessControlEntry(AccessControlEntry ace) throws IfsException
ace
- AccessControlEntry to be removedIfsException
- if operation fails.public void updateAccessControlEntry(AccessControlEntry ace, AccessControlEntryDefinition aceDef) throws IfsException
ace
- AccessControlEntry to be updatedaceDef
- the definition of the updatesIfsException
- if operation fails.protected void removeAllAccessControlEntries() throws IfsException
IfsException
- if operation fails.public static int removeAcesForFreedGrantees(LibrarySession session, int batchSize) throws IfsException
IfsException
- if the operation failspublic static LibraryObjectLookupCache getLibraryObjectLookupCache(LibrarySessionInterface session) throws IfsException
session
- the session contextIfsException
- if the operation fails.public static AccessControlList[] findAll(LibrarySession session) throws IfsException
The instances will be sorted by name.
session
- the session contextIfsException
- if the operation fails.public static AccessControlList findByName(LibrarySession session, String name) throws IfsException
session
- the session contextname
- the AccessControlList nameIfsException
- if the operation fails.protected static Vector constructAccessControlListVector(LibrarySession sess, Vector vector) throws IfsException
sess
- sessionvector
- Vector of S_LibraryObjectDataIfsException
- if operation fails.protected static AccessControlList[] constructAccessControlListArray(LibrarySession sess, Long[] ids) throws IfsException
sess
- the requesting sessionids
- the array of object IDsIfsException
- if operation fails.protected static AccessControlList constructAccessControlList(LibrarySession sess, S_LibraryObjectData data) throws IfsException
sess
- the Sessiondata
- a S_LibraryObjectDataIfsException
- if operation fails.protected static AccessControlList[] vectorToAclArray(Vector vector)
vector
- A Vector containing AccessControlLists.protected static AccessControlList vectorAclElement(Vector vector, int index) throws IndexOutOfBoundsException
vector
- A Vector containing AccessControlLists.index
- An index into the Vector of AccessControlLists.IndexOutOfBoundsException
- if index is invalid.Copyright © 2023. All rights reserved.