Merged V3.2 to HEAD

18023: RM: groundwork for custom metadata delete
    18071: MT - fix ETHREEOH-3730 (reject invitation shows "Invitation not found" instead of Yes / No options)
    18078: MT - fix ETHREEOH-3892 (it is not possible to create or manage any Tenants once the DOD5015 RM AMP is installed)
    18903: RM Caveats - fix ALF-1894 (improvement for ESC - remove hardcoded "rmc" model/namespace)
    19046: Improve dictionary debug logging (ALF-587)
    19096: Merging PATCHES/V3.2.r to V3.2
        19075: Merging DEV/BELARUS/V3.2-2010_02_24 to PATCHES/V3.2.r
            18881: ALF-587: MT Upgrades to 3.2r fail unable to find Alfresco content types
        19085: ALF-587 - test/build fix (follow on for r18881->r19075)
    19145: Dynamic Models - follow-on for ALF-587 (& ALFCOM-2977) + additional unit tests
    19176: Remove Java 6'ism
    19198: Build/test fix (follow-on to r19145 - do not validate model delete of version nodes)


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@19260 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jan Vonka
2010-03-12 17:06:36 +00:00
parent 4720543c25
commit f85d448070
4 changed files with 80 additions and 248 deletions

View File

@@ -519,26 +519,16 @@
class="org.alfresco.repo.web.scripts.invite.Invite" class="org.alfresco.repo.web.scripts.invite.Invite"
parent="webscript"> parent="webscript">
<property name="workflowService" ref="WorkflowService"/> <property name="workflowService" ref="WorkflowService"/>
<property name="personService" ref="PersonService"/>
<property name="permissionService" ref="PermissionService"/>
<property name="invitationService" ref="InvitationService"/> <property name="invitationService" ref="InvitationService"/>
<property name="authenticationService" ref="AuthenticationService"/>
<property name="mutableAuthenticationDao" ref="authenticationDao"/>
<property name="siteService" ref="SiteService"/>
<property name="nodeService" ref="NodeService"/>
<property name="namespaceService" ref="NamespaceService"/>
<property name="userNameGenerator" ref="userNameGenerator"/>
<property name="passwordGenerator" ref="passwordGenerator"/>
</bean> </bean>
<!-- --> <!-- -->
<!-- Invite Accept/Reject Web Script - accepts or rejects a pending invite --> <!-- Invite Accept/Reject Web Script - accepts or rejects a pending invite -->
<!-- --> <!-- -->
<bean id="webscript.org.alfresco.repository.invite.inviteresponse.put" <bean id="webscript.org.alfresco.repository.invite.inviteresponse.put"
class="org.alfresco.repo.web.scripts.invite.InviteResponse" class="org.alfresco.repo.web.scripts.invite.InviteResponse"
parent="webscript"> parent="webscript">
<property name="workflowService" ref="WorkflowService"/>
<property name="tenantService" ref="tenantService"/> <property name="tenantService" ref="tenantService"/>
<property name="invitationService" ref="InvitationService"/> <property name="invitationService" ref="InvitationService"/>
</bean> </bean>
@@ -566,10 +556,10 @@
<bean id="webscript.org.alfresco.repository.invite.invite-by-ticket.get" <bean id="webscript.org.alfresco.repository.invite.invite-by-ticket.get"
class="org.alfresco.repo.web.scripts.invite.InviteByTicket" class="org.alfresco.repo.web.scripts.invite.InviteByTicket"
parent="webscript"> parent="webscript">
<property name="workflowService" ref="WorkflowService"/>
<property name="serviceRegistry" ref="ServiceRegistry"/> <property name="serviceRegistry" ref="ServiceRegistry"/>
<property name="siteService" ref="SiteService"/> <property name="siteService" ref="SiteService"/>
<property name="invitationService" ref="InvitationService"/> <property name="invitationService" ref="InvitationService"/>
<property name="tenantService" ref="tenantService"/>
</bean> </bean>

View File

