Files
alfresco-community-repo/config/alfresco/web-scripts-application-context.xml
Glen Johnson 12a855d511 1. Added code and config to assign invitee person as assignee on invite workflow
2. Various changes to invite service arising from moving accept and reject logic and operations out of invite web scripts, and into workflow actions on respective "accept" and "reject" transitions of invitePending task
- in web-scripts-application-context removed services no longer needed for invitereponse web script (only needs WorkflowService)
- moved logic and operations for accept and reject invite out of inviteresponse web script and into AcceptInviteAction and RejectInviteAction actions for invitePending task in workflow definition
- refine house keeping work that cleans up invitee person node and disabled account if they are no longer being used (no outstanding pending invites for invitee) when invitee rejects invite
- changed pending invites query to cater for when inviteAccepted and inviteRejected tasks left incomplete in inviter's dashboard "tasklist"
- a few minor code cleanups
- added SiteService to ServiceRegistry for use in accept and reject workflow action classes
 

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@10755 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2008-09-04 15:44:56 +00:00

472 lines
23 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans-2.0.dtd'>
<beans>
<!-- -->
<!-- Web Script Configuration -->
<!-- -->
<bean id="webscripts.configsource" class="org.alfresco.config.source.UrlConfigSource">
<constructor-arg>
<list>
<value>classpath:alfresco/web-scripts-config.xml</value>
<value>classpath:alfresco/extension/web-api-config-custom.xml</value> <!-- for backwards compatibility -->
<value>classpath:alfresco/extension/web-scripts-config-custom.xml</value>
</list>
</constructor-arg>
</bean>
<bean id="webscripts.config" class="org.alfresco.config.xml.XMLConfigService" init-method="init">
<constructor-arg>
<ref bean="webscripts.configsource" />
</constructor-arg>
</bean>
<!-- -->
<!-- Web Script Storage -->
<!-- -->
<bean id="webscripts.repostore" class="org.alfresco.repo.web.scripts.RepoStore" abstract="true">
<property name="transactionHelper" ref="retryingTransactionHelper" />
<property name="nodeService" ref="nodeService" />
<property name="namespaceService" ref="namespaceService" />
<property name="contentService" ref="contentService" />
<property name="fileFolderService" ref="fileFolderService" />
<property name="searchService" ref="SearchService" />
<property name="permissionService" ref="PermissionService" />
<property name="tenantDeployerService" ref="tenantAdminService" />
</bean>
<bean name="webscripts.store.repo.extension" parent="webscripts.repostore">
<property name="store"><value>workspace://SpacesStore</value></property>
<property name="path"><value>/${spaces.company_home.childname}/${spaces.dictionary.childname}/cm:extensionwebscripts</value></property>
</bean>
<bean name="webscripts.store.repo" parent="webscripts.repostore">
<property name="mustExist"><value>true</value></property>
<property name="store"><value>workspace://SpacesStore</value></property>
<property name="path"><value>/${spaces.company_home.childname}/${spaces.dictionary.childname}/cm:webscripts</value></property>
</bean>
<bean id="webscripts.store.client.extension" parent="webscripts.classpathstore">
<property name="classPath"><value>alfresco/extension/templates/webscripts</value></property>
</bean>
<bean id="webscripts.store.client" parent="webscripts.classpathstore">
<property name="mustExist"><value>true</value></property>
<property name="classPath"><value>alfresco/templates/webscripts</value></property>
</bean>
<bean id="webscripts.searchpath" class="org.alfresco.web.scripts.SearchPath">
<property name="searchPath">
<list>
<ref bean="webscripts.store.repo.extension" />
<ref bean="webscripts.store.repo" />
<ref bean="webscripts.store.client.extension" />
<ref bean="webscripts.store.client" />
<ref bean="webscripts.store" />
</list>
</property>
</bean>
<!-- -->
<!-- Web Script Repository (Server-Tier) Container -->
<!-- -->
<bean id="webscripts.repo.imageresolver" class="org.alfresco.repo.web.scripts.RepositoryImageResolver" />
<bean id="webscripts.repo.templateprocessor" class="org.alfresco.repo.web.scripts.RepositoryTemplateProcessor">
<property name="serviceRegistry" ref="ServiceRegistry" />
<property name="freeMarkerProcessor" ref="freeMarkerProcessor" />
<property name="searchPath" ref="webscripts.searchpath" />
<!-- <property name="defaultEncoding"><value>UTF-8</value></property> -->
</bean>
<bean id="webscripts.repo.scriptprocessor" class="org.alfresco.repo.web.scripts.RepositoryScriptProcessor">
<property name="searchPath" ref="webscripts.searchpath" />
<property name="scriptService" ref="scriptService" />
</bean>
<bean id="webscripts.container" class="org.alfresco.repo.web.scripts.RepositoryContainer" parent="webscripts.abstractcontainer">
<property name="name"><value>Repository</value></property>
<property name="scriptObjects">
<map merge="true">
<entry key="paging">
<ref bean="webscripts.js.paging" />
</entry>
</map>
</property>
<property name="templateObjects">
<map merge="true">
<entry key="cmistypeid">
<bean class="org.alfresco.repo.cmis.rest.CMISTypeIdMethod">
<constructor-arg><ref bean="CMISMapping"/></constructor-arg>
</bean>
</entry>
<entry key="cmisproperty">
<bean class="org.alfresco.repo.cmis.rest.CMISPropertyValueMethod">
<constructor-arg><ref bean="CMISPropertyService"/></constructor-arg>
</bean>
</entry>
<entry key="cmisresultset">
<bean class="org.alfresco.repo.cmis.rest.CMISResultSetMethod">
<constructor-arg><ref bean="ServiceRegistry"/></constructor-arg>
<constructor-arg><ref bean="webscripts.repo.imageresolver"/></constructor-arg>
</bean>
</entry>
<entry key="cmischildren">
<bean class="org.alfresco.repo.cmis.rest.CMISChildrenMethod">
<constructor-arg><ref bean="CMISService"/></constructor-arg>
<constructor-arg><ref bean="ServiceRegistry"/></constructor-arg>
<constructor-arg><ref bean="webscripts.repo.imageresolver"/></constructor-arg>
</bean>
</entry>
</map>
</property>
<property name="registryFactory">
<bean class="org.springframework.beans.factory.config.ObjectFactoryCreatingFactoryBean">
<property name="targetBeanName"><idref local="webscripts.registry.prototype"/></property>
</bean>
</property>
<property name="transactionHelper" ref="retryingTransactionHelper" />
<property name="permissionService" ref="permissionService" />
<property name="authorityService" ref="authorityService" />
<property name="repository" ref="repositoryHelper" />
<property name="repositoryImageResolver" ref="webscripts.repo.imageresolver" />
<property name="templateProcessor" ref="webscripts.repo.templateprocessor" />
<property name="scriptProcessor" ref="webscripts.repo.scriptprocessor" />
<property name="descriptorService" ref="DescriptorService" />
<property name="tenantDeployerService" ref="tenantAdminService" />
<property name="webScriptsRegistryCache" ref="webScriptsRegistryCache"/>
</bean>
<bean id="webscripts.registry.prototype" parent="webscripts.registry" scope="prototype"/>
<!-- -->
<!-- Web Script Authenticators -->
<!-- -->
<!-- HTTP Basic Authenticator (Servlet based) -->
<bean id="webscripts.authenticator.basic" class="org.alfresco.repo.web.scripts.servlet.BasicHttpAuthenticatorFactory">
<property name="authenticationService" ref="AuthenticationService" />
</bean>
<!-- JSR-168 Authenticator (Portal based) -->
<bean id="webscripts.authenticator.jsr168" class="org.alfresco.repo.web.scripts.portlet.JSR168PortletAuthenticatorFactory">
<property name="unprotAuthenticationService" ref="authenticationService" />
<property name="transactionService" ref="TransactionService" />
</bean>
<!-- Facebook Authenticator -->
<bean id="webscripts.authenticator.facebook" class="org.alfresco.repo.web.scripts.facebook.FacebookAuthenticatorFactory" />
<!-- -->
<!-- Web Script Javascript Extensions -->
<!-- -->
<!-- TODO: the following root js objects should only really be available in context of web scripts -->
<bean id="webscripts.js.paging" class="org.alfresco.repo.web.util.paging.Paging" />
<!-- -->
<!-- API Beans -->
<!-- -->
<!-- Javascript APIs -->
<bean id="webscript.org.alfresco.jsdebugger.get" class="org.alfresco.web.scripts.bean.JavascriptDebugger" parent="webscript">
<property name="debugger" ref="rhinoScriptDebugger" />
</bean>
<bean id="webscript.org.alfresco.jsdebugger.post" class="org.alfresco.web.scripts.bean.JavascriptDebuggerPost" parent="webscript">
<property name="debugger" ref="rhinoScriptDebugger" />
</bean>
<!-- Authentication APIs -->
<bean id="webscript.org.alfresco.repository.login.get" class="org.alfresco.repo.web.scripts.bean.Login" parent="webscript">
<property name="authenticationService" ref="authenticationService" />
</bean>
<bean id="webscript.org.alfresco.repository.loginticket.get" class="org.alfresco.repo.web.scripts.bean.LoginTicket" parent="webscript">
<property name="ticketComponent" ref="ticketComponent" />
</bean>
<bean id="webscript.org.alfresco.repository.loginticket.delete" class="org.alfresco.repo.web.scripts.bean.LoginTicketDelete" parent="webscript">
<property name="authenticationService" ref="authenticationService" />
<property name="ticketComponent" ref="ticketComponent" />
</bean>
<!-- List of registered (OpenSearch) search engines -->
<bean id="webscript.org.alfresco.repository.search.searchengines.get" class="org.alfresco.repo.web.scripts.bean.SearchEngines" parent="webscript">
<property name="configService" ref="webscripts.config" />
<property name="searchProxy" ref="webscript.org.alfresco.repository.search.searchproxy.get" />
</bean>
<!-- Alfresco Web Client Keyword Search (OpenSearch) -->
<bean id="webscript.org.alfresco.repository.search.keywordsearch.get" class="org.alfresco.repo.web.scripts.bean.KeywordSearch" parent="webscript">
<property name="searchService" ref="SearchService" />
<property name="serviceRegistry" ref="ServiceRegistry" />
<property name="repositoryImageResolver" ref="webscripts.repo.imageresolver" />
</bean>
<!-- Alfresco Web Client Person Search (OpenSearch) -->
<bean id="webscript.org.alfresco.repository.search.personsearch.get" class="org.alfresco.repo.web.scripts.bean.KeywordSearch" parent="webscript">
<property name="searchService" ref="SearchService" />
<property name="serviceRegistry" ref="ServiceRegistry" />
<property name="repositoryImageResolver" ref="webscripts.repo.imageresolver" />
</bean>
<!-- Alfresco (OpenSearch) Proxy -->
<bean id="webscript.org.alfresco.repository.search.searchproxy.get" class="org.alfresco.repo.web.scripts.bean.SearchProxy" parent="webscript">
<property name="configService" ref="webscripts.config" />
<property name="formatRegistry" ref="webscripts.formatregistry" />
</bean>
<!-- Content Retrieval -->
<bean id="webscript.org.alfresco.repository.store.content.get" class="org.alfresco.repo.web.scripts.content.ContentGet" parent="webscript">
<property name="repository" ref="repositoryHelper" />
<property name="namespaceService" ref="NamespaceService" />
<property name="permissionService" ref="PermissionService" />
<property name="nodeService" ref="NodeService" />
<property name="contentService" ref="ContentService" />
<property name="mimetypeService" ref="MimetypeService" />
</bean>
<bean id="webscript.org.alfresco.repository.content.stream" class="org.alfresco.repo.web.scripts.content.StreamContent" parent="webscript">
<property name="permissionService" ref="PermissionService" />
<property name="nodeService" ref="NodeService" />
<property name="contentService" ref="ContentService" />
<property name="mimetypeService" ref="MimetypeService" />
</bean>
<!-- Remote Store service - AVM -->
<bean id="webscript.org.alfresco.repository.store.remoteavm.get" class="org.alfresco.repo.web.scripts.bean.AVMRemoteStore" parent="webscript">
<property name="mimetypeService" ref="MimetypeService" />
<property name="avmService" ref="AVMService" />
<property name="rootPath"><value>alfresco</value></property>
<property name="store"><value>sitestore</value></property>
</bean>
<bean id="webscript.org.alfresco.repository.store.remoteavm.post" class="org.alfresco.repo.web.scripts.bean.AVMRemoteStore" parent="webscript">
<property name="mimetypeService" ref="MimetypeService" />
<property name="avmService" ref="AVMService" />
<property name="rootPath"><value>alfresco</value></property>
<property name="store"><value>sitestore</value></property>
</bean>
<bean id="webscript.org.alfresco.repository.store.remoteavm.delete" class="org.alfresco.repo.web.scripts.bean.AVMRemoteStore" parent="webscript">
<property name="mimetypeService" ref="MimetypeService" />
<property name="avmService" ref="AVMService" />
<property name="rootPath"><value>alfresco</value></property>
<property name="store"><value>sitestore</value></property>
</bean>
<!-- -->
<!-- Activity Feed Web Scripts -->
<!-- -->
<!-- Activity User Feed - to get activities feed for logged in user -->
<bean id="webscript.org.alfresco.repository.activities.feed.userfeed.get" class="org.alfresco.repo.web.scripts.activities.feed.UserFeedRetrieverWebScript" parent="webscript">
<property name="activityService" ref="activityService"/>
<property name="authorityService" ref="AuthorityService"/>
</bean>
<!-- Activity Admin Feed - to get activities feed for specified user -->
<bean id="webscript.org.alfresco.repository.activities.feed.userfeed-admin.get" class="org.alfresco.repo.web.scripts.activities.feed.UserFeedRetrieverWebScript" parent="webscript">
<property name="activityService" ref="activityService"/>
<property name="authorityService" ref="AuthorityService"/>
</bean>
<!-- Activity Site Feed - to get activities feed for given site, if private site then need to be a member or admin -->
<bean id="webscript.org.alfresco.repository.activities.feed.sitefeed.get" class="org.alfresco.repo.web.scripts.activities.feed.SiteFeedRetrieverWebScript" parent="webscript">
<property name="activityService" ref="activityService"/>
<property name="siteService" ref="siteService"/>
</bean>
<!-- -->
<!-- Activity Templates Storage -->
<!-- -->
<bean id="webscript.org.alfresco.repository.activities.templates.get" class="org.alfresco.repo.web.scripts.activities.TemplatesWebScript" parent="webscript">
<property name="searchPath" ref="activity.template.searchpath"/>
</bean>
<bean id="webscript.org.alfresco.repository.activities.template.get" class="org.alfresco.repo.web.scripts.activities.TemplateWebScript" parent="webscript">
<property name="searchPath" ref="activity.template.searchpath"/>
</bean>
<bean id="templates.classpathstore" class="org.alfresco.web.scripts.ClassPathStore" abstract="true" />
<bean id="activity.template.store.client.extension" parent="templates.classpathstore">
<property name="classPath"><value>alfresco/extension/templates/activities</value></property>
</bean>
<bean id="activity.template.store.client" parent="templates.classpathstore">
<property name="mustExist"><value>true</value></property>
<property name="classPath"><value>alfresco/templates/activities</value></property>
</bean>
<bean id="activity.template.searchpath" class="org.alfresco.web.scripts.SearchPath">
<property name="searchPath">
<list>
<ref bean="activity.template.store.client.extension" />
<ref bean="activity.template.store.client" />
</list>
</property>
</bean>
<!-- -->
<!-- Invite Service REST API -->
<!-- -->
<!-- -->
<!-- Invite Web Script - Invoked by a Site Manager (Inviter) to either invite another person (Invitee) to -->
<!-- join a Site as a Site Collaborator, or to cancel a pending invitation that has already been sent out -->
<!-- -->
<bean id="webscript.org.alfresco.repository.invite.invite.get"
class="org.alfresco.repo.web.scripts.invite.Invite"
parent="webscript">
<property name="workflowService" ref="WorkflowService"/>
<property name="personService" ref="personService"/>
<property name="authenticationService" ref="authenticationService"/>
<property name="mutableAuthenticationDao" ref="authenticationDao"/>
<property name="siteService" ref="SiteService"/>
<property name="nodeService" ref="NodeService"/>
<property name="userNameGenerator" ref="userNameGenerator"/>
<property name="passwordGenerator" ref="passwordGenerator"/>
</bean>
<!-- -->
<!-- Invite Accept/Reject Web Script - accepts or rejects a pending invite -->
<!-- -->
<bean id="webscript.org.alfresco.repository.invite.inviteresponse.put"
class="org.alfresco.repo.web.scripts.invite.InviteResponse"
parent="webscript">
<property name="workflowService" ref="WorkflowService"/>
</bean>
<!-- -->
<!-- Invites Web Script (pending invites) - returns pending invites matching the given -->
<!-- inviter user name, invitee user name, site short name, or invite ID URL request parameters -->
<!-- (at least one of the above parameters must be provided) -->
<!-- -->
<bean id="webscript.org.alfresco.repository.invite.invites.get"
class="org.alfresco.repo.web.scripts.invite.Invites"
parent="webscript">
<property name="workflowService" ref="WorkflowService"/>
<property name="serviceRegistry" ref="ServiceRegistry"/>
<property name="siteService" ref="SiteService"/>
</bean>
<!-- -->
<!-- Returns invite information when for a given inviteId and inviteTicket -->
<!-- This webscript is accessible without authentication -->
<!-- -->
<bean id="webscript.org.alfresco.repository.invite.invite-by-ticket.get"
class="org.alfresco.repo.web.scripts.invite.InviteByTicket"
parent="webscript">
<property name="workflowService" ref="WorkflowService"/>
<property name="serviceRegistry" ref="ServiceRegistry"/>
<property name="siteService" ref="SiteService"/>
</bean>
<!-- -->
<!-- Person Service REST API -->
<!-- -->
<!-- -->
<!-- person.put Web Script - updates a person with the given person properties -->
<!-- -->
<bean id="webscript.org.alfresco.repository.person.person.put"
class="org.alfresco.repo.web.scripts.person.PersonPut"
parent="webscript">
<property name="serviceRegistry" ref="ServiceRegistry"/>
<property name="authenticationComponent" ref="AuthenticationComponent"/>
</bean>
<!-- -->
<!-- changepassword.post Web Script - updates a user password -->
<!-- -->
<bean id="webscript.org.alfresco.repository.person.changepassword.post"
class="org.alfresco.repo.web.scripts.person.ChangePasswordPost"
parent="webscript">
<property name="authenticationService" ref="AuthenticationService"/>
</bean>
<!-- Switch on debugger by setting log4j.logger.org.alfresco.repo.web.scripts.AlfrescoRhinoScriptDebugger to DEBUG -->
<bean id="rhinoScriptDebugger" class="org.alfresco.repo.web.scripts.AlfrescoRhinoScriptDebugger" init-method="start"/>
<!-- -->
<!-- CMIS API -->
<!-- -->
<!-- CMIS custom mimetypes -->
<bean id="webscripts.cmis.adaptors" parent="webscripts.adaptorset">
<property name="readers">
<list>
<bean class="org.alfresco.repo.cmis.rest.CMISQueryReader" />
</list>
</property>
</bean>
<!-- Default Formats -->
<bean id="webscripts.cmis.formats" parent="webscripts.formatmap">
<property name="formats">
<props>
<prop key="cmisquery">application/cmisquery+xml</prop>
<prop key="cmisallowableactions">application/cmisallowableactions+xml</prop>
</props>
</property>
<property name="mimetypes">
<props>
<prop key="application/cmisquery+xml">cmisquery</prop>
<prop key="application/cmisallowableactions+xml">application/cmisallowableactions+xml</prop>
</props>
</property>
</bean>
<!-- CMIS Javsascript API -->
<bean id="webscripts.js.cmis" parent="baseJavaScriptExtension" class="org.alfresco.repo.cmis.rest.CMISScript">
<property name="extensionName"><value>cmis</value></property>
<property name="serviceRegistry" ref="ServiceRegistry" />
<property name="repository" ref="repositoryHelper" />
<property name="CMISService" ref="CMISService" />
<property name="CMISDictionaryService" ref="CMISDictionaryService" />
<property name="CMISQueryService" ref="CMISQueryService" />
<property name="paging" ref="webscripts.js.paging" />
</bean>
<!-- CMIS Helpers -->
<bean id="webscript.org.alfresco.cmis.test.post" class="org.alfresco.repo.cmis.rest.test.CMISTestRunnerWebScript" parent="webscript" />
<bean id="webscripts.cmis.atom.extension" class="org.alfresco.web.scripts.atom.AbderaExtension">
<property name="abderaService" ref="webscripts.abdera"/>
<property name="defaultNamespace"><value>http://www.cmis.org/2008/05</value></property>
<property name="QNames">
<props>
<prop key="cmis_object">object</prop>
</props>
</property>
<property name="extensionFactories">
<list>
<bean class="org.apache.abdera.ext.cmis.CMISExtensionFactory"/>
</list>
</property>
</bean>
</beans>