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 booleanIndicates whether to return an undetermined resultList of file plan component kinds one of which must be satisfiedprotected static final org.apache.commons.logging.LogLoggerRequired permissionsprotected CapabilityCapability 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, titleFields inherited from class org.alfresco.module.org_alfresco_module_rm.capability.RMSecurityCommon
applicationContext, caveatConfigComponent, nodeService, NOSET_VALUE, permissionServiceFields 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_URIFields 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_DELETION_REASON, 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_DEFINITIONFields 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 booleancheckConditions(NodeRef nodeRef) Checks the set conditions.protected booleancheckConditions(NodeRef nodeRef, Map<String, Boolean> conditions) Checks the passed conditions.protected booleancheckKinds(NodeRef nodeRef) Checks that the node ref is of the expected kindprotected booleancheckPermissions(NodeRef nodeRef) Checks the permissions required for the capability.protected booleancheckPermissionsImpl(NodeRef nodeRef, String... permissions) Check the permissions passed.intEvaluates the capability.intEvaluates the capability, taking into account a target.protected intevaluateImpl(NodeRef nodeRef) Default implementation.getKinds()booleanprotected intonEvaluate(NodeRef nodeRef, int result) Default implementation.voidsetConditions(Map<String, Boolean> conditions) voidHelper method to set a single kind.voidvoidsetPermission(String permission) Helper @see #setPermissions(List)voidsetPermissions(List<String> permissions) voidsetTargetCapability(Capability targetCapability) voidsetUndetermined(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, setTitleMethods 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:CapabilityEvaluates the capability.- Returns:
- See Also:
-
evaluate
Description copied from interface:CapabilityEvaluates the capability, taking into account a target.- Specified by:
evaluatein interfaceCapability- Overrides:
evaluatein 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:
-