Class DeclarativeCapability
java.lang.Object
org.alfresco.module.org_alfresco_module_rm.capability.RMSecurityCommon
org.alfresco.module.org_alfresco_module_rm.capability.AbstractCapability
org.alfresco.module.org_alfresco_module_rm.capability.declarative.DeclarativeCapability
- All Implemented Interfaces:
Capability
,RMPermissionModel
,RecordsManagementCustomModel
,RecordsManagementModel
,org.springframework.beans.factory.Aware
,org.springframework.context.ApplicationContextAware
- Direct Known Subclasses:
ChangeOrDeleteReferencesCapability
,CreateCapability
,DeclarativeCompositeCapability
,DeleteLinksCapability
,EditNonRecordMetadataCapability
,ViewRecordsCapability
Declarative capability implementation.
- Author:
- Roy Wetherall
-
Field Summary
FieldsModifier and TypeFieldDescriptionMap of conditions and expected evaluation resultprotected boolean
Indicates whether to return an undetermined resultList of file plan component kinds one of which must be satisfiedprotected static final org.apache.commons.logging.Log
LoggerRequired permissionsprotected Capability
Capability to be evaluated against the target node referenceFields inherited from class org.alfresco.module.org_alfresco_module_rm.capability.AbstractCapability
capabilityService, description, group, index, isPrivate, name, title
Fields inherited from class org.alfresco.module.org_alfresco_module_rm.capability.RMSecurityCommon
applicationContext, caveatConfigComponent, nodeService, NOSET_VALUE, permissionService
Fields inherited from interface org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementCustomModel
ASPECT_CUSTOM_ASSOCIATIONS, ASPECT_SUPPLEMENTAL_MARKING_LIST, CONSTRAINT_CUSTOM_SMLIST, CUSTOM_REF_CROSSREFERENCE, CUSTOM_REF_OBSOLETES, CUSTOM_REF_RENDITION, CUSTOM_REF_SUPERSEDES, CUSTOM_REF_SUPPORTS, CUSTOM_REF_VERSIONS, PROP_SUPPLEMENTAL_MARKING_LIST, RM_CUSTOM_MODEL, RM_CUSTOM_PREFIX, RM_CUSTOM_URI
Fields inherited from interface org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel
ASPECT_ARCHIVED, ASPECT_ASCENDED, ASPECT_CAVEAT_CONFIG_ROOT, ASPECT_COMMON_RECORD_DETAILS, ASPECT_COUNTABLE, ASPECT_CUSTOM_RM_DATA, ASPECT_CUT_OFF, ASPECT_DECLARED_RECORD, ASPECT_DISPOSITION_LIFECYCLE, ASPECT_DISPOSITION_PROCESSED, ASPECT_EMAIL_CONFIG_ROOT, ASPECT_EXTENDED_SECURITY, ASPECT_FILABLE, ASPECT_FILE_PLAN_COMPONENT, ASPECT_FROZEN, ASPECT_GHOSTED, ASPECT_HELD_CHILDREN, ASPECT_LOADED_DATA_SET_ID, ASPECT_RECORD, ASPECT_RECORD_COMPONENT_ID, ASPECT_RECORD_META_DATA, ASPECT_RECORD_ORIGINATING_DETAILS, ASPECT_RECORD_REJECTION_DETAILS, ASPECT_RECORDS_MANAGEMENT_ROOT, ASPECT_RM_SEARCH, ASPECT_SAVED_SEARCH, ASPECT_SCHEDULED, ASPECT_TRANSFERRED, ASPECT_TRANSFERRING, ASPECT_UNCUT_OFF, ASPECT_UNPUBLISHED_UPDATE, ASPECT_VERSIONED_RECORD, ASPECT_VITAL_RECORD, ASPECT_VITAL_RECORD_DEFINITION, ASSOC_CAVEAT_CONFIG, ASSOC_DISPOSITION_ACTION_DEFINITIONS, ASSOC_DISPOSITION_ACTION_HISTORY, ASSOC_DISPOSITION_SCHEDULE, ASSOC_EMAIL_CONFIG, ASSOC_EVENT_EXECUTIONS, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_RECORDS, ASSOC_HOLDS, ASSOC_NEXT_DISPOSITION_ACTION, ASSOC_TRANSFERRED, ASSOC_TRANSFERS, GL_URI, PROP_COMBINE_DISPOSITION_STEP_CONDITIONS, PROP_COUNT, PROP_CUT_OFF_DATE, PROP_DATE_FILED, PROP_DB_UNIQUENESS_ID, PROP_DECLARED_AT, PROP_DECLARED_BY, PROP_DISPOSITION_ACTION, PROP_DISPOSITION_ACTION_COMPLETED_AT, PROP_DISPOSITION_ACTION_COMPLETED_BY, PROP_DISPOSITION_ACTION_GHOST_ON_DESTROY, PROP_DISPOSITION_ACTION_ID, PROP_DISPOSITION_ACTION_NAME, PROP_DISPOSITION_ACTION_STARTED_AT, PROP_DISPOSITION_ACTION_STARTED_BY, PROP_DISPOSITION_AS_OF, PROP_DISPOSITION_AUTHORITY, PROP_DISPOSITION_DESCRIPTION, PROP_DISPOSITION_EVENT, PROP_DISPOSITION_EVENT_COMBINATION, PROP_DISPOSITION_EVENTS_ELIGIBLE, PROP_DISPOSITION_INSTRUCTIONS, PROP_DISPOSITION_LOCATION, PROP_DISPOSITION_PERIOD, PROP_DISPOSITION_PERIOD_PROPERTY, PROP_EVENT_EXECUTION_AUTOMATIC, PROP_EVENT_EXECUTION_COMPLETE, PROP_EVENT_EXECUTION_COMPLETED_AT, PROP_EVENT_EXECUTION_COMPLETED_BY, PROP_EVENT_EXECUTION_NAME, PROP_FROZEN_AT, PROP_FROZEN_BY, PROP_HELD_CHILDREN_COUNT, PROP_HOLD_REASON, PROP_IDENTIFIER, PROP_IS_CLOSED, PROP_LOADED_DATA_SET_IDS, PROP_LOCATION, PROP_MANUALLY_SET_AS_OF, PROP_ORIGIONAL_NAME, PROP_PUBLISH_IN_PROGRESS, PROP_READERS, PROP_RECORD_LEVEL_DISPOSITION, PROP_RECORD_ORIGINATING_CREATION_DATE, PROP_RECORD_ORIGINATING_LOCATION, PROP_RECORD_ORIGINATING_USER_ID, PROP_RECORD_REJECTION_DATE, PROP_RECORD_REJECTION_REASON, PROP_RECORD_REJECTION_USER_ID, PROP_REVIEW_AS_OF, PROP_REVIEW_PERIOD, PROP_ROOT_NODEREF, PROP_RS_DECLASSIFICATION_REVIEW_COMPLETED_AT, PROP_RS_DECLASSIFICATION_REVIEW_COMPLETED_BY, PROP_RS_DISPOITION_AUTHORITY, PROP_RS_DISPOITION_INSTRUCTIONS, PROP_RS_DISPOSITION_ACTION_AS_OF, PROP_RS_DISPOSITION_ACTION_NAME, PROP_RS_DISPOSITION_EVENTS, PROP_RS_DISPOSITION_EVENTS_ELIGIBLE, PROP_RS_DISPOSITION_PERIOD, PROP_RS_DISPOSITION_PERIOD_EXPRESSION, PROP_RS_HAS_DISPOITION_SCHEDULE, PROP_RS_HOLD_REASON, PROP_RS_VITAL_RECORD_REVIEW_PERIOD, PROP_RS_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION, PROP_TRANSFER_ACCESSION_INDICATOR, PROP_TRANSFER_LOCATION, PROP_TRANSFER_PDF_INDICATOR, PROP_UNPUBLISHED_UPDATE, PROP_UPDATE_TO, PROP_UPDATED_PROPERTIES, PROP_VITAL_RECORD_INDICATOR, PROP_WRITERS, RM_MODEL, RM_PREFIX, RM_URI, TYPE_CAVEAT_CONFIG, TYPE_DISPOSITION_ACTION, TYPE_DISPOSITION_ACTION_DEFINITION, TYPE_DISPOSITION_SCHEDULE, TYPE_EMAIL_CONFIG, TYPE_EVENT_EXECUTION, TYPE_FILE_PLAN, TYPE_HOLD, TYPE_HOLD_CONTAINER, TYPE_NON_ELECTRONIC_DOCUMENT, TYPE_RECORD_CATEGORY, TYPE_RECORD_FOLDER, TYPE_RECORDS_MANAGEMENT_CONTAINER, TYPE_RM_SITE, TYPE_TRANSFER, TYPE_TRANSFER_CONTAINER, TYPE_UNFILED_RECORD_CONTAINER, TYPE_UNFILED_RECORD_FOLDER, UPDATE_TO_DISPOSITION_ACTION_DEFINITION
Fields inherited from interface org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel
ACCESS_AUDIT, ADD_MODIFY_EVENT_DATES, ADD_TO_HOLD, APPROVE_RECORDS_SCHEDULED_FOR_CUTOFF, ATTACH_RULES_TO_METADATA_PROPERTIES, AUTHORIZE_ALL_TRANSFERS, AUTHORIZE_NOMINATED_TRANSFERS, CHANGE_OR_DELETE_REFERENCES, CLOSE_FOLDERS, CREATE_AND_ASSOCIATE_SELECTION_LISTS, CREATE_HOLD, CREATE_MODIFY_DESTROY_CLASSIFICATION_GUIDES, CREATE_MODIFY_DESTROY_EVENTS, CREATE_MODIFY_DESTROY_FILEPLAN_METADATA, CREATE_MODIFY_DESTROY_FILEPLAN_TYPES, CREATE_MODIFY_DESTROY_FOLDERS, CREATE_MODIFY_DESTROY_RECORD_TYPES, CREATE_MODIFY_DESTROY_REFERENCE_TYPES, CREATE_MODIFY_DESTROY_ROLES, CREATE_MODIFY_DESTROY_TIMEFRAMES, CREATE_MODIFY_DESTROY_USERS_AND_GROUPS, CREATE_MODIFY_RECORDS_IN_CUTOFF_FOLDERS, CREATE_RECORDS, CYCLE_VITAL_RECORDS, DECLARE_AUDIT_AS_RECORD, DECLARE_RECORDS, DECLARE_RECORDS_IN_CLOSED_FOLDERS, DELETE_AUDIT, DELETE_LINKS, DELETE_RECORDS, DESTROY_RECORDS, DESTROY_RECORDS_SCHEDULED_FOR_DESTRUCTION, DISPLAY_RIGHTS_REPORT, EDIT_DECLARED_RECORD_METADATA, EDIT_NON_RECORD_METADATA, EDIT_RECORD_METADATA, EDIT_SELECTION_LISTS, ENABLE_DISABLE_AUDIT_BY_TYPES, EXPORT_AUDIT, EXTEND_RETENTION_PERIOD_OR_FREEZE, FILE_RECORDS, FILING, MAKE_OPTIONAL_PARAMETERS_MANDATORY, MANAGE_ACCESS_CONTROLS, MANAGE_ACCESS_RIGHTS, MANUALLY_CHANGE_DISPOSITION_DATES, MAP_CLASSIFICATION_GUIDE_METADATA, MAP_EMAIL_METADATA, MOVE_RECORDS, PASSWORD_CONTROL, PLANNING_REVIEW_CYCLES, RE_OPEN_FOLDERS, READ_RECORDS, REMOVE_FROM_HOLD, ROLE_ADMINISTRATOR, ROLE_NAME_ADMINISTRATOR, ROLE_NAME_POWER_USER, ROLE_NAME_RECORDS_MANAGER, ROLE_NAME_SECURITY_OFFICER, ROLE_NAME_USER, SELECT_AUDIT_METADATA, TRIGGER_AN_EVENT, UNDECLARE_RECORDS, UNFREEZE, UPDATE_CLASSIFICATION_DATES, UPDATE_EXEMPTION_CATEGORIES, UPDATE_TRIGGER_DATES, UPDATE_VITAL_RECORD_CYCLE_INFORMATION, UPGRADE_DOWNGRADE_AND_DECLASSIFY_RECORDS, VIEW_RECORDS, VIEW_UPDATE_REASONS_FOR_FREEZE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
checkConditions
(NodeRef nodeRef) Checks the set conditions.protected boolean
checkConditions
(NodeRef nodeRef, Map<String, Boolean> conditions) Checks the passed conditions.protected boolean
checkKinds
(NodeRef nodeRef) Checks that the node ref is of the expected kindprotected boolean
checkPermissions
(NodeRef nodeRef) Checks the permissions required for the capability.protected boolean
checkPermissionsImpl
(NodeRef nodeRef, String... permissions) Check the permissions passed.int
Evaluates the capability.int
Evaluates the capability, taking into account a target.protected int
evaluateImpl
(NodeRef nodeRef) Default implementation.getKinds()
boolean
protected int
onEvaluate
(NodeRef nodeRef, int result) Default implementation.void
setConditions
(Map<String, Boolean> conditions) void
Helper method to set a single kind.void
void
setPermission
(String permission) Helper @see #setPermissions(List)void
setPermissions
(List<String> permissions) void
setTargetCapability
(Capability targetCapability) void
setUndetermined
(boolean isUndetermined) Sets whether the capability will return an undetermined result when evaluating permissions for a single node reference or not.Methods inherited from class org.alfresco.module.org_alfresco_module_rm.capability.AbstractCapability
equals, getDescription, getGroup, getIndex, getName, getTitle, hashCode, hasPermission, hasPermissionImpl, hasPermissionRaw, init, isPrivate, setCapabilityService, setDescription, setDescriptionId, setGroup, setIndex, setName, setPrivate, setTitle
Methods inherited from class org.alfresco.module.org_alfresco_module_rm.capability.RMSecurityCommon
checkRead, checkRead, checkRmRead, getFilePlanService, getTestNode, getTransactionCache, setApplicationContext, setCaveatConfigComponent, setNodeService, setPermissionService, setTransactionCache
-
Field Details
-
LOGGER
protected static final org.apache.commons.logging.Log LOGGERLogger -
permissions
Required permissions -
conditions
Map of conditions and expected evaluation result -
kinds
List of file plan component kinds one of which must be satisfied -
targetCapability
Capability to be evaluated against the target node reference -
isUndetermined
protected boolean isUndeterminedIndicates whether to return an undetermined result
-
-
Constructor Details
-
DeclarativeCapability
public DeclarativeCapability()
-
-
Method Details
-
setPermissions
- Parameters:
permissions
- permissions
-
setConditions
- Parameters:
conditions
- conditions and expected values
-
getConditions
- Returns:
Map
<String, Boolean > conditions and expected values
-
setKinds
- Parameters:
kinds
- list of file plan component kinds
-
getKinds
- Returns:
List
<@link String > list of expected file plan component kinds
-
setKind
Helper method to set a single kind.- Parameters:
kind
- file plan component kind
-
setUndetermined
public void setUndetermined(boolean isUndetermined) Sets whether the capability will return an undetermined result when evaluating permissions for a single node reference or not. The default is to return grant.- Parameters:
isUndetermined
- true if undetermined result, false otherwise
-
isUndetermined
public boolean isUndetermined()- Returns:
-
setPermission
Helper @see #setPermissions(List)- Parameters:
permission
- permission
-
setTargetCapability
- Parameters:
targetCapability
- target capability
-
checkPermissionsImpl
Check the permissions passed.- Parameters:
nodeRef
- node reference- Returns:
- boolean true if the permissions are present, false otherwise
-
checkPermissions
Checks the permissions required for the capability.- Parameters:
nodeRef
-- Returns:
-
checkConditions
Checks the passed conditions.- Parameters:
nodeRef
-- Returns:
-
checkConditions
Checks the set conditions.- Parameters:
nodeRef
- node reference- Returns:
- boolean true if conditions satisfied, false otherwise
-
checkKinds
Checks that the node ref is of the expected kind- Parameters:
nodeRef
-- Returns:
-
evaluate
Description copied from interface:Capability
Evaluates the capability.- Returns:
- See Also:
-
evaluate
Description copied from interface:Capability
Evaluates the capability, taking into account a target.- Specified by:
evaluate
in interfaceCapability
- Overrides:
evaluate
in classAbstractCapability
- Parameters:
source
- source node referencetarget
- target node reference- Returns:
- int permission value
- See Also:
-
evaluateImpl
Default implementation. Given extending classes a hook point for further checks.- Parameters:
nodeRef
- node reference- Returns:
-
onEvaluate
Default implementation. Called before evaluate completes. The result returned overwrites the already discovered result. Provides a hook point for child implementations that wish to veto the result.- Parameters:
nodeRef
-result
-- Returns:
-