@@ -18,43 +18,18 @@
*/ */
package org.alfresco.repo.web.scripts.invite; package org.alfresco.repo.web.scripts.invite;
import java.io.Serializable;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.invitation.WorkflowModelNominatedInvitation; import org.alfresco.repo.invitation.WorkflowModelNominatedInvitation;
import org.alfresco.repo.invitation.site.InviteHelper; import org.alfresco.repo.invitation.site.InviteHelper;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.MutableAuthenticationDao;
import org.alfresco.repo.security.authentication.PasswordGenerator;
import org.alfresco.repo.security.authentication.UserNameGenerator;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.repo.site.SiteModel;
import org.alfresco.repo.workflow.WorkflowModel;
import org.alfresco.service.cmr.invitation.Invitation; import org.alfresco.service.cmr.invitation.Invitation;
import org.alfresco.service.cmr.invitation.InvitationException;
import org.alfresco.service.cmr.invitation.InvitationExceptionForbidden; import org.alfresco.service.cmr.invitation.InvitationExceptionForbidden;
import org.alfresco.service.cmr.invitation.InvitationExceptionUserError; import org.alfresco.service.cmr.invitation.InvitationExceptionUserError;
import org.alfresco.service.cmr.invitation.InvitationService; import org.alfresco.service.cmr.invitation.InvitationService;
import org.alfresco.service.cmr.invitation.NominatedInvitation; import org.alfresco.service.cmr.invitation.NominatedInvitation;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.cmr.site.SiteService;
import org.alfresco.service.cmr.workflow.WorkflowDefinition;
import org.alfresco.service.cmr.workflow.WorkflowException; import org.alfresco.service.cmr.workflow.WorkflowException;
import org.alfresco.service.cmr.workflow.WorkflowPath;
import org.alfresco.service.cmr.workflow.WorkflowService; import org.alfresco.service.cmr.workflow.WorkflowService;
import org.alfresco.service.cmr.workflow.WorkflowTask;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.GUID;
import org.springframework.extensions.webscripts.Cache; import org.springframework.extensions.webscripts.Cache;
import org.springframework.extensions.webscripts.DeclarativeWebScript; import org.springframework.extensions.webscripts.DeclarativeWebScript;
import org.springframework.extensions.webscripts.Status; import org.springframework.extensions.webscripts.Status;
@@ -73,8 +48,6 @@ import org.apache.commons.logging.LogFactory;
*/ */
public class Invite extends DeclarativeWebScript public class Invite extends DeclarativeWebScript
{ {
private static final Log logger = LogFactory.getLog(Invite.class);
private static final String ACTION_START = "start"; private static final String ACTION_START = "start";
private static final String ACTION_CANCEL = "cancel"; private static final String ACTION_CANCEL = "cancel";
@@ -101,129 +74,18 @@ public class Invite extends DeclarativeWebScript
// services // services
private WorkflowService workflowService; private WorkflowService workflowService;
private PersonService personService;
private AuthenticationService authenticationService;
private PermissionService permissionService;
private MutableAuthenticationDao mutableAuthenticationDao;
private SiteService siteService;
private NodeService nodeService;
private NamespaceService namespaceService;
// user name and password generation beans
private UserNameGenerator usernameGenerator;
private PasswordGenerator passwordGenerator;
private InvitationService invitationService; private InvitationService invitationService;
/**
* Sets the workflowService property
*
* @param workflowService
* the workflow service to set
*/
public void setWorkflowService(WorkflowService workflowService) public void setWorkflowService(WorkflowService workflowService)
{ {
this.workflowService = workflowService; this.workflowService = workflowService;
} }
/** public void setInvitationService(InvitationService invitationService)
* Set the personService property
*
* @param personService
* the person service to set
*/
public void setPersonService(PersonService personService)
{ {
this.personService = personService; this.invitationService = invitationService;
} }
/**
* Set the authenticationService property
*
* @param authenticationService
* the authentication service to set
*/
public void setAuthenticationService(
AuthenticationService authenticationService)
{
this.authenticationService = authenticationService;
}
/**
* Set the mutable authentication DAO
*
* @param mutableAuthenticationDao
* Mutable Authentication DAO
*/
public void setMutableAuthenticationDao(
MutableAuthenticationDao mutableAuthenticationDao)
{
this.mutableAuthenticationDao = mutableAuthenticationDao;
}
/**
* Set the user name generator service
*
* @param userNameGenerator
* the user name generator
*/
public void setUserNameGenerator(UserNameGenerator userNameGenerator)
{
this.usernameGenerator = userNameGenerator;
}
/**
* Set the password generator service
*
* @param passwordGenerator
* the password generator
*/
public void setPasswordGenerator(PasswordGenerator passwordGenerator)
{
this.passwordGenerator = passwordGenerator;
}
/**
* Set the site service property
*
* @param siteService
* the site service to set
*/
public void setSiteService(SiteService siteService)
{
this.siteService = siteService;
}
/**
* Set the node service property
*
* @param nodeService
* the node service to set
*/
public void setNodeService(NodeService nodeService)
{
this.nodeService = nodeService;
}
/**
* Set the namespace service property
*
* @param namespaceService
* the namespace service to set
*/
public void setNamespaceService(NamespaceService namespaceService)
{
this.namespaceService = namespaceService;
}
/**
* Set the permission service
*
* @param permissionService the permission service
*/
public void setPermissionService(PermissionService permissionService)
{
this.permissionService = permissionService;
}
/* /*
* (non-Javadoc) * (non-Javadoc)
@@ -491,12 +353,4 @@ public class Invite extends DeclarativeWebScript
model.put(MODEL_PROP_KEY_ACTION, ACTION_CANCEL); model.put(MODEL_PROP_KEY_ACTION, ACTION_CANCEL);
model.put(MODEL_PROP_KEY_INVITE_ID, inviteId); model.put(MODEL_PROP_KEY_INVITE_ID, inviteId);
} }
public void setInvitationService(InvitationService invitationService) {
this.invitationService = invitationService;
}
public InvitationService getInvitationService() {
return invitationService;
}
} }

View File

@@ -21,11 +21,10 @@ package org.alfresco.repo.web.scripts.invite;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import org.alfresco.repo.invitation.WorkflowModelNominatedInvitation;
import org.alfresco.repo.invitation.site.InviteHelper;
import org.alfresco.repo.invitation.site.InviteInfo; import org.alfresco.repo.invitation.site.InviteInfo;
import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.template.TemplateNode; import org.alfresco.repo.template.TemplateNode;
import org.alfresco.repo.tenant.TenantService;
import org.alfresco.service.ServiceRegistry; import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.invitation.Invitation; import org.alfresco.service.cmr.invitation.Invitation;
import org.alfresco.service.cmr.invitation.InvitationExceptionNotFound; import org.alfresco.service.cmr.invitation.InvitationExceptionNotFound;
@@ -35,8 +34,6 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.cmr.site.SiteInfo; import org.alfresco.service.cmr.site.SiteInfo;
import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.cmr.site.SiteService;
import org.alfresco.service.cmr.workflow.WorkflowService;
import org.alfresco.service.cmr.workflow.WorkflowTask;
import org.springframework.extensions.webscripts.DeclarativeWebScript; import org.springframework.extensions.webscripts.DeclarativeWebScript;
import org.springframework.extensions.webscripts.Status; import org.springframework.extensions.webscripts.Status;
import org.springframework.extensions.webscripts.WebScriptException; import org.springframework.extensions.webscripts.WebScriptException;
@@ -51,33 +48,37 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
*/ */
public class InviteByTicket extends DeclarativeWebScript public class InviteByTicket extends DeclarativeWebScript
{ {
// request parameter names
private static final String PARAM_INVITEE_USER_NAME = "inviteeUserName";
// service instances // service instances
private WorkflowService workflowService;
private ServiceRegistry serviceRegistry; private ServiceRegistry serviceRegistry;
private SiteService siteService; private SiteService siteService;
private InvitationService invitationService; private InvitationService invitationService;
private TenantService tenantService;
/**
* Set the workflow service property public void setServiceRegistry(ServiceRegistry serviceRegistry)
*
* @param workflowService
* the workflow service to set
*/
public void setWorkflowService(WorkflowService workflowService)
{ {
this.workflowService = workflowService; this.serviceRegistry = serviceRegistry;
} }
public void setServiceRegistry(ServiceRegistry serviceRegistry) { public void setInvitationService(InvitationService invitationService)
this.serviceRegistry = serviceRegistry; {
} this.invitationService = invitationService;
}
public void setSiteService(SiteService siteService) { public void setSiteService(SiteService siteService)
{
this.siteService = siteService; this.siteService = siteService;
} }
/* public void setTenantService(TenantService tenantService)
{
this.tenantService = tenantService;
}
/*
* (non-Javadoc) * (non-Javadoc)
* *
* @see * @see
@@ -86,8 +87,37 @@ public class InviteByTicket extends DeclarativeWebScript
* org.alfresco.web.scripts.WebScriptResponse) * org.alfresco.web.scripts.WebScriptResponse)
*/ */
@Override @Override
protected Map<String, Object> executeImpl(WebScriptRequest req, protected Map<String, Object> executeImpl(final WebScriptRequest req, final Status status)
Status status) {
String tenantDomain = TenantService.DEFAULT_DOMAIN;
if (tenantService.isEnabled())
{
String inviteeUserName = req.getParameter(PARAM_INVITEE_USER_NAME);
if (inviteeUserName != null)
{
tenantDomain = tenantService.getUserDomain(inviteeUserName);
}
}
// run as system user
String mtAwareSystemUser = tenantService.getDomainUser(AuthenticationUtil.getSystemUserName(), tenantDomain);
Map<String, Object> ret = AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<Map<String, Object>>()
{
public Map<String, Object> doWork() throws Exception
{
return execute(req, status);
}
}, mtAwareSystemUser);
// authenticate as system for the rest of the webscript
AuthenticationUtil.setRunAsUser(mtAwareSystemUser);
return ret;
}
private Map<String, Object> execute(WebScriptRequest req, Status status)
{ {
// initialise model to pass on for template to render // initialise model to pass on for template to render
Map<String, Object> model = new HashMap<String, Object>(); Map<String, Object> model = new HashMap<String, Object>();
@@ -96,9 +126,6 @@ public class InviteByTicket extends DeclarativeWebScript
String inviteId = req.getServiceMatch().getTemplateVars().get("inviteId"); String inviteId = req.getServiceMatch().getTemplateVars().get("inviteId");
String inviteTicket = req.getServiceMatch().getTemplateVars().get("inviteTicket"); String inviteTicket = req.getServiceMatch().getTemplateVars().get("inviteTicket");
// authenticate as system for the rest of the webscript
AuthenticationUtil.setRunAsUserSystem();
try try
{ {
Invitation invitation = invitationService.getInvitation(inviteId); Invitation invitation = invitationService.getInvitation(inviteId);
@@ -130,14 +157,6 @@ public class InviteByTicket extends DeclarativeWebScript
} }
} }
public void setInvitationService(InvitationService invitationService) {
this.invitationService = invitationService;
}
public InvitationService getInvitationService() {
return invitationService;
}
private InviteInfo toInviteInfo(NominatedInvitation invitation) private InviteInfo toInviteInfo(NominatedInvitation invitation)
{ {
final PersonService personService = serviceRegistry.getPersonService(); final PersonService personService = serviceRegistry.getPersonService();

View File

@@ -21,16 +21,12 @@ package org.alfresco.repo.web.scripts.invite;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import org.alfresco.repo.invitation.WorkflowModelNominatedInvitation;
import org.alfresco.repo.invitation.site.InviteHelper;
import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.tenant.TenantService; import org.alfresco.repo.tenant.TenantService;
import org.alfresco.service.cmr.invitation.Invitation; import org.alfresco.service.cmr.invitation.Invitation;
import org.alfresco.service.cmr.invitation.InvitationExceptionForbidden; import org.alfresco.service.cmr.invitation.InvitationExceptionForbidden;
import org.alfresco.service.cmr.invitation.InvitationExceptionUserError; import org.alfresco.service.cmr.invitation.InvitationExceptionUserError;
import org.alfresco.service.cmr.invitation.InvitationService; import org.alfresco.service.cmr.invitation.InvitationService;
import org.alfresco.service.cmr.workflow.WorkflowService;
import org.alfresco.service.cmr.workflow.WorkflowTask;
import org.springframework.extensions.webscripts.DeclarativeWebScript; import org.springframework.extensions.webscripts.DeclarativeWebScript;
import org.springframework.extensions.webscripts.Status; import org.springframework.extensions.webscripts.Status;
import org.springframework.extensions.webscripts.WebScriptException; import org.springframework.extensions.webscripts.WebScriptException;
@@ -55,27 +51,15 @@ public class InviteResponse extends DeclarativeWebScript
private static final String PARAM_INVITEE_USER_NAME = "inviteeUserName"; private static final String PARAM_INVITEE_USER_NAME = "inviteeUserName";
// properties for services // properties for services
private WorkflowService workflowService;
private InvitationService invitationService; private InvitationService invitationService;
private TenantService tenantService; private TenantService tenantService;
/**
* Sets the workflow service property public void setInvitationService(InvitationService invitationService)
*
* @param workflowService
* the workflow service instance assign to the property
*/
public void setWorkflowService(WorkflowService workflowService)
{ {
this.workflowService = workflowService; this.invitationService = invitationService;
} }
/**
* Sets the tenant service property
*
* @param tenantService
* the tenant service instance assign to the property
*/
public void setTenantService(TenantService tenantService) public void setTenantService(TenantService tenantService)
{ {
this.tenantService = tenantService; this.tenantService = tenantService;
@@ -92,32 +76,25 @@ public class InviteResponse extends DeclarativeWebScript
@Override @Override
protected Map<String, Object> executeImpl(final WebScriptRequest req, final Status status) protected Map<String, Object> executeImpl(final WebScriptRequest req, final Status status)
{ {
String tenantDomain = TenantService.DEFAULT_DOMAIN;
if (tenantService.isEnabled()) if (tenantService.isEnabled())
{ {
final String tenantDomain;
String inviteeUserName = req.getParameter(PARAM_INVITEE_USER_NAME); String inviteeUserName = req.getParameter(PARAM_INVITEE_USER_NAME);
if (inviteeUserName != null) if (inviteeUserName != null)
{ {
tenantDomain = tenantService.getUserDomain(inviteeUserName); tenantDomain = tenantService.getUserDomain(inviteeUserName);
} }
else }
{
tenantDomain = "";
}
return AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<Map<String, Object>>() // run as system user
{ return AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<Map<String, Object>>()
public Map<String, Object> doWork() throws Exception
{
return execute(req, status);
}
}, tenantService.getDomainUser(AuthenticationUtil.getSystemUserName(), tenantDomain));
}
else
{ {
return execute(req, status); public Map<String, Object> doWork() throws Exception
} {
return execute(req, status);
}
}, tenantService.getDomainUser(AuthenticationUtil.getSystemUserName(), tenantDomain));
} }
private Map<String, Object> execute(WebScriptRequest req, Status status) private Map<String, Object> execute(WebScriptRequest req, Status status)
@@ -178,12 +155,4 @@ public class InviteResponse extends DeclarativeWebScript
return model; return model;
} }
public void setInvitationService(InvitationService invitationService) {
this.invitationService = invitationService;
}
public InvitationService getInvitationService() {
return invitationService;
}
} }