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
public class DeclarativeCapability extends AbstractCapability
Declarative capability implementation.- Author:
- Roy Wetherall
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,Boolean>
conditions
Map of conditions and expected evaluation resultprotected boolean
isUndetermined
Indicates whether to return an undetermined resultprotected List<String>
kinds
List of file plan component kinds one of which must be satisfiedprotected static org.apache.commons.logging.Log
LOGGER
Loggerprotected List<String>
permissions
Required permissionsprotected Capability
targetCapability
Capability to be evaluated against the target node reference-
Fields 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 Constructor Description DeclarativeCapability()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected 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
evaluate(NodeRef nodeRef)
Evaluates the capability.int
evaluate(NodeRef source, NodeRef target)
Evaluates the capability, taking into account a target.protected int
evaluateImpl(NodeRef nodeRef)
Default implementation.Map<String,Boolean>
getConditions()
List<String>
getKinds()
boolean
isUndetermined()
protected int
onEvaluate(NodeRef nodeRef, int result)
Default implementation.void
setConditions(Map<String,Boolean> conditions)
void
setKind(String kind)
Helper method to set a single kind.void
setKinds(List<String> kinds)
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 Detail
-
LOGGER
protected static final org.apache.commons.logging.Log LOGGER
Logger
-
conditions
protected Map<String,Boolean> conditions
Map of conditions and expected evaluation result
-
targetCapability
protected Capability targetCapability
Capability to be evaluated against the target node reference
-
isUndetermined
protected boolean isUndetermined
Indicates whether to return an undetermined result
-
-
Method Detail
-
setPermissions
public void setPermissions(List<String> permissions)
- Parameters:
permissions
- permissions
-
setConditions
public void setConditions(Map<String,Boolean> conditions)
- Parameters:
conditions
- conditions and expected values
-
getConditions
public Map<String,Boolean> getConditions()
- Returns:
Map
<String, Boolean > conditions and expected values
-
setKinds
public void setKinds(List<String> kinds)
- Parameters:
kinds
- list of file plan component kinds
-
getKinds
public List<String> getKinds()
- Returns:
List
<@link String > list of expected file plan component kinds
-
setKind
public void setKind(String kind)
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
public void setPermission(String permission)
Helper @see #setPermissions(List)- Parameters:
permission
- permission
-
setTargetCapability
public void setTargetCapability(Capability targetCapability)
- Parameters:
targetCapability
- target capability
-
checkPermissionsImpl
protected boolean checkPermissionsImpl(NodeRef nodeRef, String... permissions)
Check the permissions passed.- Parameters:
nodeRef
- node reference- Returns:
- boolean true if the permissions are present, false otherwise
-
checkPermissions
protected boolean checkPermissions(NodeRef nodeRef)
Checks the permissions required for the capability.- Parameters:
nodeRef
-- Returns:
-
checkConditions
protected boolean checkConditions(NodeRef nodeRef, Map<String,Boolean> conditions)
Checks the passed conditions.- Parameters:
nodeRef
-- Returns:
-
checkConditions
protected boolean checkConditions(NodeRef nodeRef)
Checks the set conditions.- Parameters:
nodeRef
- node reference- Returns:
- boolean true if conditions satisfied, false otherwise
-
checkKinds
protected boolean checkKinds(NodeRef nodeRef)
Checks that the node ref is of the expected kind- Parameters:
nodeRef
-- Returns:
-
evaluate
public int evaluate(NodeRef nodeRef)
Description copied from interface:Capability
Evaluates the capability.- Returns:
- See Also:
Capability.evaluate(org.alfresco.service.cmr.repository.NodeRef)
-
evaluate
public int evaluate(NodeRef source, NodeRef target)
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:
Capability.evaluate(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.repository.NodeRef)
-
evaluateImpl
protected int evaluateImpl(NodeRef nodeRef)
Default implementation. Given extending classes a hook point for further checks.- Parameters:
nodeRef
- node reference- Returns:
-
onEvaluate
protected int onEvaluate(NodeRef nodeRef, int result)
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:
-
-