mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Heinous merge from HEAD. Seems to basically work. Be on guard however.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4137 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -285,6 +285,9 @@
|
||||
<property name="serviceRegistry">
|
||||
<ref bean="ServiceRegistry"></ref>
|
||||
</property>
|
||||
<property name="headerEncoding">
|
||||
<value>${mail.header}</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="set-property-value" class="org.alfresco.repo.action.executer.SetPropertyValueActionExecuter" parent="action-executer">
|
||||
|
@@ -1,181 +1,202 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<!-- Default Audit Configuration -->
|
||||
|
||||
|
||||
<Audit xmlns="http://www.alfresco.org/model/audit/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" enabled="false" auditInternal="false" mode="all">
|
||||
|
||||
<!-- -->
|
||||
<!-- Global options -->
|
||||
<!-- -->
|
||||
|
||||
<!-- Do not record any additional information -->
|
||||
|
||||
<RecordOptions>
|
||||
<recordPath>false</recordPath>
|
||||
<recordFilters>false</recordFilters>
|
||||
<recordSerializedReturnValue>false</recordSerializedReturnValue>
|
||||
<recordSerializedExceptions>false</recordSerializedExceptions>
|
||||
<recordSerializedMethodArguments>false</recordSerializedMethodArguments>
|
||||
<recordSerializedKeyPropertiesBeforeInvocation>false</recordSerializedKeyPropertiesBeforeInvocation>
|
||||
<recordSerializedKeyPropertiesAferInvocation>false</recordSerializedKeyPropertiesAferInvocation>
|
||||
</RecordOptions>
|
||||
|
||||
<!-- -->
|
||||
<!-- Specific service options -->
|
||||
<!-- -->
|
||||
|
||||
<Service name="ServiceRegistry" mode="none" enabled="false"/>
|
||||
|
||||
<!-- The action service -->
|
||||
|
||||
<Service name="ActionService" mode="none">
|
||||
<Method name="executeAction" mode="all" auditInternal="true"/>
|
||||
<Method name="saveAction" mode="all"/>
|
||||
<Method name="removeAction" mode="all"/>
|
||||
<Method name="removeAllActions" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<!-- The COCI Service -->
|
||||
|
||||
<Service name="CheckOutCheckInService"/>
|
||||
|
||||
<!-- The DictionaryService -->
|
||||
<!-- There are no audtiable methods in the data dictionary service -->
|
||||
<Service name="DictionaryService" mode="none" enabled="false"/>
|
||||
|
||||
<!-- The Lock Service -->
|
||||
|
||||
<Service name="LockService"/>
|
||||
|
||||
<!-- The File/Folder Service -->
|
||||
|
||||
<Service name="FileFolderService" mode="none">
|
||||
<Method name="rename" mode="all"/>
|
||||
<Method name="move" mode="all"/>
|
||||
<Method name="copy" mode="all"/>
|
||||
<Method name="create" mode="all"/>
|
||||
<Method name="delete" mode="all"/>
|
||||
<Method name="makeFolders" mode="all"/>
|
||||
<Method name="getWriter" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="ContentService" mode="none">
|
||||
<Method name="getWriter" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="CopyService" mode="none">
|
||||
<Method name="copy" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<!-- The MimetypeService -->
|
||||
<!-- There are no audtiable methods in the mime type service -->
|
||||
<Service name="MimetypeService" mode="none" enabled="false"/>
|
||||
|
||||
<Service name="NodeService" mode="none">
|
||||
<Method name="createStore" mode="all"/>
|
||||
<Method name="createNode" mode="all"/>
|
||||
<Method name="moveNode" mode="all"/>
|
||||
<Method name="setChildAssociationIndex" mode="all"/>
|
||||
<Method name="setType" mode="all"/>
|
||||
<Method name="addAspect" mode="all"/>
|
||||
<Method name="removeAspect" mode="all"/>
|
||||
<Method name="deleteNode" mode="all"/>
|
||||
<Method name="addChild" mode="all"/>
|
||||
<Method name="removeChild" mode="all"/>
|
||||
<Method name="setProperties" mode="all"/>
|
||||
<Method name="setProperty" mode="all"/>
|
||||
<Method name="createAssociation" mode="all"/>
|
||||
<Method name="removeAssociation" mode="all"/>
|
||||
<Method name="restoreNode" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="ScriptService"/>
|
||||
|
||||
<Service name="TemplateService"/>
|
||||
|
||||
<Service name="RuleService" mode="none">
|
||||
<Method name="disableRules" mode="all"/>
|
||||
<Method name="enableRules" mode="all"/>
|
||||
<Method name="disableRule" mode="all"/>
|
||||
<Method name="enableRule" mode="all"/>
|
||||
<Method name="createRule" mode="all"/>
|
||||
<Method name="saveRule" mode="all"/>
|
||||
<Method name="removeRule" mode="all"/>
|
||||
<Method name="removeAllRules" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="CategoryService" mode="none">
|
||||
<Method name="createClassifiction" mode="all"/>
|
||||
<Method name="createRootCategory" mode="all"/>
|
||||
<Method name="createCategory" mode="all"/>
|
||||
<Method name="deleteClassification" mode="all"/>
|
||||
<Method name="deleteCategory" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="SearchService" mode="none" enabled="false"/>
|
||||
|
||||
<Service name="AuthenticationService" mode="none">
|
||||
<Method name="createAuthentication" mode="all"/>
|
||||
<Method name="updateAuthentication" mode="all"/>
|
||||
<Method name="setAuthentication" mode="all"/>
|
||||
<Method name="deleteAuthentication" mode="all"/>
|
||||
<Method name="setAuthenticationEnabled" mode="all"/>
|
||||
<Method name="authenticate" mode="all"/>
|
||||
<Method name="authenticateAsGuest" mode="all"/>
|
||||
<Method name="authenticationExists" mode="all"/>
|
||||
<Method name="invalidateUserSession" mode="all"/>
|
||||
<Method name="invalidateTicket" mode="all"/>
|
||||
<Method name="validate" mode="all"/>
|
||||
<Method name="clearCurrentSecurityContext" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="AuthorityService" mode="none">
|
||||
<Method name="createAuthority" mode="all"/>
|
||||
<Method name="addAuthority" mode="all"/>
|
||||
<Method name="removeAuthority" mode="all"/>
|
||||
<Method name="deleteAuthority" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="OwnableService" mode="none">
|
||||
<Method name="setOwner" mode="all"/>
|
||||
<Method name="takeOwnership" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="PermissionService" mode="none">
|
||||
<Method name="deletePermissions" mode="all"/>
|
||||
<Method name="clearPermission" mode="all"/>
|
||||
<Method name="deletePermission" mode="all"/>
|
||||
<Method name="setPermission" mode="all"/>
|
||||
<Method name="setInheritParentPermissions" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="PersonService" mode="none">
|
||||
<Method name="setCreateMissingPeople" mode="all"/>
|
||||
<Method name="setPersonProperties" mode="all"/>
|
||||
<Method name="createPerson" mode="all"/>
|
||||
<Method name="deletePerson" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="VersionService" mode="none">
|
||||
<Method name="createVersion" mode="all"/>
|
||||
<Method name="revert" mode="all"/>
|
||||
<Method name="restore" mode="all"/>
|
||||
<Method name="deleteVersionHistory" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="ExporterService"/>
|
||||
|
||||
<Service name="ImporterService"/>
|
||||
|
||||
<Service name="RepositoryExporterService"/>
|
||||
|
||||
<Service name="DescriptorService" mode="none" enabled="false"/>
|
||||
|
||||
<Service name="LicenseService" mode="none" enabled="false"/>
|
||||
|
||||
<Service name="NamespaceService" mode="none" enabled="false"/>
|
||||
|
||||
<Service name="TransactionService" mode="none" enabled="false"/>
|
||||
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<!-- Default Audit Configuration -->
|
||||
|
||||
|
||||
<Audit xmlns="http://www.alfresco.org/model/audit/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" enabled="false" auditInternal="false" mode="all">
|
||||
|
||||
<!-- -->
|
||||
<!-- Global options -->
|
||||
<!-- -->
|
||||
|
||||
<!-- Do not record any additional information -->
|
||||
|
||||
<RecordOptions>
|
||||
<recordPath>false</recordPath>
|
||||
<recordFilters>false</recordFilters>
|
||||
<recordSerializedReturnValue>false</recordSerializedReturnValue>
|
||||
<recordSerializedExceptions>false</recordSerializedExceptions>
|
||||
<recordSerializedMethodArguments>false</recordSerializedMethodArguments>
|
||||
<recordSerializedKeyPropertiesBeforeInvocation>false</recordSerializedKeyPropertiesBeforeInvocation>
|
||||
<recordSerializedKeyPropertiesAferInvocation>false</recordSerializedKeyPropertiesAferInvocation>
|
||||
</RecordOptions>
|
||||
|
||||
<!-- -->
|
||||
<!-- Specific service options -->
|
||||
<!-- -->
|
||||
|
||||
<Service name="ServiceRegistry" mode="none" enabled="false"/>
|
||||
|
||||
<!-- The action service -->
|
||||
|
||||
<Service name="ActionService" mode="none">
|
||||
<Method name="executeAction" mode="all" auditInternal="true"/>
|
||||
<Method name="saveAction" mode="all"/>
|
||||
<Method name="removeAction" mode="all"/>
|
||||
<Method name="removeAllActions" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<!-- The COCI Service -->
|
||||
|
||||
<Service name="CheckOutCheckInService">
|
||||
<Method name="getWorkingCopy" mode="none"/>
|
||||
</Service>
|
||||
|
||||
<!-- The DictionaryService -->
|
||||
<!-- There are no audtiable methods in the data dictionary service -->
|
||||
<Service name="DictionaryService" mode="none" enabled="false"/>
|
||||
|
||||
<!-- The Lock Service -->
|
||||
|
||||
<Service name="LockService">
|
||||
<Method name="getLockStatus" mode="none"/>
|
||||
<Method name="getLockType" mode="none"/>
|
||||
<Method name="getLocks" mode="none"/>
|
||||
</Service>
|
||||
|
||||
<!-- The File/Folder Service -->
|
||||
|
||||
<Service name="FileFolderService" mode="none">
|
||||
<Method name="rename" mode="all"/>
|
||||
<Method name="move" mode="all"/>
|
||||
<Method name="copy" mode="all" auditInternal="true"/>
|
||||
<Method name="create" mode="all"/>
|
||||
<Method name="delete" mode="all"/>
|
||||
<Method name="makeFolders" mode="all"/>
|
||||
<Method name="getWriter" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="ContentService" mode="none">
|
||||
<Method name="getWriter" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="CopyService" mode="none">
|
||||
<Method name="copy" mode="all" auditInternal="true"/>
|
||||
</Service>
|
||||
|
||||
<!-- The MimetypeService -->
|
||||
<!-- There are no audtiable methods in the mime type service -->
|
||||
<Service name="MimetypeService" mode="none" enabled="false"/>
|
||||
|
||||
<Service name="NodeService" mode="none">
|
||||
<Method name="createStore" mode="all"/>
|
||||
<Method name="createNode" mode="all"/>
|
||||
<Method name="moveNode" mode="all"/>
|
||||
<Method name="setChildAssociationIndex" mode="all"/>
|
||||
<Method name="setType" mode="all"/>
|
||||
<Method name="addAspect" mode="all"/>
|
||||
<Method name="removeAspect" mode="all"/>
|
||||
<Method name="deleteNode" mode="all"/>
|
||||
<Method name="addChild" mode="all"/>
|
||||
<Method name="removeChild" mode="all"/>
|
||||
<Method name="setProperties" mode="all"/>
|
||||
<Method name="setProperty" mode="all"/>
|
||||
<Method name="createAssociation" mode="all"/>
|
||||
<Method name="removeAssociation" mode="all"/>
|
||||
<Method name="restoreNode" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="ScriptService" auditInternal="true"/>
|
||||
|
||||
<Service name="TemplateService" auditInternal="true">
|
||||
<Method name="getTemplateProcessor" mode="none"/>
|
||||
</Service>
|
||||
|
||||
<Service name="RuleService" mode="none" auditInternal="true">
|
||||
<Method name="disableRules" mode="all"/>
|
||||
<Method name="enableRules" mode="all"/>
|
||||
<Method name="disableRule" mode="all"/>
|
||||
<Method name="enableRule" mode="all"/>
|
||||
<Method name="createRule" mode="all"/>
|
||||
<Method name="saveRule" mode="all"/>
|
||||
<Method name="removeRule" mode="all"/>
|
||||
<Method name="removeAllRules" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="CategoryService" mode="none">
|
||||
<Method name="createClassifiction" mode="all"/>
|
||||
<Method name="createRootCategory" mode="all"/>
|
||||
<Method name="createCategory" mode="all"/>
|
||||
<Method name="deleteClassification" mode="all"/>
|
||||
<Method name="deleteCategory" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="SearchService" mode="none" enabled="false"/>
|
||||
|
||||
<Service name="AuthenticationService" mode="none">
|
||||
<Method name="createAuthentication" mode="all"/>
|
||||
<Method name="updateAuthentication" mode="all"/>
|
||||
<Method name="setAuthentication" mode="all"/>
|
||||
<Method name="deleteAuthentication" mode="all"/>
|
||||
<Method name="setAuthenticationEnabled" mode="all"/>
|
||||
<Method name="authenticate" mode="all"/>
|
||||
<Method name="authenticateAsGuest" mode="all"/>
|
||||
<Method name="authenticationExists" mode="all"/>
|
||||
<Method name="invalidateUserSession" mode="all"/>
|
||||
<Method name="invalidateTicket" mode="all"/>
|
||||
<Method name="validate" mode="all"/>
|
||||
<Method name="clearCurrentSecurityContext" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="AuthorityService" mode="none">
|
||||
<Method name="createAuthority" mode="all"/>
|
||||
<Method name="addAuthority" mode="all"/>
|
||||
<Method name="removeAuthority" mode="all"/>
|
||||
<Method name="deleteAuthority" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="OwnableService" mode="none">
|
||||
<Method name="setOwner" mode="all"/>
|
||||
<Method name="takeOwnership" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="PermissionService" mode="none">
|
||||
<Method name="deletePermissions" mode="all"/>
|
||||
<Method name="clearPermission" mode="all"/>
|
||||
<Method name="deletePermission" mode="all"/>
|
||||
<Method name="setPermission" mode="all"/>
|
||||
<Method name="setInheritParentPermissions" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="PersonService" mode="none">
|
||||
<Method name="setCreateMissingPeople" mode="all"/>
|
||||
<Method name="setPersonProperties" mode="all"/>
|
||||
<Method name="createPerson" mode="all"/>
|
||||
<Method name="deletePerson" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="VersionService" mode="none">
|
||||
<Method name="createVersion" mode="all"/>
|
||||
<Method name="revert" mode="all"/>
|
||||
<Method name="restore" mode="all"/>
|
||||
<Method name="deleteVersionHistory" mode="all"/>
|
||||
</Service>
|
||||
|
||||
<Service name="ExporterService"/>
|
||||
|
||||
<Service name="ImporterService"/>
|
||||
|
||||
<Service name="RepositoryExporterService"/>
|
||||
|
||||
<Service name="DescriptorService" mode="none" enabled="false"/>
|
||||
|
||||
<Service name="LicenseService" mode="none" enabled="false"/>
|
||||
|
||||
<Service name="NamespaceService" mode="none" enabled="false"/>
|
||||
|
||||
<Service name="TransactionService" mode="none" enabled="false"/>
|
||||
|
||||
<Service name="WorkflowService" auditInternal="true">
|
||||
<Method name="isDefinitionDeployed" mode="none"/>
|
||||
<Method name="getDefinitions" mode="none"/>
|
||||
<Method name="getDefinitionById" mode="none"/>
|
||||
<Method name="getDefinitionByName" mode="none"/>
|
||||
<Method name="getActiveWorkflows" mode="none"/>
|
||||
<Method name="getWorkflowPaths" mode="none"/>
|
||||
<Method name="getTasksForWorkflowPath" mode="none"/>
|
||||
<Method name="getTaskById" mode="none"/>
|
||||
<Method name="getAssignedTasks" mode="none"/>
|
||||
<Method name="getPooledTasks" mode="none"/>
|
||||
</Service>
|
||||
|
||||
</Audit>
|
@@ -204,8 +204,12 @@
|
||||
|
||||
<!--
|
||||
<bean id="authenticationComponentImpl" class="org.alfresco.repo.security.authentication.SimpleAcceptOrRejectAllAuthenticationComponentImpl">
|
||||
<property name="accept">
|
||||
<value>true</value>
|
||||
</property>
|
||||
</bean>
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -237,12 +241,6 @@
|
||||
<property name="storeUrl">
|
||||
<value>${spaces.store}</value>
|
||||
</property>
|
||||
<!-- The path to the company home space, used to set the -->
|
||||
<!-- default home space for users that are created if -->
|
||||
<!-- missing. -->
|
||||
<property name="companyHomePath">
|
||||
<value>/${spaces.company_home.childname}</value>
|
||||
</property>
|
||||
<!-- Some authentication mechanisms may need to create people -->
|
||||
<!-- in the repository on demand. This enables that feature. -->
|
||||
<!-- If dsiabled an error will be generated for missing -->
|
||||
@@ -260,6 +258,88 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean name="homeFolderManager" class="org.alfresco.repo.security.person.HomeFolderManager">
|
||||
<property name="nodeService">
|
||||
<ref bean="nodeService" />
|
||||
</property>
|
||||
<property name="policyComponent">
|
||||
<ref bean="policyComponent" />
|
||||
</property>
|
||||
<property name="defaultProvider">
|
||||
<ref bean="personalHomeFolderProvider" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean name="companyHomeFolderProvider" class="org.alfresco.repo.security.person.ExistingPathBasedHomeFolderProvider">
|
||||
<property name="serviceRegistry">
|
||||
<ref bean="ServiceRegistry" />
|
||||
</property>
|
||||
<property name="path">
|
||||
<value>/${spaces.company_home.childname}</value>
|
||||
</property>
|
||||
<property name="storeUrl">
|
||||
<value>${spaces.store}</value>
|
||||
</property>
|
||||
<property name="homeFolderManager">
|
||||
<ref bean="homeFolderManager" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean name="guestHomeFolderProvider" class="org.alfresco.repo.security.person.ExistingPathBasedHomeFolderProvider">
|
||||
<property name="serviceRegistry">
|
||||
<ref bean="ServiceRegistry" />
|
||||
</property>
|
||||
<property name="path">
|
||||
<value>/${spaces.company_home.childname}/${spaces.guest_home.childname}</value>
|
||||
</property>
|
||||
<property name="storeUrl">
|
||||
<value>${spaces.store}</value>
|
||||
</property>
|
||||
<property name="homeFolderManager">
|
||||
<ref bean="homeFolderManager" />
|
||||
</property>
|
||||
<property name="userPemissions">
|
||||
<set>
|
||||
<value>Consumer</value>
|
||||
</set>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean name="bootstrapHomeFolderProvider" class="org.alfresco.repo.security.person.BootstrapHomeFolderProvider">
|
||||
<property name="homeFolderManager">
|
||||
<ref bean="homeFolderManager" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean name="personalHomeFolderProvider" class="org.alfresco.repo.security.person.UIDBasedHomeFolderProvider">
|
||||
<property name="serviceRegistry">
|
||||
<ref bean="ServiceRegistry" />
|
||||
</property>
|
||||
<property name="path">
|
||||
<value>/${spaces.company_home.childname}</value>
|
||||
</property>
|
||||
<property name="storeUrl">
|
||||
<value>${spaces.store}</value>
|
||||
</property>
|
||||
<property name="homeFolderManager">
|
||||
<ref bean="homeFolderManager" />
|
||||
</property>
|
||||
<property name="inheritsPermissionsOnCreate">
|
||||
<value>false</value>
|
||||
</property>
|
||||
<property name="ownerPemissionsToSetOnCreate">
|
||||
<set>
|
||||
<value>All</value>
|
||||
</set>
|
||||
</property>
|
||||
<property name="userPemissions">
|
||||
<set>
|
||||
<value>All</value>
|
||||
</set>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
||||
<!-- The ticket component. -->
|
||||
<!-- Used for reauthentication -->
|
||||
<bean id="ticketComponent" class="org.alfresco.repo.security.authentication.InMemoryTicketComponentImpl">
|
||||
|
@@ -157,6 +157,35 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="workflowBootstrap" parent="workflowDeployer">
|
||||
<property name="workflowDefinitions">
|
||||
<list>
|
||||
<props>
|
||||
<prop key="engineId">jbpm</prop>
|
||||
<prop key="location">alfresco/workflow/review_processdefinition.xml</prop>
|
||||
<prop key="mimetype">text/xml</prop>
|
||||
<prop key="redeploy">true</prop>
|
||||
</props>
|
||||
<props>
|
||||
<prop key="engineId">jbpm</prop>
|
||||
<prop key="location">alfresco/workflow/adhoc_processdefinition.xml</prop>
|
||||
<prop key="mimetype">text/xml</prop>
|
||||
<prop key="redeploy">true</prop>
|
||||
</props>
|
||||
</list>
|
||||
</property>
|
||||
<property name="models">
|
||||
<list>
|
||||
<value>alfresco/model/workflowModel.xml</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="labels">
|
||||
<list>
|
||||
<value>alfresco/workflow/workflow-messages</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Descriptor Service -->
|
||||
|
||||
<bean id="descriptorComponent" class="org.alfresco.repo.descriptor.DescriptorServiceImpl">
|
||||
|
@@ -24,6 +24,7 @@
|
||||
<cm:email></cm:email>
|
||||
<cm:organizationId></cm:organizationId>
|
||||
<cm:homeFolder>/${spaces.company_home.childname}</cm:homeFolder>
|
||||
<cm:homeFolderProvider>bootstrapHomeFolderProvider</cm:homeFolderProvider>
|
||||
</cm:person>
|
||||
<!-- Guest needs to read their own person information -->
|
||||
<cm:person view:childName="cm:person">
|
||||
@@ -39,10 +40,11 @@
|
||||
<cm:email></cm:email>
|
||||
<cm:organizationId></cm:organizationId>
|
||||
<cm:homeFolder>/${spaces.company_home.childname}/${spaces.guest_home.childname}</cm:homeFolder>
|
||||
<cm:homeFolderProvider>bootstrapHomeFolderProvider</cm:homeFolderProvider>
|
||||
</cm:person>
|
||||
</sys:children>
|
||||
</sys:container>
|
||||
<cm:folder view:childName="${system.workflow_container.childname}"/>
|
||||
<sys:container view:childName="${system.workflow_container.childname}"/>
|
||||
</sys:children>
|
||||
</sys:container>
|
||||
|
||||
|
@@ -2,24 +2,12 @@
|
||||
xmlns:cm="http://www.alfresco.org/model/content/1.0"
|
||||
xmlns:app="http://www.alfresco.org/model/application/1.0">
|
||||
|
||||
<!--
|
||||
<cm:folder>
|
||||
<app:uifacets />
|
||||
<cm:name>${tutorial.space.name}</cm:name>
|
||||
<cm:description>${tutorial.space.description}</cm:description>
|
||||
<app:icon>space-icon-doc</app:icon>
|
||||
<cm:contains>
|
||||
-->
|
||||
<cm:content>
|
||||
<app:uifacets />
|
||||
<cm:name>${tutorial.document.name}</cm:name>
|
||||
<cm:title>${tutorial.document.title}</cm:title>
|
||||
<cm:description>${tutorial.document.description}</cm:description>
|
||||
<cm:content>contentUrl=classpath:alfresco/bootstrap/${tutorial.document.name}|mimetype=application/pdf|size=|encoding=</cm:content>
|
||||
</cm:content>
|
||||
<!--
|
||||
</cm:contains>
|
||||
</cm:folder>
|
||||
-->
|
||||
<cm:content>
|
||||
<app:uifacets />
|
||||
<cm:name>${tutorial.document.name}</cm:name>
|
||||
<cm:title>${tutorial.document.title}</cm:title>
|
||||
<cm:description>${tutorial.document.description}</cm:description>
|
||||
<cm:content>contentUrl=classpath:alfresco/bootstrap/Alfresco-Tutorial.pdf|mimetype=application/pdf|size=|encoding=</cm:content>
|
||||
</cm:content>
|
||||
|
||||
</view:view>
|
||||
|
File diff suppressed because it is too large
Load Diff
38
config/alfresco/desktop/dumpRequest.js
Normal file
38
config/alfresco/desktop/dumpRequest.js
Normal file
@@ -0,0 +1,38 @@
|
||||
// Main action
|
||||
|
||||
function runAction()
|
||||
{
|
||||
out.println("Dump request details :-");
|
||||
out.println(" Folder node = " + deskParams.getFolderNode());
|
||||
var folder = deskParams.getFolder();
|
||||
out.println(" Folder path = " + folder.getFullName());
|
||||
out.println(" Number of targets = " + deskParams.numberOfTargetNodes());
|
||||
|
||||
if ( deskParams.numberOfTargetNodes() > 0) {
|
||||
out.println(" Targets:");
|
||||
|
||||
for ( var i = 0; i < deskParams.numberOfTargetNodes(); i++) {
|
||||
var target = deskParams.getTarget( i);
|
||||
out.println(" Type = " + target.getTypeAsString() + ", path = " + target.getTarget());
|
||||
out.println(" Node = " + target.getNode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Run the action
|
||||
//
|
||||
// Response :-
|
||||
// Success - no return or return 0, or "0,<message>"
|
||||
// For error or control response then return a string :-
|
||||
// Error - "1,<error message>"
|
||||
// FileNotFound - "2,<message>"
|
||||
// AccessDenied - "3,<message>"
|
||||
// BadParameter - "4,<message>
|
||||
// NotWorkingCopy - "5,<message>"
|
||||
// NoSuchAction - "6,<message>
|
||||
// LaunchURL - "7,<URL>"
|
||||
// CommandLine - "8,<commandline>"
|
||||
|
||||
runAction();
|
||||
var response = "0,Javascript completed successfully";
|
||||
response;
|
38
config/alfresco/extension/index-recovery-context.xml.sample
Normal file
38
config/alfresco/extension/index-recovery-context.xml.sample
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Forces the reindexing of nodes where content may have been missing before -->
|
||||
<!--
|
||||
This component can be triggered at intervals where asynchronous content sharing
|
||||
between clustered servers has been set up.
|
||||
-->
|
||||
<bean id="missingContentReindexTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
<bean class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.node.index.IndexRecoveryJob</value>
|
||||
</property>
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="indexRecoveryComponent">
|
||||
<ref bean="missingContentReindexComponent" />
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<!-- Give the server 5 minutes and then check for missing content -->
|
||||
<property name="startDelayMinutes">
|
||||
<value>5</value>
|
||||
</property>
|
||||
<property name="repeatCount">
|
||||
<value>0</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
</beans>
|
463
config/alfresco/extension/ldap-authentication-context.xml.sample
Normal file
463
config/alfresco/extension/ldap-authentication-context.xml.sample
Normal file
@@ -0,0 +1,463 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- DAO that rejects changes - LDAP is read only at the moment -->
|
||||
|
||||
<bean id="alfDaoImpl" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
|
||||
<property name="proxyInterfaces">
|
||||
<value>org.alfresco.repo.security.authentication.MutableAuthenticationDao</value>
|
||||
</property>
|
||||
<property name="transactionManager">
|
||||
<ref bean="transactionManager" />
|
||||
</property>
|
||||
<property name="target">
|
||||
<bean class="org.alfresco.repo.security.authentication.ntlm.NullMutableAuthenticationDao" />
|
||||
</property>
|
||||
<property name="transactionAttributes">
|
||||
<props>
|
||||
<prop key="*">${server.transaction.mode.default}</prop>
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- LDAP authentication configuration -->
|
||||
|
||||
<!--
|
||||
|
||||
You can also use JAAS authentication for Kerberos against Active Directory or NTLM if you also require single sign on from the
|
||||
web browser. You do not have to use LDAP authentication to synchronise groups and users from an LDAP store if it supports other
|
||||
authentication routes, like Active Directory.
|
||||
|
||||
-->
|
||||
|
||||
<bean id="authenticationComponentImpl" class="org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl">
|
||||
<property name="LDAPInitialDirContextFactory">
|
||||
<ref bean="ldapInitialDirContextFactory"/>
|
||||
</property>
|
||||
<property name="userNameFormat">
|
||||
<!--
|
||||
|
||||
This maps between what the user types in and what is passed through to the underlying LDAP authentication.
|
||||
|
||||
"%s" - the user id is passed through without modification.
|
||||
Used for LDAP authentication such as DIGEST-MD5, anything that is not "simple".
|
||||
|
||||
"cn=%s,ou=London,dc=company,dc=com" - If the user types in "Joe Bloggs" the authentricate as "cn=Joe Bloggs,ou=London,dc=company,dc=com"
|
||||
Usually for simple authentication.
|
||||
|
||||
-->
|
||||
<value>%s</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!--
|
||||
|
||||
This bean is used to support general LDAP authentication. It is also used to provide read only access to users and groups
|
||||
to pull them out of the LDAP reopsitory
|
||||
|
||||
-->
|
||||
|
||||
<bean id="ldapInitialDirContextFactory" class="org.alfresco.repo.security.authentication.ldap.LDAPInitialDirContextFactoryImpl">
|
||||
<property name="initialDirContextEnvironment">
|
||||
<map>
|
||||
<!-- The LDAP provider -->
|
||||
<entry key="java.naming.factory.initial">
|
||||
<value>com.sun.jndi.ldap.LdapCtxFactory</value>
|
||||
</entry>
|
||||
|
||||
<!-- The url to the LDAP server -->
|
||||
<!-- Note you can use space separated urls - they will be tried in turn until one works -->
|
||||
<!-- This could be used to authenticate against one or more ldap servers (you will not know which one ....) -->
|
||||
<entry key="java.naming.provider.url">
|
||||
<value>ldap://openldap.domain.com:389</value>
|
||||
</entry>
|
||||
|
||||
<!-- The authentication mechanism to use -->
|
||||
<!-- Some sasl authentication mechanisms may require a realm to be set -->
|
||||
<!-- java.naming.security.sasl.realm -->
|
||||
<!-- The available options will depend on your LDAP provider -->
|
||||
<entry key="java.naming.security.authentication">
|
||||
<value>DIGEST-MD5</value>
|
||||
</entry>
|
||||
|
||||
<!-- The id of a user who can read group and user information -->
|
||||
<!-- This does not go through the pattern substitution defined above and is used "as is" -->
|
||||
<entry key="java.naming.security.principal">
|
||||
<value>reader</value>
|
||||
</entry>
|
||||
|
||||
<!-- The password for the user defined above -->
|
||||
<entry key="java.naming.security.credentials">
|
||||
<value>secret</value>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Ldap Syncronisation support -->
|
||||
|
||||
<!--
|
||||
|
||||
There can be more than one stack of beans that import users or groups. For example, it may be easier
|
||||
to have a version of ldapPeopleExportSource, and associated beans, for each sub-tree of your ldap directory
|
||||
from which you want to import users. You could then limit users to be imported from two or more sub tress and ignore
|
||||
users found else where. The same applies to the import of groups.
|
||||
|
||||
The defaults shown below are for OpenLDAP.
|
||||
|
||||
-->
|
||||
|
||||
|
||||
<!-- Extract user information from LDAP and transform this to XML -->
|
||||
|
||||
<bean id="ldapPeopleExportSource" class="org.alfresco.repo.security.authentication.ldap.LDAPPersonExportSource">
|
||||
<!--
|
||||
The query to select objects that represent the users to import.
|
||||
|
||||
For Open LDAP, using a basic schema, the following is probably what you want:
|
||||
(objectclass=inetOrgPerson)
|
||||
|
||||
For Active Directory:
|
||||
(objectclass=user)
|
||||
-->
|
||||
<property name="personQuery">
|
||||
<value>(objectclass=inetOrgPerson)</value>
|
||||
</property>
|
||||
|
||||
<!--
|
||||
The seach base restricts the LDAP query to a sub section of tree on the LDAP server.
|
||||
-->
|
||||
<property name="searchBase">
|
||||
<value>dc=alfresco,dc=org</value>
|
||||
</property>
|
||||
|
||||
<!--
|
||||
The unique identifier for the user.
|
||||
|
||||
THIS MUST MATCH WHAT THE USER TYPES IN AT THE LOGIN PROMPT
|
||||
|
||||
For simple LDAP authentication this is likely to be "cn" or, less friendly, "distinguishedName"
|
||||
|
||||
In OpenLDAP, using other authentication mechanisms "uid", but this depends on how you map
|
||||
from the id in the LDAP authentication request to search for the inetOrgPerson against which
|
||||
to authenticate.
|
||||
|
||||
In Active Directory this is most likely to be "sAMAccountName"
|
||||
|
||||
This property is mandatory and must appear on all users found by the query defined above.
|
||||
|
||||
-->
|
||||
<property name="userIdAttributeName">
|
||||
<value>uid</value>
|
||||
</property>
|
||||
|
||||
<!-- Services -->
|
||||
<property name="LDAPInitialDirContextFactory">
|
||||
<ref bean="ldapInitialDirContextFactory"/>
|
||||
</property>
|
||||
<property name="personService">
|
||||
<ref bean="personService"></ref>
|
||||
</property>
|
||||
<property name="namespaceService">
|
||||
<ref bean="namespaceService"/>
|
||||
</property>
|
||||
|
||||
<!--
|
||||
The path to the location of a space to use as the default home folder.
|
||||
This folder should be readable by all users, or a group to which all imported users belong.
|
||||
-->
|
||||
<property name="defaultHomeFolder">
|
||||
<value>/app:company_home</value>
|
||||
</property>
|
||||
|
||||
<!--
|
||||
This property defines a mapping between attributes held on LDAP user objects and
|
||||
the properties of user objects held in the repository. The key is the QName of an attribute in
|
||||
the repository, the value is the attribute name from the user/inetOrgPerson/.. object in the
|
||||
LDAP repository.
|
||||
-->
|
||||
<property name="attributeMapping">
|
||||
<map>
|
||||
<entry key="cm:userName">
|
||||
<!-- Must match the same attribute as userIdAttributeName -->
|
||||
<value>uid</value>
|
||||
</entry>
|
||||
<entry key="cm:firstName">
|
||||
<!-- OpenLDAP: "givenName" -->
|
||||
<!-- Active Directory: "givenName" -->
|
||||
<value>givenName</value>
|
||||
</entry>
|
||||
<entry key="cm:lastName">
|
||||
<!-- OpenLDAP: "sn" -->
|
||||
<!-- Active Directory: "sn" -->
|
||||
<value>sn</value>
|
||||
</entry>
|
||||
<entry key="cm:email">
|
||||
<!-- OpenLDAP: "mail" -->
|
||||
<!-- Active Directory: "???" -->
|
||||
<value>mail</value>
|
||||
</entry>
|
||||
<entry key="cm:organizationId">
|
||||
<!-- OpenLDAP: "o" -->
|
||||
<!-- Active Directory: "???" -->
|
||||
<value>o</value>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Extract group information from LDAP and transform this to XML -->
|
||||
|
||||
<bean id="ldapGroupExportSource" class="org.alfresco.repo.security.authentication.ldap.LDAPGroupExportSource">
|
||||
<!--
|
||||
The query to select objects that represent the groups to import.
|
||||
|
||||
For Open LDAP, using a basic schema, the following is probably what you want:
|
||||
(objectclass=groupOfNames)
|
||||
|
||||
For Active Directory:
|
||||
(objectclass=group)
|
||||
-->
|
||||
<property name="groupQuery">
|
||||
<value>(objectclass=groupOfNames)</value>
|
||||
</property>
|
||||
|
||||
<!--
|
||||
The seach base restricts the LDAP query to a sub section of tree on the LDAP server.
|
||||
-->
|
||||
<property name="searchBase">
|
||||
<value>dc=alfresco,dc=org</value>
|
||||
</property>
|
||||
|
||||
<!--
|
||||
The unique identifier for the user. This must match the userIdAttributeName on the ldapPeopleExportSource bean above.
|
||||
-->
|
||||
<property name="userIdAttributeName">
|
||||
<value>uid</value>
|
||||
</property>
|
||||
|
||||
<!--
|
||||
An attribute that is a unique identifier for each group found.
|
||||
This is also the name of the group with the current group implementation.
|
||||
This is mandatory for any groups found.
|
||||
|
||||
OpenLDAP: "cn" as it is mandatory on groupOfNames
|
||||
Active Directory: "cn"
|
||||
|
||||
-->
|
||||
<property name="groupIdAttributeName">
|
||||
<value>cn</value>
|
||||
</property>
|
||||
|
||||
<!--
|
||||
The objectClass attribute for group members.
|
||||
For each member of a group, the distinguished name is given.
|
||||
The object is looked up by its DN. If the object is of this class it is treated as a group.
|
||||
-->
|
||||
<property name="groupType">
|
||||
<value>groupOfNames</value>
|
||||
</property>
|
||||
|
||||
<!--
|
||||
The objectClass attribute for person members.
|
||||
For each member of a group, the distinguished name is given.
|
||||
The object is looked up by its DN. If the object is of this class it is treated as a person.
|
||||
-->
|
||||
<property name="personType">
|
||||
<value>inetOrgPerson</value>
|
||||
</property>
|
||||
<property name="LDAPInitialDirContextFactory">
|
||||
<ref bean="ldapInitialDirContextFactory"/>
|
||||
</property>
|
||||
<property name="namespaceService">
|
||||
<ref bean="namespaceService"/>
|
||||
</property>
|
||||
|
||||
<!--
|
||||
The repeating attribute on group objects (found by query or as sub groups)
|
||||
used to define membership of the group. This is assumed to hold distinguished names of
|
||||
other groups or users/people; the above types are used to determine this.
|
||||
|
||||
OpenLDAP: "member" as it is mandatory on groupOfNames
|
||||
Active Directory: "member"
|
||||
|
||||
-->
|
||||
<property name="memberAttribute">
|
||||
<value>member</value>
|
||||
</property>
|
||||
|
||||
<property name="authorityDAO">
|
||||
<ref bean="authorityDAO"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Job definitions to import LDAP people and groups -->
|
||||
<!-- The triggers register themselves with the scheduler -->
|
||||
<!-- You may comment in the default scheduler to enable these triggers -->
|
||||
<!-- If a cron base trigger is what you want seee scheduled-jobs-context.xml for examples. -->
|
||||
|
||||
<!-- Trigger to load poeple -->
|
||||
<!-- Note you can have more than one initial (context, trigger, import job and export source) set -->
|
||||
<!-- This would allow you to load people from more than one ldap store -->
|
||||
|
||||
<bean id="ldapPeopleTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
<bean id="ldapPeopleJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.importer.ImporterJob</value>
|
||||
</property>
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="bean">
|
||||
<ref bean="ldapPeopleImport"/>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<!-- Start after 30 seconds of starting the repository -->
|
||||
<property name="startDelay">
|
||||
<value>30000</value>
|
||||
</property>
|
||||
<!-- Repeat every hour -->
|
||||
<property name="repeatInterval">
|
||||
<value>3600000</value>
|
||||
</property>
|
||||
<!-- Commented out to disable
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
-->
|
||||
</bean>
|
||||
|
||||
<bean id="ldapGroupTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
<bean id="ldapGroupJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.importer.ImporterJob</value>
|
||||
</property>
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="bean">
|
||||
<ref bean="ldapGroupImport"/>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<!-- Start after 30 seconds of starting the repository -->
|
||||
<property name="startDelay">
|
||||
<value>30000</value>
|
||||
</property>
|
||||
<!-- Repeat every hour -->
|
||||
<property name="repeatInterval">
|
||||
<value>3600000</value>
|
||||
</property>
|
||||
<!-- Commented out to disable
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
-->
|
||||
</bean>
|
||||
|
||||
<!-- The bean that imports xml describing people -->
|
||||
|
||||
<bean id="ldapPeopleImport" class="org.alfresco.repo.importer.ExportSourceImporter">
|
||||
<property name="importerService">
|
||||
<ref bean="importerComponent"/>
|
||||
</property>
|
||||
<property name="transactionService">
|
||||
<ref bean="transactionComponent"/>
|
||||
</property>
|
||||
<property name="authenticationComponent">
|
||||
<ref bean="authenticationComponent"/>
|
||||
</property>
|
||||
<property name="exportSource">
|
||||
<ref bean="ldapPeopleExportSource"/>
|
||||
</property>
|
||||
|
||||
<!-- The store that contains people - this should not be changed -->
|
||||
<property name="storeRef">
|
||||
<value>${spaces.store}</value>
|
||||
</property>
|
||||
|
||||
<!-- The location of people nodes within the store defined above - this should not be changed -->
|
||||
<property name="path">
|
||||
<value>/${system.system_container.childname}/${system.people_container.childname}</value>
|
||||
</property>
|
||||
|
||||
<!-- If true, clear all existing people before import, if false update/add people from the xml -->
|
||||
<property name="clearAllChildren">
|
||||
<value>false</value>
|
||||
</property>
|
||||
<property name="nodeService">
|
||||
<ref bean="nodeService"/>
|
||||
</property>
|
||||
<property name="searchService">
|
||||
<ref bean="searchService"/>
|
||||
</property>
|
||||
<property name="namespacePrefixResolver">
|
||||
<ref bean="namespaceService"/>
|
||||
</property>
|
||||
|
||||
|
||||
<property name="caches">
|
||||
<set>
|
||||
<ref bean="permissionsAccessCache"/>
|
||||
</set>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- The bean that imports xml descibing groups -->
|
||||
|
||||
<bean id="ldapGroupImport" class="org.alfresco.repo.importer.ExportSourceImporter">
|
||||
<property name="importerService">
|
||||
<ref bean="importerComponent"/>
|
||||
</property>
|
||||
<property name="transactionService">
|
||||
<ref bean="transactionComponent"/>
|
||||
</property>
|
||||
<property name="authenticationComponent">
|
||||
<ref bean="authenticationComponent"/>
|
||||
</property>
|
||||
<property name="exportSource">
|
||||
<ref bean="ldapGroupExportSource"/>
|
||||
</property>
|
||||
<!-- The store that contains group information - this should not be changed -->
|
||||
<property name="storeRef">
|
||||
<value>${alfresco_user_store.store}</value>
|
||||
</property>
|
||||
|
||||
<!-- The location of group information in the store above - this should not be changed -->
|
||||
<property name="path">
|
||||
<value>/${alfresco_user_store.system_container.childname}/${alfresco_user_store.authorities_container.childname}</value>
|
||||
</property>
|
||||
|
||||
<!-- If true, clear all existing groups before import, if false update/add groups from the xml -->
|
||||
<property name="clearAllChildren">
|
||||
<value>true</value>
|
||||
</property>
|
||||
<property name="nodeService">
|
||||
<ref bean="nodeService"/>
|
||||
</property>
|
||||
<property name="searchService">
|
||||
<ref bean="searchService"/>
|
||||
</property>
|
||||
<property name="namespacePrefixResolver">
|
||||
<ref bean="namespaceService"/>
|
||||
</property>
|
||||
|
||||
<!-- caches to clear on import of groups -->
|
||||
<property name="caches">
|
||||
<set>
|
||||
<ref bean="userToAuthorityCache"/>
|
||||
<ref bean="permissionsAccessCache"/>
|
||||
</set>
|
||||
</property>
|
||||
|
||||
<!-- userToAuthorityCache -->
|
||||
</bean>
|
||||
|
||||
</beans>
|
@@ -50,6 +50,7 @@
|
||||
<!-- URL - launches a URL via the Windows shell -->
|
||||
<!-- CmdLine - launches the Notepad application -->
|
||||
<!-- CheckInOut - checks files in/out, drag and drop files onto the application -->
|
||||
<!-- JavaScript - run a server-side script -->
|
||||
<!--
|
||||
<desktopActions>
|
||||
<global>
|
||||
@@ -76,6 +77,15 @@
|
||||
<name>CheckInOut</name>
|
||||
<filename>__AlfrescoCheckInOut.exe</filename>
|
||||
</action>
|
||||
<action>
|
||||
<class>org.alfresco.filesys.smb.server.repo.desk.JavaScriptDesktopAction</class>
|
||||
<name>JavaScript</name>
|
||||
<filename>__AlfrescoScript.exe</filename>
|
||||
<script>alfresco/desktop/dumpRequest.js</script>
|
||||
<attributes>anyFiles, multiplePaths , allowNoParams</attributes>
|
||||
<preprocess>confirm, copyToTarget</preprocess>
|
||||
</action>
|
||||
|
||||
</desktopActions>
|
||||
-->
|
||||
|
||||
|
@@ -53,6 +53,47 @@
|
||||
<ref bean="ownableService" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
||||
<bean id="importerComponentWithBehaviour" class="org.alfresco.repo.importer.ImporterComponent">
|
||||
<!-- For now, hard-wire the view parser -->
|
||||
<property name="namespaceService">
|
||||
<ref bean="NamespaceService" />
|
||||
</property>
|
||||
<property name="dictionaryService">
|
||||
<ref bean="DictionaryService" />
|
||||
</property>
|
||||
<property name="nodeService">
|
||||
<ref bean="NodeService" />
|
||||
</property>
|
||||
<property name="contentService">
|
||||
<ref bean="ContentService" />
|
||||
</property>
|
||||
<property name="ruleService">
|
||||
<ref bean="RuleService" />
|
||||
</property>
|
||||
<property name="permissionService">
|
||||
<ref bean="PermissionService" />
|
||||
</property>
|
||||
<property name="authorityService">
|
||||
<ref bean="AuthorityService" />
|
||||
</property>
|
||||
<property name="authenticationService">
|
||||
<ref bean="AuthenticationService" />
|
||||
</property>
|
||||
<property name="viewParser">
|
||||
<ref bean="viewParser" />
|
||||
</property>
|
||||
<property name="behaviourFilter">
|
||||
<ref bean="unboundPolicyBehaviourFilter" />
|
||||
</property>
|
||||
<property name="searchService">
|
||||
<ref bean="searchService" />
|
||||
</property>
|
||||
<property name="ownableService">
|
||||
<ref bean="ownableService" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="exporterComponent" class="org.alfresco.repo.exporter.ExporterComponent">
|
||||
<property name="namespaceService">
|
||||
|
@@ -4,10 +4,10 @@
|
||||
<beans>
|
||||
|
||||
<bean id="indexRecoveryComponentBase" abstract="true" >
|
||||
<property name="sessionFactory">
|
||||
<ref bean="sessionFactory" />
|
||||
<property name="authenticationComponent">
|
||||
<ref bean="authenticationComponentImpl" />
|
||||
</property>
|
||||
<property name="transactionService">
|
||||
<property name="transactionComponent">
|
||||
<ref bean="transactionComponent" />
|
||||
</property>
|
||||
<property name="indexer">
|
||||
@@ -22,62 +22,33 @@
|
||||
<property name="nodeService">
|
||||
<ref bean="nodeService" />
|
||||
</property>
|
||||
<property name="nodeDaoService">
|
||||
<ref bean="nodeDaoService" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- full node index recovery -->
|
||||
<bean id="indexRecoveryComponent" class="org.alfresco.repo.node.index.FullIndexRecoveryComponent" parent="indexRecoveryComponentBase">
|
||||
<!-- Properties controlling full index rebuilding / tracking -->
|
||||
<property name="executeFullRecovery">
|
||||
<value>false</value> <!-- enable this to start the full index recovery -->
|
||||
</property>
|
||||
<property name="runContinuously">
|
||||
<value>false</value> <!-- ensure the index is up to date and then stop -->
|
||||
</property>
|
||||
<property name="waitTime">
|
||||
<value>1000</value> <!-- milliseconds to wait between checks for new transactions -->
|
||||
</property>
|
||||
<property name="l2CacheMode">
|
||||
<value>NORMAL</value> <!-- normal L2 cache usage (database is changed by this server only) -->
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- attempt to reindex content that was missing before -->
|
||||
<!-- index recovery and validation -->
|
||||
<!--
|
||||
<bean id="missingContentReindexComponent" class="org.alfresco.repo.node.index.MissingContentReindexComponent" parent="indexRecoveryComponentBase">
|
||||
<property name="runContinuously">
|
||||
<value>false</value>
|
||||
</property>
|
||||
<property name="waitTime">
|
||||
<value>300000</value>
|
||||
Recovery types are:
|
||||
NONE: Ignore
|
||||
VALIDATE: Checks that the last transaction for each store is represented in the indexes
|
||||
AUTO: Validates and auto-recovers if validation fails
|
||||
FULL: Full index rebuild, processing all transactions in order. The server is temporarily suspended.
|
||||
-->
|
||||
<bean
|
||||
id="indexRecoveryComponent"
|
||||
class="org.alfresco.repo.node.index.FullIndexRecoveryComponent"
|
||||
parent="indexRecoveryComponentBase">
|
||||
<property name="recoveryMode">
|
||||
<value>${index.recovery.mode}</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="missingContentReindexTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
<bean id="IndexRecoveryJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.node.index.IndexRecoveryJob</value>
|
||||
</property>
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="missingContentReindexComponent">
|
||||
<ref bean="missingContentReindexComponent" />
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="startDelay">
|
||||
<value>60000</value>
|
||||
</property>
|
||||
<property name="repeatCount">
|
||||
<value>0</value>
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
</bean>
|
||||
-->
|
||||
|
||||
<!-- Bean that attempts to index content that was previously missing -->
|
||||
<bean
|
||||
id="missingContentReindexComponent"
|
||||
class="org.alfresco.repo.node.index.MissingContentReindexComponent"
|
||||
parent="indexRecoveryComponentBase">
|
||||
</bean>
|
||||
|
||||
</beans>
|
@@ -10,14 +10,14 @@ bpm_businessprocessmodel.transition.description=Done
|
||||
# Base Task
|
||||
bpm_businessprocessmodel.type.bpm_task.title=Task
|
||||
bpm_businessprocessmodel.type.bpm_task.description=Task
|
||||
bpm_businessprocessmodel.property.bpm_taskId.title=Task Identifier
|
||||
bpm_businessprocessmodel.property.bpm_taskId.description=Task Identifier
|
||||
bpm_businessprocessmodel.property.bpm_startDate.title=Task Start Date
|
||||
bpm_businessprocessmodel.property.bpm_startDate.description=Task Start Date
|
||||
bpm_businessprocessmodel.property.bpm_completionDate.title=Task Completion Date
|
||||
bpm_businessprocessmodel.property.bpm_completionDate.description=Task Completion Date
|
||||
bpm_businessprocessmodel.property.bpm_dueDate.title=Task Due Date
|
||||
bpm_businessprocessmodel.property.bpm_dueDate.description=Task Due Date
|
||||
bpm_businessprocessmodel.property.bpm_taskId.title=Identifier
|
||||
bpm_businessprocessmodel.property.bpm_taskId.description=Identifier
|
||||
bpm_businessprocessmodel.property.bpm_startDate.title=Start Date
|
||||
bpm_businessprocessmodel.property.bpm_startDate.description=Start Date
|
||||
bpm_businessprocessmodel.property.bpm_completionDate.title=Completion Date
|
||||
bpm_businessprocessmodel.property.bpm_completionDate.description=Completion Date
|
||||
bpm_businessprocessmodel.property.bpm_dueDate.title=Due Date
|
||||
bpm_businessprocessmodel.property.bpm_dueDate.description=Due Date
|
||||
bpm_businessprocessmodel.property.bpm_status.title=Status
|
||||
bpm_businessprocessmodel.property.bpm_status.description=Status
|
||||
bpm_businessprocessmodel.property.bpm_priority.title=Priority
|
||||
@@ -36,7 +36,9 @@ bpm_businessprocessmodel.property.bpm_workflowInstanceId.title=Workflow Instance
|
||||
bpm_businessprocessmodel.property.bpm_workflowInstanceId.description=Workflow Instance Id
|
||||
bpm_businessprocessmodel.property.bpm_context.title=Task Context
|
||||
bpm_businessprocessmodel.property.bpm_context.description=The context within which this task has been assigned
|
||||
bpm_businessprocessmodel.property.bpm_outcome.title=Task Outcome
|
||||
bpm_businessprocessmodel.property.bpm_description.title=Description
|
||||
bpm_businessprocessmodel.property.bpm_description.description=Description of what needs to be achieved
|
||||
bpm_businessprocessmodel.property.bpm_outcome.title=Outcome
|
||||
bpm_businessprocessmodel.property.bpm_outcome.description=Decision made on completing Task
|
||||
bpm_businessprocessmodel.property.bpm_completedItems.title=Completed Items
|
||||
bpm_businessprocessmodel.property.bpm_completedItems.description=Package items marked as complete
|
||||
@@ -48,3 +50,15 @@ bpm_businessprocessmodel.association.bpm_package.title=Content Package
|
||||
bpm_businessprocessmodel.association.bpm_package.description=The collection of content routed through the workflow
|
||||
bpm_businessprocessmodel.aspect.bpm_workflowPackage.title=Workflow Package
|
||||
bpm_businessprocessmodel.aspect.bpm_workflowPackage.description=The collection of content routed through the workflow
|
||||
|
||||
# Workflow Start Task
|
||||
bpm_businessprocessmodel.type.bpm_startTask.title=Workflow Start Task
|
||||
bpm_businessprocessmodel.type.bpm_startTask.description=Task used to collect information required for initiating Workflow
|
||||
bpm_businessprocessmodel.property.bpm_workflowDescription.title=Description
|
||||
bpm_businessprocessmodel.property.bpm_workflowDescription.description=Description
|
||||
bpm_businessprocessmodel.property.bpm_workflowDueDate.title=Workflow Due Date
|
||||
bpm_businessprocessmodel.property.bpm_workflowDueDate.description=Workflow Due Date
|
||||
bpm_businessprocessmodel.property.bpm_workflowPriority.title=Workflow Priority
|
||||
bpm_businessprocessmodel.property.bpm_workflowPriority.description=Workflow Priority
|
||||
bpm_businessprocessmodel.association.bpm_assignee.title=Workflow Assignee
|
||||
bpm_businessprocessmodel.association.bpm_assignee.description=Workflow Assignee
|
||||
|
@@ -1,4 +1,10 @@
|
||||
# Content-related messages
|
||||
|
||||
content.content_missing=The node''s content is missing: \n node: {0} \n reader: {1} \n Please contact your system administrator.
|
||||
content.runtime_exec.property_moved=The property ''errorCodes'' has moved down onto the RuntimeExec class
|
||||
content.runtime_exec.property_moved=The property ''errorCodes'' has moved down onto the RuntimeExec class
|
||||
|
||||
index.recovery.store_not_up_to_date=The indexes for store ''{0}'' are not synchronized with the database.
|
||||
index.recovery.starting=Index recovery started: {0} transactions.
|
||||
index.recovery.complete=Index recovery completed.
|
||||
index.recovery.progress=\t{0} % complete.
|
||||
index.recovery.terminated=Index recovery terminated.
|
@@ -10,6 +10,7 @@
|
||||
<entry><family>Presentation</family><string>impress_pdf_Export</string></entry>
|
||||
<entry><family>Spreadsheet</family><string>calc_pdf_Export</string></entry>
|
||||
<entry><family>Text</family><string>writer_pdf_Export</string></entry>
|
||||
<entry><family>Html</family><string>writer_web_pdf_Export</string></entry>
|
||||
</export-filters>
|
||||
</document-format>
|
||||
|
||||
@@ -26,7 +27,8 @@
|
||||
- 1. additional files may be generated for images and this would require extra care in a servlet environment
|
||||
- 2. output quality does not seem to be very good in many cases
|
||||
-->
|
||||
<document-format><name>HTML</name>
|
||||
<document-format><name>Html</name>
|
||||
<family>Html</family>
|
||||
<mime-type>text/html</mime-type>
|
||||
<file-extension>html</file-extension>
|
||||
<export-filters>
|
||||
@@ -44,6 +46,7 @@
|
||||
<file-extension>odt</file-extension>
|
||||
<export-filters>
|
||||
<entry><family>Text</family><string>writer8</string></entry>
|
||||
<entry><family>Html</family><string>writerweb8_writer</string></entry>
|
||||
</export-filters>
|
||||
</document-format>
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,17 +1,17 @@
|
||||
# Data Type Index Analyzers
|
||||
|
||||
d_dictionary.datatype.d_any.analyzer=org.apache.lucene.analysis.standard.StandardAnalyzer
|
||||
d_dictionary.datatype.d_text.analyzer=org.apache.lucene.analysis.standard.StandardAnalyzer
|
||||
d_dictionary.datatype.d_content.analyzer=org.apache.lucene.analysis.standard.StandardAnalyzer
|
||||
d_dictionary.datatype.d_any.analyzer=org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser
|
||||
d_dictionary.datatype.d_text.analyzer=org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser
|
||||
d_dictionary.datatype.d_content.analyzer=org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser
|
||||
d_dictionary.datatype.d_int.analyzer=org.alfresco.repo.search.impl.lucene.analysis.IntegerAnalyser
|
||||
d_dictionary.datatype.d_long.analyzer=org.alfresco.repo.search.impl.lucene.analysis.LongAnalyser
|
||||
d_dictionary.datatype.d_float.analyzer=org.alfresco.repo.search.impl.lucene.analysis.FloatAnalyser
|
||||
d_dictionary.datatype.d_double.analyzer=org.alfresco.repo.search.impl.lucene.analysis.DoubleAnalyser
|
||||
d_dictionary.datatype.d_date.analyzer=org.alfresco.repo.search.impl.lucene.analysis.DateAnalyser
|
||||
d_dictionary.datatype.d_datetime.analyzer=org.alfresco.repo.search.impl.lucene.analysis.DateAnalyser
|
||||
d_dictionary.datatype.d_boolean.analyzer=org.apache.lucene.analysis.standard.StandardAnalyzer
|
||||
d_dictionary.datatype.d_qname.analyzer=org.apache.lucene.analysis.standard.StandardAnalyzer
|
||||
d_dictionary.datatype.d_guid.analyzer=org.apache.lucene.analysis.standard.StandardAnalyzer
|
||||
d_dictionary.datatype.d_category.analyzer=org.apache.lucene.analysis.standard.StandardAnalyzer
|
||||
d_dictionary.datatype.d_noderef.analyzer=org.apache.lucene.analysis.standard.StandardAnalyzer
|
||||
d_dictionary.datatype.d_path.analyzer=org.apache.lucene.analysis.standard.StandardAnalyzer
|
||||
d_dictionary.datatype.d_boolean.analyzer=org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser
|
||||
d_dictionary.datatype.d_qname.analyzer=org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser
|
||||
d_dictionary.datatype.d_guid.analyzer=org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser
|
||||
d_dictionary.datatype.d_category.analyzer=org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser
|
||||
d_dictionary.datatype.d_noderef.analyzer=org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser
|
||||
d_dictionary.datatype.d_path.analyzer=org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser
|
||||
|
@@ -19,17 +19,17 @@
|
||||
<data-types>
|
||||
|
||||
<data-type name="d:any">
|
||||
<analyser-class>org.apache.lucene.analysis.standard.StandardAnalyzer</analyser-class>
|
||||
<analyser-class>org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser</analyser-class>
|
||||
<java-class>java.lang.Object</java-class>
|
||||
</data-type>
|
||||
|
||||
<data-type name="d:text">
|
||||
<analyser-class>org.apache.lucene.analysis.standard.StandardAnalyzer</analyser-class>
|
||||
<analyser-class>org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser</analyser-class>
|
||||
<java-class>java.lang.String</java-class>
|
||||
</data-type>
|
||||
|
||||
<data-type name="d:content">
|
||||
<analyser-class>org.apache.lucene.analysis.standard.StandardAnalyzer</analyser-class>
|
||||
<analyser-class>org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser</analyser-class>
|
||||
<java-class>org.alfresco.service.cmr.repository.ContentData</java-class>
|
||||
</data-type>
|
||||
|
||||
@@ -64,37 +64,37 @@
|
||||
</data-type>
|
||||
|
||||
<data-type name="d:boolean">
|
||||
<analyser-class>org.apache.lucene.analysis.standard.StandardAnalyzer</analyser-class>
|
||||
<analyser-class>org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser</analyser-class>
|
||||
<java-class>java.lang.Boolean</java-class>
|
||||
</data-type>
|
||||
|
||||
<data-type name="d:qname">
|
||||
<analyser-class>org.apache.lucene.analysis.standard.StandardAnalyzer</analyser-class>
|
||||
<analyser-class>org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser</analyser-class>
|
||||
<java-class>org.alfresco.service.namespace.QName</java-class>
|
||||
</data-type>
|
||||
|
||||
<data-type name="d:noderef">
|
||||
<analyser-class>org.apache.lucene.analysis.standard.StandardAnalyzer</analyser-class>
|
||||
<analyser-class>org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser</analyser-class>
|
||||
<java-class>org.alfresco.service.cmr.repository.NodeRef</java-class>
|
||||
</data-type>
|
||||
|
||||
<data-type name="d:childassocref">
|
||||
<analyser-class>org.apache.lucene.analysis.standard.StandardAnalyzer</analyser-class>
|
||||
<analyser-class>org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser</analyser-class>
|
||||
<java-class>org.alfresco.service.cmr.repository.ChildAssociationRef</java-class>
|
||||
</data-type>
|
||||
|
||||
<data-type name="d:assocref">
|
||||
<analyser-class>org.apache.lucene.analysis.standard.StandardAnalyzer</analyser-class>
|
||||
<analyser-class>org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser</analyser-class>
|
||||
<java-class>org.alfresco.service.cmr.repository.AssociationRef</java-class>
|
||||
</data-type>
|
||||
|
||||
<data-type name="d:path">
|
||||
<analyser-class>org.apache.lucene.analysis.standard.StandardAnalyzer</analyser-class>
|
||||
<analyser-class>org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser</analyser-class>
|
||||
<java-class>org.alfresco.service.cmr.repository.Path</java-class>
|
||||
</data-type>
|
||||
|
||||
<data-type name="d:category">
|
||||
<analyser-class>org.apache.lucene.analysis.standard.StandardAnalyzer</analyser-class>
|
||||
<analyser-class>org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser</analyser-class>
|
||||
<java-class>org.alfresco.service.cmr.repository.NodeRef</java-class>
|
||||
</data-type>
|
||||
|
||||
|
@@ -63,11 +63,48 @@
|
||||
<!-- Convenient groupings of low level permissions -->
|
||||
<!-- ============================================= -->
|
||||
|
||||
<permissionGroup name="Read" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="Write" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="Delete" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="AddChildren" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="Execute" allowFullControl="false" expose="false"/>
|
||||
<permissionGroup name="Read" expose="true" allowFullControl="false">
|
||||
<includePermissionGroup type="sys:base" permissionGroup="ReadProperties"/>
|
||||
<includePermissionGroup type="sys:base" permissionGroup="ReadChildren"/>
|
||||
<includePermissionGroup type="sys:base" permissionGroup="ReadContent"/>
|
||||
</permissionGroup>
|
||||
|
||||
<permissionGroup name="Write" expose="true" allowFullControl="false">
|
||||
<includePermissionGroup type="sys:base" permissionGroup="WriteProperties"/>
|
||||
<includePermissionGroup type="sys:base" permissionGroup="WriteContent"/>
|
||||
</permissionGroup>
|
||||
|
||||
<permissionGroup name="Delete" expose="true" allowFullControl="false">
|
||||
<includePermissionGroup type="sys:base" permissionGroup="DeleteNode"/>
|
||||
<includePermissionGroup type="sys:base" permissionGroup="DeleteChildren"/>
|
||||
</permissionGroup>
|
||||
|
||||
<permissionGroup name="AddChildren" expose="true" allowFullControl="false">
|
||||
<includePermissionGroup type="sys:base" permissionGroup="CreateChildren"/>
|
||||
<includePermissionGroup type="sys:base" permissionGroup="LinkChildren"/>
|
||||
</permissionGroup>
|
||||
|
||||
<permissionGroup name="Execute" allowFullControl="false" expose="false">
|
||||
<includePermissionGroup type="sys:base" permissionGroup="ExecuteContent"/>
|
||||
</permissionGroup>
|
||||
|
||||
<!-- Groups for low level permissions -->
|
||||
|
||||
<permissionGroup name="ReadProperties" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="ReadChildren" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="WriteProperties" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="ReadContent" expose="false" allowFullControl="false" />
|
||||
<permissionGroup name="WriteContent" expose="false" allowFullControl="false" />
|
||||
<permissionGroup name="ExecuteContent" expose="false" allowFullControl="false" />
|
||||
<permissionGroup name="DeleteNode" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="DeleteChildren" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="CreateChildren" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="LinkChildren" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="DeleteAssociations" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="ReadAssociations" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="CreateAssociations" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="ReadPermissions" expose="true" allowFullControl="false" />
|
||||
<permissionGroup name="ChangePermissions" expose="true" allowFullControl="false" />
|
||||
|
||||
<!-- =========== -->
|
||||
<!-- Permissions -->
|
||||
@@ -78,13 +115,13 @@
|
||||
<!-- The properties of a node may ony be read if there is read access to the parent -->
|
||||
<!-- node. ReadChildren access to the parent node is recursive for all nodes from -->
|
||||
<!-- which the node inherits permissions. Access is required down the permission -->
|
||||
<!-- tree at all pioints. -->
|
||||
<!-- tree at all points. -->
|
||||
<!-- -->
|
||||
|
||||
<permission name="ReadProperties" expose="true" >
|
||||
<grantedToGroup permissionGroup="Read" />
|
||||
<permission name="_ReadProperties" expose="false" >
|
||||
<grantedToGroup permissionGroup="ReadProperties" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false"/>
|
||||
-->
|
||||
</permission>
|
||||
|
||||
@@ -94,10 +131,10 @@
|
||||
<!-- all of the parent nodes from which this node inherits permissions -->
|
||||
<!-- -->
|
||||
|
||||
<permission name="ReadChildren" expose="true" >
|
||||
<grantedToGroup permissionGroup="Read" />
|
||||
<permission name="_ReadChildren" expose="false" >
|
||||
<grantedToGroup permissionGroup="ReadChildren" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false"/>
|
||||
-->
|
||||
</permission>
|
||||
|
||||
@@ -107,10 +144,10 @@
|
||||
<!-- a property. -->
|
||||
<!-- -->
|
||||
|
||||
<permission name="WriteProperties" expose="true" >
|
||||
<grantedToGroup permissionGroup="Write" />
|
||||
<permission name="_WriteProperties" expose="false" >
|
||||
<grantedToGroup permissionGroup="WriteProperties" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false"/>
|
||||
-->
|
||||
</permission>
|
||||
|
||||
@@ -125,42 +162,42 @@
|
||||
|
||||
<!-- The permission to read content. -->
|
||||
|
||||
<permission name="ReadContent" expose="false">
|
||||
<grantedToGroup permissionGroup="Read"/>
|
||||
<permission name="_ReadContent" expose="false">
|
||||
<grantedToGroup permissionGroup="ReadContent"/>
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false"/>
|
||||
-->
|
||||
</permission>
|
||||
|
||||
<!-- The permission to write content. -->
|
||||
|
||||
<permission name="WriteContent" expose="false">
|
||||
<grantedToGroup permissionGroup="Write" />
|
||||
<permission name="_WriteContent" expose="false">
|
||||
<grantedToGroup permissionGroup="WriteContent" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false"/>
|
||||
-->
|
||||
</permission>
|
||||
|
||||
<!-- Execute permission on content. -->
|
||||
|
||||
<permission name="ExecuteContent" expose="false">
|
||||
<grantedToGroup permissionGroup="Execute" />
|
||||
<permission name="_ExecuteContent" expose="false">
|
||||
<grantedToGroup permissionGroup="ExecuteContent" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false"/>
|
||||
-->
|
||||
</permission>
|
||||
|
||||
<permission name="DeleteNode" expose="true" >
|
||||
<grantedToGroup permissionGroup="Delete" />
|
||||
<permission name="_DeleteNode" expose="false" >
|
||||
<grantedToGroup permissionGroup="DeleteNode" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="DeleteChildren" implies="false"/>
|
||||
<requiredPermission on="node" name="DeleteChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="_DeleteChildren" implies="false"/>
|
||||
<requiredPermission on="node" name="_DeleteChildren" implies="false"/>
|
||||
-->
|
||||
<!-- Remove the recursive check for now for performance -->
|
||||
<!-- TODO: have one permission to check for delete on an item and one to check -->
|
||||
<!-- child permissions when delete is called on the node service -->
|
||||
<!-- <requiredPermission on="children" name="DeleteNode" implies="false"/> -->
|
||||
<!-- <requiredPermission on="children" name="_DeleteNode" implies="false"/> -->
|
||||
</permission>
|
||||
|
||||
|
||||
@@ -168,52 +205,55 @@
|
||||
<!-- -->
|
||||
<!-- At the moment this includes both unlink and delete -->
|
||||
<!-- -->
|
||||
<permission name="DeleteChildren" expose="true" >
|
||||
<grantedToGroup permissionGroup="Delete" />
|
||||
<permission name="_DeleteChildren" expose="false" >
|
||||
<grantedToGroup permissionGroup="DeleteChildren" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false"/>
|
||||
-->
|
||||
</permission>
|
||||
|
||||
<!-- The permission to create new nodes -->
|
||||
|
||||
<permission name="CreateChildren" expose="true" >
|
||||
<grantedToGroup permissionGroup="AddChildren" />
|
||||
<permission name="_CreateChildren" expose="false" >
|
||||
<grantedToGroup permissionGroup="CreateChildren" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false" />
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false" />
|
||||
-->
|
||||
</permission>
|
||||
|
||||
<!-- The permission to link nodes -->
|
||||
|
||||
<permission name="LinkChildren" expose="true" >
|
||||
<grantedToGroup permissionGroup="AddChildren" />
|
||||
<permission name="_LinkChildren" expose="false" >
|
||||
<grantedToGroup permissionGroup="LinkChildren" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false"/>
|
||||
-->
|
||||
</permission>
|
||||
|
||||
<!-- The permission to delte associations between nodes (not children) -->
|
||||
|
||||
<permission name="DeleteAssociations" expose="true" >
|
||||
<permission name="_DeleteAssociations" expose="false" >
|
||||
<grantedToGroup permissionGroup="DeleteAssociations" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false"/>
|
||||
-->
|
||||
</permission>
|
||||
|
||||
<!-- The permission to read associations -->
|
||||
|
||||
<permission name="ReadAssociations" expose="true" >
|
||||
<permission name="_ReadAssociations" expose="false" >
|
||||
<grantedToGroup permissionGroup="ReadAssociations" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false" />
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false" />
|
||||
-->
|
||||
</permission>
|
||||
|
||||
<!-- The permission to create associations -->
|
||||
|
||||
<permission name="CreateAssociations" expose="true" >
|
||||
<permission name="_CreateAssociations" expose="false" >
|
||||
<grantedToGroup permissionGroup="CreateAssociations" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false" />
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false" />
|
||||
-->
|
||||
</permission>
|
||||
|
||||
@@ -223,17 +263,19 @@
|
||||
|
||||
<!-- The permission to read the permissions on a node -->
|
||||
|
||||
<permission name="ReadPermissions" expose="true" >
|
||||
<permission name="_ReadPermissions" expose="false" >
|
||||
<grantedToGroup permissionGroup="ReadPermissions" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false"/>
|
||||
-->
|
||||
</permission>
|
||||
|
||||
<!-- The permission to the change the permissions associated with a node -->
|
||||
|
||||
<permission name="ChangePermissions" expose="true" >
|
||||
<permission name="_ChangePermissions" expose="false" >
|
||||
<grantedToGroup permissionGroup="ChangePermissions" />
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" implies="false"/>
|
||||
<requiredPermission on="parent" name="_ReadChildren" implies="false"/>
|
||||
-->
|
||||
</permission>
|
||||
|
||||
@@ -285,6 +327,21 @@
|
||||
<includePermissionGroup permissionGroup="Read" type="sys:base" />
|
||||
</permissionGroup>
|
||||
|
||||
<!-- records permission -->
|
||||
<!-- Should be tied to the aspect -->
|
||||
<!-- onwership should be removed when using this permission -->
|
||||
<permissionGroup name="RecordAdministrator" allowFullControl="false" expose="false">
|
||||
<includePermissionGroup type="sys:base" permissionGroup="ReadProperties"/>
|
||||
<includePermissionGroup type="sys:base" permissionGroup="ReadChildren"/>
|
||||
<includePermissionGroup type="sys:base" permissionGroup="WriteProperties"/>
|
||||
<includePermissionGroup type="sys:base" permissionGroup="ReadContent"/>
|
||||
<includePermissionGroup type="sys:base" permissionGroup="DeleteChildren"/>
|
||||
<includePermissionGroup type="sys:base" permissionGroup="CreateChildren"/>
|
||||
<includePermissionGroup type="sys:base" permissionGroup="LinkChildren"/>
|
||||
<includePermissionGroup type="sys:base" permissionGroup="DeleteAssociations"/>
|
||||
<includePermissionGroup type="sys:base" permissionGroup="CreateAssociations"/>
|
||||
</permissionGroup>
|
||||
|
||||
</permissionSet>
|
||||
|
||||
<!-- =============================== -->
|
||||
@@ -300,6 +357,7 @@
|
||||
<permissionGroup name="Contributor" extends="true" expose="true"/>
|
||||
<permissionGroup name="Editor" extends="true" expose="true"/>
|
||||
<permissionGroup name="Consumer" extends="true" expose="true"/>
|
||||
<permissionGroup name="RecordAdministrator" extends="true" expose="false"/>
|
||||
|
||||
</permissionSet>
|
||||
|
||||
@@ -333,16 +391,20 @@
|
||||
<permissionSet type="cm:ownable" expose="selected">
|
||||
|
||||
<!-- Permission control to allow ownership of the node to be taken from others -->
|
||||
<permissionGroup name="TakeOwnership" requiresType="false" expose="false"/>
|
||||
<permissionGroup name="TakeOwnership" requiresType="false" expose="false">
|
||||
<includePermissionGroup permissionGroup="SetOwner" type="cm:ownable" />
|
||||
</permissionGroup>
|
||||
|
||||
<permissionGroup name="SetOwner" requiresType="false" expose="false"/>
|
||||
|
||||
<!-- The low level permission to control setting the owner of a node -->
|
||||
<permission name="SetOwner" expose="false" requiresType="false">
|
||||
<grantedToGroup permissionGroup="TakeOwnership" />
|
||||
<permission name="_SetOwner" expose="false" requiresType="false">
|
||||
<grantedToGroup permissionGroup="SetOwner" />
|
||||
<!-- require to be able to reach the node and set properties in the node -->
|
||||
<!-- Commented out parent permission check ...
|
||||
<requiredPermission on="parent" name="ReadChildren" />
|
||||
<requiredPermission on="parent" name="_ReadChildren" />
|
||||
-->
|
||||
<requiredPermission on="node" name="WriteProperties" />
|
||||
<requiredPermission on="node" type="sys:base" name="_WriteProperties" />
|
||||
</permission>
|
||||
|
||||
</permissionSet>
|
||||
@@ -357,24 +419,34 @@
|
||||
<!-- of permissions. -->
|
||||
|
||||
<!-- Check Out permission - exposed for all object types -->
|
||||
<permissionGroup name="CheckOut" requiresType="false" expose="false"/>
|
||||
<permissionGroup name="CheckOut" requiresType="false" expose="false">
|
||||
<includePermissionGroup permissionGroup="Lock" type="cm:lockable" />
|
||||
</permissionGroup>
|
||||
|
||||
<!-- Check In permission - only exposed when the lockable aspect is present -->
|
||||
<permissionGroup name="CheckIn" requiresType="true" expose="false"/>
|
||||
<permissionGroup name="CheckIn" requiresType="true" expose="false">
|
||||
<includePermissionGroup permissionGroup="Unlock" type="cm:lockable" />
|
||||
</permissionGroup>
|
||||
|
||||
<!-- Cancel Check Out permission - only exposed for the lockable aspect is present -->
|
||||
<permissionGroup name="CancelCheckOut" requiresType="true" expose="false"/>
|
||||
<permissionGroup name="CancelCheckOut" requiresType="true" expose="false">
|
||||
<includePermissionGroup permissionGroup="Unlock" type="cm:lockable" />
|
||||
</permissionGroup>
|
||||
|
||||
|
||||
<permissionGroup name="Lock" requiresType="false" expose="false"/>
|
||||
<permissionGroup name="Unlock" requiresType="true" expose="false"/>
|
||||
|
||||
|
||||
<!-- Low level lock permission -->
|
||||
<permission name="Lock" requiresType="false" expose="false">
|
||||
<grantedToGroup permissionGroup="CheckOut" />
|
||||
<permission name="_Lock" requiresType="false" expose="false">
|
||||
<grantedToGroup permissionGroup="Lock" />
|
||||
<requiredPermission on="node" type="sys:base" name="Write"/>
|
||||
</permission>
|
||||
|
||||
<!-- Low level unlock permission -->
|
||||
<permission name="Unlock" requiresType="true" expose="false">
|
||||
<grantedToGroup permissionGroup="CheckIn" />
|
||||
<grantedToGroup permissionGroup="CancelCheckOut" />
|
||||
<permission name="_Unlock" requiresType="true" expose="false">
|
||||
<grantedToGroup permissionGroup="Unlock" />
|
||||
</permission>
|
||||
|
||||
</permissionSet>
|
||||
|
@@ -57,7 +57,7 @@
|
||||
<property name="contentService"><ref bean="ContentService" /></property>
|
||||
<property name="permissionService"><ref bean="permissionService"/></property>
|
||||
<property name="authenticationComponent"><ref bean="authenticationComponent"/></property>
|
||||
<property name="checkInOutService"><ref bean="checkOutCheckInService"/></property>
|
||||
<property name="serviceRegistry"><ref bean="ServiceRegistry"/></property>
|
||||
</bean>
|
||||
|
||||
<bean id="cifsHelper" class="org.alfresco.filesys.smb.server.repo.CifsHelper">
|
||||
|
@@ -103,7 +103,7 @@
|
||||
<value>false</value> <!-- use only to trace problems -->
|
||||
</property>
|
||||
<property name="failOnViolation" >
|
||||
<value>false</value> <!-- set to true to generate runtime exceptions upon violation -->
|
||||
<value>true</value>
|
||||
</property>
|
||||
<property name="maxErrorsPerTransaction" >
|
||||
<value>5</value> <!-- limit output (exception and log) to the first N violation messages -->
|
||||
|
@@ -18,6 +18,12 @@
|
||||
<ref bean="dictionaryService"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="unboundPolicyBehaviourFilter" class="org.alfresco.repo.policy.BehaviourFilterImpl">
|
||||
<property name="dictionaryService">
|
||||
<ref bean="dictionaryService"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="policyComponent" class="org.alfresco.repo.policy.PolicyComponentImpl">
|
||||
<constructor-arg index="0">
|
||||
|
@@ -1,135 +1,138 @@
|
||||
# Directory configuration
|
||||
|
||||
dir.root=./alf_data
|
||||
|
||||
dir.contentstore=${dir.root}/contentstore
|
||||
dir.contentstore.deleted=${dir.root}/contentstore.deleted
|
||||
|
||||
dir.auditcontentstore=${dir.root}/audit.contentstore
|
||||
|
||||
# The location for lucene index files
|
||||
|
||||
dir.indexes=${dir.root}/lucene-indexes
|
||||
|
||||
# The location for lucene index locks
|
||||
|
||||
dir.indexes.lock=${dir.indexes}/locks
|
||||
|
||||
# #################### #
|
||||
# Lucene configuration #
|
||||
# #################### #
|
||||
#
|
||||
# Millisecond threshold for text transformations
|
||||
# Slower transformers will force the text extraction to be asynchronous
|
||||
#
|
||||
lucene.maxAtomicTransformationTime=20
|
||||
#
|
||||
# The maximum number of clauses that are allowed in a lucene query
|
||||
#
|
||||
lucene.query.maxClauses=10000
|
||||
#
|
||||
# The size of the queue of nodes waiting for index
|
||||
# Events are generated as nodes are changed, this is the maximum size of the queue used to coalesce event
|
||||
# When this size is reached the lists of nodes will be indexed
|
||||
#
|
||||
lucene.indexer.batchSize=1000
|
||||
#
|
||||
# Lucene index min merge docs - the in memory size of the index
|
||||
#
|
||||
lucene.indexer.minMergeDocs=1000
|
||||
#
|
||||
# When lucene index files are merged together - it will try to keep this number of segments/files in
|
||||
#
|
||||
lucene.indexer.mergeFactor=10
|
||||
#
|
||||
# Roughly the maximum number of nodes indexed in one file/segment
|
||||
#
|
||||
lucene.indexer.maxMergeDocs=100000
|
||||
#
|
||||
# The number of terms from a document that will be indexed
|
||||
#
|
||||
lucene.indexer.maxFieldLength=10000
|
||||
|
||||
lucene.write.lock.timeout=10000
|
||||
lucene.commit.lock.timeout=100000
|
||||
lucene.lock.poll.interval=100
|
||||
|
||||
# Database configuration
|
||||
|
||||
db.schema.update=true
|
||||
db.driver=org.gjt.mm.mysql.Driver
|
||||
db.name=alfresco
|
||||
db.url=jdbc:mysql:///${db.name}
|
||||
db.username=alfresco
|
||||
db.password=alfresco
|
||||
db.pool.initial=10
|
||||
db.pool.max=20
|
||||
db.pool.maxIdleTime=120
|
||||
|
||||
# Email configuration
|
||||
|
||||
mail.host=
|
||||
mail.port=25
|
||||
mail.username=anonymous
|
||||
mail.password=
|
||||
# Set this value to UTF-8 or similar for encoding of email messages as required
|
||||
mail.encoding=UTF-8
|
||||
|
||||
# System Configuration
|
||||
|
||||
system.store=system://system
|
||||
system.descriptor.childname=sys:descriptor
|
||||
system.descriptor.current.childname=sys:descriptor-current
|
||||
|
||||
# User config
|
||||
|
||||
alfresco_user_store.store=user://alfrescoUserStore
|
||||
alfresco_user_store.system_container.childname=sys:system
|
||||
alfresco_user_store.user_container.childname=sys:people
|
||||
alfresco_user_store.authorities_container.childname=sys:authorities
|
||||
|
||||
# Spaces Archive Configuration
|
||||
spaces.archive.store=archive://SpacesStore
|
||||
|
||||
# Spaces Configuration
|
||||
|
||||
spaces.store=workspace://SpacesStore
|
||||
spaces.company_home.childname=app:company_home
|
||||
spaces.guest_home.childname=app:guest_home
|
||||
spaces.dictionary.childname=app:dictionary
|
||||
spaces.templates.childname=app:space_templates
|
||||
spaces.templates.content.childname=app:content_templates
|
||||
spaces.templates.email.childname=app:email_templates
|
||||
spaces.templates.rss.childname=app:rss_templates
|
||||
spaces.savedsearches.childname=app:saved_searches
|
||||
spaces.scripts.childname=app:scripts
|
||||
spaces.wcm.childname=app:wcm
|
||||
spaces.content_forms.childname=app:wcm_forms
|
||||
|
||||
# Folders for storing people
|
||||
|
||||
system.system_container.childname=sys:system
|
||||
system.people_container.childname=sys:people
|
||||
|
||||
# Folders for storing workflow related info
|
||||
|
||||
system.workflow_container.childname=sys:workflow
|
||||
|
||||
# Are user names case sensitive?
|
||||
# ==============================
|
||||
#
|
||||
# NOTE: If you are using mysql you must have case sensitive collation
|
||||
#
|
||||
# You can do this when creating the alfresco database at the start
|
||||
# CREATE DATABASE alfresco CHARACTER SET utf8 COLLATION utf8_bin;
|
||||
# If you want to do this later this is a dump and load fix as it is done when the database, tables and columns are created.
|
||||
#
|
||||
# Must other databases are case sensitive by default.
|
||||
#
|
||||
|
||||
user.name.caseSensitive=false
|
||||
|
||||
# AVM Specific properties.
|
||||
avm.remote.idlestream.timeout=30000
|
||||
avm.remote.port=1313
|
||||
|
||||
# Directory configuration
|
||||
|
||||
dir.root=./alf_data
|
||||
|
||||
dir.contentstore=${dir.root}/contentstore
|
||||
dir.contentstore.deleted=${dir.root}/contentstore.deleted
|
||||
|
||||
dir.auditcontentstore=${dir.root}/audit.contentstore
|
||||
|
||||
# The location for lucene index files
|
||||
dir.indexes=${dir.root}/lucene-indexes
|
||||
|
||||
# The location for lucene index locks
|
||||
dir.indexes.lock=${dir.indexes}/locks
|
||||
|
||||
# The index recovery mode (NONE, VALIDATE, AUTO, FULL)
|
||||
index.recovery.mode=VALIDATE
|
||||
|
||||
# #################### #
|
||||
# Lucene configuration #
|
||||
# #################### #
|
||||
#
|
||||
# Millisecond threshold for text transformations
|
||||
# Slower transformers will force the text extraction to be asynchronous
|
||||
#
|
||||
lucene.maxAtomicTransformationTime=20
|
||||
#
|
||||
# The maximum number of clauses that are allowed in a lucene query
|
||||
#
|
||||
lucene.query.maxClauses=10000
|
||||
#
|
||||
# The size of the queue of nodes waiting for index
|
||||
# Events are generated as nodes are changed, this is the maximum size of the queue used to coalesce event
|
||||
# When this size is reached the lists of nodes will be indexed
|
||||
#
|
||||
lucene.indexer.batchSize=1000
|
||||
#
|
||||
# Lucene index min merge docs - the in memory size of the index
|
||||
#
|
||||
lucene.indexer.minMergeDocs=1000
|
||||
#
|
||||
# When lucene index files are merged together - it will try to keep this number of segments/files in
|
||||
#
|
||||
lucene.indexer.mergeFactor=10
|
||||
#
|
||||
# Roughly the maximum number of nodes indexed in one file/segment
|
||||
#
|
||||
lucene.indexer.maxMergeDocs=100000
|
||||
#
|
||||
# The number of terms from a document that will be indexed
|
||||
#
|
||||
lucene.indexer.maxFieldLength=10000
|
||||
|
||||
lucene.write.lock.timeout=10000
|
||||
lucene.commit.lock.timeout=100000
|
||||
lucene.lock.poll.interval=100
|
||||
|
||||
# Database configuration
|
||||
|
||||
db.schema.update=true
|
||||
db.driver=org.gjt.mm.mysql.Driver
|
||||
db.name=alfresco
|
||||
db.url=jdbc:mysql:///${db.name}
|
||||
db.username=alfresco
|
||||
db.password=alfresco
|
||||
db.pool.initial=10
|
||||
db.pool.max=20
|
||||
db.pool.maxIdleTime=120
|
||||
|
||||
# Email configuration
|
||||
|
||||
mail.host=
|
||||
mail.port=25
|
||||
mail.username=anonymous
|
||||
mail.password=
|
||||
# Set this value to UTF-8 or similar for encoding of email messages as required
|
||||
mail.encoding=UTF-8
|
||||
# Set this value to 7bit or similar for Asian encoding of email headers as required
|
||||
mail.header=
|
||||
|
||||
# System Configuration
|
||||
|
||||
system.store=system://system
|
||||
system.descriptor.childname=sys:descriptor
|
||||
system.descriptor.current.childname=sys:descriptor-current
|
||||
|
||||
# User config
|
||||
|
||||
alfresco_user_store.store=user://alfrescoUserStore
|
||||
alfresco_user_store.system_container.childname=sys:system
|
||||
alfresco_user_store.user_container.childname=sys:people
|
||||
alfresco_user_store.authorities_container.childname=sys:authorities
|
||||
|
||||
# Spaces Archive Configuration
|
||||
spaces.archive.store=archive://SpacesStore
|
||||
|
||||
# Spaces Configuration
|
||||
|
||||
spaces.store=workspace://SpacesStore
|
||||
spaces.company_home.childname=app:company_home
|
||||
spaces.guest_home.childname=app:guest_home
|
||||
spaces.dictionary.childname=app:dictionary
|
||||
spaces.templates.childname=app:space_templates
|
||||
spaces.templates.content.childname=app:content_templates
|
||||
spaces.templates.email.childname=app:email_templates
|
||||
spaces.templates.rss.childname=app:rss_templates
|
||||
spaces.savedsearches.childname=app:saved_searches
|
||||
spaces.scripts.childname=app:scripts
|
||||
spaces.wcm.childname=app:wcm
|
||||
spaces.content_forms.childname=app:wcm_forms
|
||||
|
||||
# Folders for storing people
|
||||
|
||||
system.system_container.childname=sys:system
|
||||
system.people_container.childname=sys:people
|
||||
|
||||
# Folders for storing workflow related info
|
||||
|
||||
system.workflow_container.childname=sys:workflow
|
||||
|
||||
# Are user names case sensitive?
|
||||
# ==============================
|
||||
#
|
||||
# NOTE: If you are using mysql you must have case sensitive collation
|
||||
#
|
||||
# You can do this when creating the alfresco database at the start
|
||||
# CREATE DATABASE alfresco CHARACTER SET utf8 COLLATION utf8_bin;
|
||||
# If you want to do this later this is a dump and load fix as it is done when the database, tables and columns are created.
|
||||
#
|
||||
# Must other databases are case sensitive by default.
|
||||
#
|
||||
|
||||
user.name.caseSensitive=false
|
||||
|
||||
# AVM Specific properties.
|
||||
avm.remote.idlestream.timeout=30000
|
||||
avm.remote.port=1313
|
||||
|
||||
|
@@ -2,9 +2,25 @@
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<!-- -->
|
||||
<!-- Scheduled jobs -->
|
||||
<!-- -->
|
||||
|
||||
<!-- Task scheduler -->
|
||||
<!-- Triggers should not appear here - the scheduler should be injected into the trigger definition -->
|
||||
<!-- This bean should not need to apear else where in extension configuration -->
|
||||
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
|
||||
<property name="waitForJobsToCompleteOnShutdown">
|
||||
<value>true</value>
|
||||
</property>
|
||||
<property name="configLocation">
|
||||
<value>classpath:alfresco/domain/quartz.properties</value>
|
||||
</property>
|
||||
<property name="schedulerName">
|
||||
<value>DefaultScheduler</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- -->
|
||||
<!-- Scheduled tasks -->
|
||||
<!-- -->
|
||||
|
||||
<bean id="ftsIndexerTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
@@ -21,16 +37,74 @@
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<!-- Try and do some indexing every minute after starting up -->
|
||||
<property name="startDelay">
|
||||
<value>60000</value>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<property name="repeatInterval">
|
||||
<value>60000</value>
|
||||
<!-- Try and do some indexing every minute after starting up -->
|
||||
<property name="startDelayMinutes">
|
||||
<value>1</value>
|
||||
</property>
|
||||
<property name="repeatIntervalMinutes">
|
||||
<value>1</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Forces the reindexing of nodes where content may have been missing before -->
|
||||
<!--
|
||||
This component can be triggered at intervals where asynchronous content sharing
|
||||
between clustered servers has been set up
|
||||
-->
|
||||
<bean id="missingContentReindexTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
<bean class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.node.index.IndexRecoveryJob</value>
|
||||
</property>
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="indexRecoveryComponent">
|
||||
<ref bean="missingContentReindexComponent" />
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<!-- Give the server 5 minutes and then check for missing content -->
|
||||
<property name="startDelayMinutes">
|
||||
<value>5</value>
|
||||
</property>
|
||||
<property name="repeatCount">
|
||||
<value>0</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="indexRecoveryTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
<bean class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.node.index.IndexRecoveryJob</value>
|
||||
</property>
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="indexRecoveryComponent">
|
||||
<ref bean="indexRecoveryComponent" />
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<property name="startDelayMinutes">
|
||||
<value>1</value>
|
||||
</property>
|
||||
<property name="repeatCount">
|
||||
<value>0</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="tempFileCleanerTrigger" class="org.alfresco.util.TriggerBean">
|
||||
@@ -48,15 +122,16 @@
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="startDelay">
|
||||
<value>1800000</value><!-- start after half an hour -->
|
||||
</property>
|
||||
<property name="repeatInterval">
|
||||
<value>3600000</value><!-- repeat every hour -->
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<!-- start after half an hour and repeat hourly -->
|
||||
<property name="startDelayMinutes">
|
||||
<value>30</value>
|
||||
</property>
|
||||
<property name="repeatIntervalMinutes">
|
||||
<value>60</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="fileContentStoreCleanerJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
@@ -84,33 +159,6 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
||||
<bean id="indexRecoveryTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
<bean id="IndexRecoveryJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.node.index.IndexRecoveryJob</value>
|
||||
</property>
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="indexRecoveryComponent">
|
||||
<ref bean="indexRecoveryComponent" />
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="startDelay">
|
||||
<value>60000</value> <!-- start after 1 minute -->
|
||||
</property>
|
||||
<property name="repeatCount">
|
||||
<value>0</value> <!-- DO NOT REPEAT !!!!! -->
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="indexBackupJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.search.impl.lucene.LuceneIndexerAndSearcherFactory2$LuceneIndexBackupJob</value>
|
||||
@@ -150,26 +198,12 @@
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
-->
|
||||
<property name="startDelay">
|
||||
<value>3600000</value><!-- start after an hour -->
|
||||
<!-- start after an hour and repeat hourly -->
|
||||
<property name="startDelayMinutes">
|
||||
<value>60</value>
|
||||
</property>
|
||||
<property name="repeatInterval">
|
||||
<value>3600000</value><!-- repeat every hour -->
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Scheduled tasks -->
|
||||
<!-- Triggers should not appear here - the scheduler should be injected into the trigger definition -->
|
||||
<!-- This bean should not need to apear else where in extension configuration -->
|
||||
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
|
||||
<property name="waitForJobsToCompleteOnShutdown">
|
||||
<value>true</value>
|
||||
</property>
|
||||
<property name="configLocation">
|
||||
<value>classpath:alfresco/domain/quartz.properties</value>
|
||||
</property>
|
||||
<property name="schedulerName">
|
||||
<value>DefaultScheduler</value>
|
||||
<property name="repeatIntervalMinutes">
|
||||
<value>60</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
@@ -7,7 +7,7 @@
|
||||
version.major=1
|
||||
version.minor=4
|
||||
version.revision=0
|
||||
version.label=Preview
|
||||
version.label=RC1
|
||||
|
||||
# Edition label
|
||||
|
||||
|
@@ -3,50 +3,6 @@
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- -->
|
||||
<!-- Workflow Definitions -->
|
||||
<!-- -->
|
||||
|
||||
<bean id="workflow.workflowBootstrap" parent="workflowDeployer">
|
||||
<property name="workflowDefinitions">
|
||||
<list>
|
||||
<props>
|
||||
<prop key="engineId">jbpm</prop>
|
||||
<prop key="location">org/alfresco/repo/workflow/jbpm/review_and_approve_processdefinition.xml</prop>
|
||||
<prop key="mimetype">text/xml</prop>
|
||||
<prop key="redeploy">false</prop>
|
||||
</props>
|
||||
<props>
|
||||
<prop key="engineId">jbpm</prop>
|
||||
<prop key="location">org/alfresco/repo/workflow/jbpm/adhoc_task_processdefinition.xml</prop>
|
||||
<prop key="mimetype">text/xml</prop>
|
||||
<prop key="redeploy">false</prop>
|
||||
</props>
|
||||
<props>
|
||||
<prop key="engineId">jbpm</prop>
|
||||
<prop key="location">alfresco/workflow/wcmSubmit.xml</prop>
|
||||
<prop key="mimetype">text/xml</prop>
|
||||
<prop key="redeploy">false</prop>
|
||||
</props>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="workflow.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
|
||||
<property name="models">
|
||||
<list>
|
||||
<value>alfresco/model/bpmModel.xml</value>
|
||||
<value>alfresco/model/workflowModel.xml</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="labels">
|
||||
<list>
|
||||
<value>alfresco/messages/bpm-messages</value>
|
||||
<value>alfresco/messages/workflow-messages</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- -->
|
||||
<!-- Workflow Service Implementation -->
|
||||
<!-- -->
|
||||
@@ -55,6 +11,7 @@
|
||||
<property name="transactionService" ref="transactionComponent"/>
|
||||
<property name="authenticationComponent" ref="authenticationComponent" />
|
||||
<property name="workflowService" ref="WorkflowService" />
|
||||
<property name="dictionaryDAO" ref="dictionaryDAO"/>
|
||||
</bean>
|
||||
|
||||
<bean id="workflowServiceImpl" class="org.alfresco.repo.workflow.WorkflowServiceImpl">
|
||||
@@ -64,7 +21,6 @@
|
||||
|
||||
<bean id="workflowPackageImpl" class="org.alfresco.repo.workflow.WorkflowPackageImpl">
|
||||
<property name="importerBootstrap" ref="spacesBootstrap"/>
|
||||
<property name="fileFolderService" ref="fileFolderService"/>
|
||||
<property name="searchService" ref="searchService"/>
|
||||
<property name="nodeService" ref="nodeService"/>
|
||||
<property name="namespaceService" ref="namespaceService"/>
|
||||
@@ -76,7 +32,7 @@
|
||||
|
||||
<bean id="start-workflow" class="org.alfresco.repo.workflow.StartWorkflowActionExecuter" parent="action-executer">
|
||||
<property name="publicAction">
|
||||
<value>false</value>
|
||||
<value>true</value>
|
||||
</property>
|
||||
<property name="namespaceService">
|
||||
<ref bean="NamespaceService" />
|
||||
@@ -109,7 +65,7 @@
|
||||
<property name="configuration" value="classpath:org/alfresco/repo/workflow/jbpm/jbpm.cfg.xml"/>
|
||||
</bean>
|
||||
|
||||
<bean id="jbpm_template" class="org.springmodules.workflow.jbpm31.JbpmTemplate">
|
||||
<bean id="jbpm_template" class="org.alfresco.repo.workflow.jbpm.JBPMTransactionTemplate">
|
||||
<constructor-arg index="0" ref="jbpm_configuration"/>
|
||||
</bean>
|
||||
|
||||
|
55
config/alfresco/workflow/adhoc_processdefinition.xml
Normal file
55
config/alfresco/workflow/adhoc_processdefinition.xml
Normal file
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wf:adhoc">
|
||||
|
||||
<swimlane name="initiator"/>
|
||||
|
||||
<start-state name="start">
|
||||
<task name="wf:submitAdhocTask" swimlane="initiator"/>
|
||||
<transition name="" to="adhoc"/>
|
||||
</start-state>
|
||||
|
||||
<swimlane name="assignee">
|
||||
<assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/>
|
||||
</swimlane>
|
||||
|
||||
<task-node name="adhoc">
|
||||
<task name="wf:adhocTask" swimlane="assignee">
|
||||
<event type="task-create">
|
||||
<script>
|
||||
if (bpm_workflowDueDate != void)
|
||||
{
|
||||
taskInstance.dueDate = bpm_workflowDueDate;
|
||||
}
|
||||
if (bpm_workflowPriority != void)
|
||||
{
|
||||
taskInstance.priority = bpm_workflowPriority;
|
||||
}
|
||||
</script>
|
||||
</event>
|
||||
</task>
|
||||
<transition name="" to="completed">
|
||||
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
|
||||
<script>
|
||||
if (wf_notifyMe)
|
||||
{
|
||||
var mail = actions.create("mail");
|
||||
mail.parameters.to = initiator.properties["cm:email"];
|
||||
mail.parameters.subject = "Adhoc Task " + bpm_workflowDescription;
|
||||
mail.parameters.from = bpm_assignee.properties["cm:email"];
|
||||
mail.parameters.text = "It's done";
|
||||
mail.execute(bpm_package);
|
||||
}
|
||||
</script>
|
||||
</action>
|
||||
</transition>
|
||||
</task-node>
|
||||
|
||||
<task-node name="completed">
|
||||
<task name="wf:completedAdhocTask" swimlane="initiator"/>
|
||||
<transition name="" to="end"/>
|
||||
</task-node>
|
||||
|
||||
<end-state name="end"/>
|
||||
|
||||
</process-definition>
|
47
config/alfresco/workflow/review_processdefinition.xml
Normal file
47
config/alfresco/workflow/review_processdefinition.xml
Normal file
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wf:review">
|
||||
|
||||
<swimlane name="initiator" />
|
||||
|
||||
<start-state name="start">
|
||||
<task name="wf:submitReviewTask" swimlane="initiator" />
|
||||
<transition name="" to="review" />
|
||||
</start-state>
|
||||
|
||||
<swimlane name="reviewer">
|
||||
<assignment actor-id="#{bpm_assignee.properties['cm:userName']}" />
|
||||
</swimlane>
|
||||
|
||||
<task-node name="review">
|
||||
<task name="wf:reviewTask" swimlane="reviewer">
|
||||
<event type="task-create">
|
||||
<script>
|
||||
if (bpm_workflowDueDate != void)
|
||||
{
|
||||
taskInstance.dueDate = bpm_workflowDueDate;
|
||||
}
|
||||
if (bpm_workflowPriority != void)
|
||||
{
|
||||
taskInstance.priority = bpm_workflowPriority;
|
||||
}
|
||||
</script>
|
||||
</event>
|
||||
</task>
|
||||
<transition name="reject" to="rejected" />
|
||||
<transition name="approve" to="approved" />
|
||||
</task-node>
|
||||
|
||||
<task-node name="rejected">
|
||||
<task name="wf:rejectedTask" swimlane="initiator" />
|
||||
<transition name="" to="end" />
|
||||
</task-node>
|
||||
|
||||
<task-node name="approved">
|
||||
<task name="wf:approvedTask" swimlane="initiator" />
|
||||
<transition name="" to="end" />
|
||||
</task-node>
|
||||
|
||||
<end-state name="end" />
|
||||
|
||||
</process-definition>
|
54
config/alfresco/workflow/workflow-messages.properties
Normal file
54
config/alfresco/workflow/workflow-messages.properties
Normal file
@@ -0,0 +1,54 @@
|
||||
# Display labels for out-of-the-box Content-oriented Workflows
|
||||
|
||||
#
|
||||
# Review & Approve Workflow
|
||||
#
|
||||
|
||||
wf_review.workflow.title=Review & Approve
|
||||
wf_review.workflow.description=Review & approval of content
|
||||
|
||||
# Review & Approve Task Definitions
|
||||
|
||||
wf_workflowmodel.type.wf_submitReviewTask.title=Start Review
|
||||
wf_workflowmodel.type.wf_submitReviewTask.description=Submit documents for review & approval
|
||||
wf_workflowmodel.type.wf_reviewTask.title=Review
|
||||
wf_workflowmodel.type.wf_reviewTask.description=Review Documents to Approve or Reject them
|
||||
|
||||
# Review & Approve Process Definitions
|
||||
|
||||
wf_review.node.start.title=Start
|
||||
wf_review.node.start.description=Start
|
||||
wf_review.node.review.title=Review
|
||||
wf_review.node.review.description=Review
|
||||
wf_review.node.review.transition.reject.title=Reject
|
||||
wf_review.node.review.transition.reject.description=Reject
|
||||
wf_review.node.review.transition.approve.title=Approve
|
||||
wf_review.node.review.transition.approve.description=Approve
|
||||
wf_review.node.rejected.title=Rejected
|
||||
wf_review.node.rejected.description=Rejected
|
||||
wf_review.task.wf_rejectedTask.title=Rejected
|
||||
wf_review.task.wf_rejectedTask.description=Rejected
|
||||
wf_review.node.approved.title=Approved
|
||||
wf_review.node.approved.description=Approved
|
||||
wf_review.task.wf_approvedTask.title=Approved
|
||||
wf_review.task.wf_approvedTask.description=Approved
|
||||
wf_review.node.end.title=End
|
||||
wf_review.node.end.description=End
|
||||
|
||||
#
|
||||
# Adhoc Task Workflow
|
||||
#
|
||||
|
||||
wf_adhoc.workflow.title=Adhoc Task
|
||||
wf_adhoc.workflow.description=Assign task to colleague
|
||||
|
||||
# Adhoc Task Definitions
|
||||
|
||||
wf_workflowmodel.type.wf_submitAdhocTask.title=Start Adhoc Task
|
||||
wf_workflowmodel.type.wf_submitAdhocTask.description=Allocate task to colleague
|
||||
wf_workflowmodel.property.wf_notifyMe.title=Notify Me
|
||||
wf_workflowmodel.property.wf_notifyMe.description=Notify me when task is complete
|
||||
wf_workflowmodel.type.wf_adhocTask.title=Adhoc Task
|
||||
wf_workflowmodel.type.wf_adhocTask.description=Adhoc Task allocated by colleague
|
||||
wf_workflowmodel.type.wf_completedAdhocTask.title=Adhoc Task Completed
|
||||
wf_workflowmodel.type.wf_completedAdhocTask.description=Adhoc Task Completed
|
65
config/alfresco/workflow/workflowModel.xml
Normal file
65
config/alfresco/workflow/workflowModel.xml
Normal file
@@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<model name="wf:workflowmodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
|
||||
|
||||
<imports>
|
||||
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
|
||||
<import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm"/>
|
||||
</imports>
|
||||
|
||||
<namespaces>
|
||||
<namespace uri="http://www.alfresco.org/model/workflow/1.0" prefix="wf"/>
|
||||
</namespaces>
|
||||
|
||||
<types>
|
||||
|
||||
<!-- -->
|
||||
<!-- Basic Review & Approve Tasks -->
|
||||
<!-- -->
|
||||
|
||||
<type name="wf:submitReviewTask">
|
||||
<parent>bpm:startTask</parent>
|
||||
</type>
|
||||
|
||||
<type name="wf:reviewTask">
|
||||
<parent>bpm:workflowTask</parent>
|
||||
|
||||
<overrides>
|
||||
|
||||
<property name="bpm:packageItemActionGroup">
|
||||
<default>workflow_item_edit_actions</default>
|
||||
</property>
|
||||
|
||||
</overrides>
|
||||
|
||||
</type>
|
||||
|
||||
|
||||
<!-- -->
|
||||
<!-- Adhoc Tasks -->
|
||||
<!-- -->
|
||||
|
||||
|
||||
<type name="wf:submitAdhocTask">
|
||||
<parent>bpm:startTask</parent>
|
||||
|
||||
<properties>
|
||||
<property name="wf:notifyMe">
|
||||
<type>d:boolean</type>
|
||||
<default>false</default>
|
||||
</property>
|
||||
</properties>
|
||||
|
||||
</type>
|
||||
|
||||
<type name="wf:adhocTask">
|
||||
<parent>bpm:workflowTask</parent>
|
||||
</type>
|
||||
|
||||
<type name="wf:completedAdhocTask">
|
||||
<parent>bpm:workflowTask</parent>
|
||||
</type>
|
||||
|
||||
</types>
|
||||
|
||||
</model>
|
Reference in New Issue
Block a user