Merged V3.2E to HEAD

17635: Complete fix for ETHREEOH-2879 - user with missing first/last name able to use Discussions, Blogs, Links etc. in Share.
   17637: Fix regression from r17601: Favourite sites in header menu.
   17638: Fix ETHREEOH-3610 - upgrade Enterprise 2.x -> 3.2 (personUsagePatch)
   17641: ETHREEOH-3612 Security Issue : DeploymentTarget uses String to represent passwords
   17642: Fix for ETHREEOH-3482 - Impossible to delete content from its details page.
          - regression due to the "AbortProcessingException" changes added a while back.
   17660: Minor functional fixes for mobile app and cleanup
   17663: Fixed ETHREEOH-3664 "'My Tasks' dashlet could not load task list if a user was invited to a private site"
            - When webscript accessed a private site undefined was returned so the title and description couldn't be displayed, now the values are store on the invite task instead.
   17665: Fix up compile errors from r17663 - also clean up old code to coding standards in related invite classes.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@18162 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2010-01-20 10:51:08 +00:00
parent c1d54ada76
commit 9c23ced4aa
10 changed files with 252 additions and 230 deletions

View File

@@ -74,6 +74,12 @@
<property name="inwf:resourceName"> <property name="inwf:resourceName">
<type>d:text</type> <type>d:text</type>
</property> </property>
<property name="inwf:resourceTitle">
<type>d:text</type>
</property>
<property name="inwf:resourceDescription">
<type>d:text</type>
</property>
<property name="inwf:inviteeRole"> <property name="inwf:inviteeRole">
<type>d:text</type> <type>d:text</type>
</property> </property>

View File

@@ -24,11 +24,11 @@ public class DeploymentReceiverAuthenticatorAuthenticationService implements Dep
* @param password * @param password
* @return true, yes - go ahead. * @return true, yes - go ahead.
*/ */
public boolean logon(String user, String password) public boolean logon(String user, char[] password)
{ {
try try
{ {
authenticationService.authenticate(user, password.toCharArray()); authenticationService.authenticate(user, password);
return true; return true;
} }
catch (AuthenticationException e) catch (AuthenticationException e)

View File

@@ -72,7 +72,7 @@ public class DeploymentReceiverServiceClient implements
/* (non-Javadoc) /* (non-Javadoc)
* @see org.alfresco.deployment.DeploymentReceiverService#begin(java.lang.String, java.lang.String, java.lang.String) * @see org.alfresco.deployment.DeploymentReceiverService#begin(java.lang.String, java.lang.String, java.lang.String)
*/ */
public DeploymentToken begin(String target, String storeName, int version, String user, String password) public DeploymentToken begin(String target, String storeName, int version, String user, char[] password)
{ {
return fTransport.begin(target, storeName, version, user, password); return fTransport.begin(target, storeName, version, user, password);
} }
@@ -138,7 +138,7 @@ public class DeploymentReceiverServiceClient implements
/* (non-Javadoc) /* (non-Javadoc)
* @see org.alfresco.deployment.DeploymentReceiverService#shutDown(java.lang.String, java.lang.String) * @see org.alfresco.deployment.DeploymentReceiverService#shutDown(java.lang.String, java.lang.String)
*/ */
public void shutDown(String user, String password) public void shutDown(String user, char[] password)
{ {
fTransport.shutDown(user, password); fTransport.shutDown(user, password);
} }

View File

@@ -1082,7 +1082,7 @@ public class DeploymentServiceImpl implements DeploymentService
try try
{ {
DeploymentToken token = service.begin(target, storeName, version, userName, password); DeploymentToken token = service.begin(target, storeName, version, userName, password.toCharArray());
ticket = token.getTicket(); ticket = token.getTicket();
deployDirectoryPushFSR(service, ticket, version, srcPath, "/", matcher, eventQueue, sendQueue, errors, lock); deployDirectoryPushFSR(service, ticket, version, srcPath, "/", matcher, eventQueue, sendQueue, errors, lock);
} }

View File

@@ -5,9 +5,6 @@ import org.alfresco.service.cmr.invitation.Invitation.ResourceType;
/* package scope */ abstract class InvitationImpl /* package scope */ abstract class InvitationImpl
{ {
/** /**
* Unique reference for this invitation * Unique reference for this invitation
*/ */
@@ -46,20 +43,23 @@ import org.alfresco.service.cmr.invitation.Invitation.ResourceType;
this.resourceType = resourceType; this.resourceType = resourceType;
} }
public void setInviteId(String inviteId) { public void setInviteId(String inviteId)
{
this.inviteId = inviteId; this.inviteId = inviteId;
} }
public String getInviteId() { public String getInviteId()
{
return inviteId; return inviteId;
} }
public void setResourceName(String resourceName) { public void setResourceName(String resourceName)
{
this.resourceName = resourceName; this.resourceName = resourceName;
} }
public String getResourceName() { public String getResourceName()
{
return resourceName; return resourceName;
} }
} }

View File

@@ -59,6 +59,7 @@ import org.alfresco.service.cmr.security.MutableAuthenticationService;
import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.cmr.site.SiteService;
import org.alfresco.service.cmr.site.SiteInfo;
import org.alfresco.service.cmr.workflow.WorkflowDefinition; 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.WorkflowInstance; import org.alfresco.service.cmr.workflow.WorkflowInstance;
@@ -1320,46 +1321,35 @@ public class InvitationServiceImpl implements InvitationService, NodeServicePoli
// Get invitee person NodeRef to add as assignee // Get invitee person NodeRef to add as assignee
NodeRef inviteeNodeRef = this.personService.getPerson(inviteeUserName); NodeRef inviteeNodeRef = this.personService.getPerson(inviteeUserName);
SiteInfo siteInfo = this.siteService.getSite(siteShortName);
String siteDescription = siteInfo.getDescription();
if (siteDescription == null)
{
siteDescription = "";
}
else if (siteDescription.length() > 255)
{
siteDescription = siteDescription.substring(0, 255);
}
// create workflow properties // create workflow properties
Map<QName, Serializable> workflowProps = new HashMap<QName, Serializable>( Map<QName, Serializable> workflowProps = new HashMap<QName, Serializable>(16);
16); workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_INVITER_USER_NAME, inviterUserName);
workflowProps.put( workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_INVITEE_USER_NAME, inviteeUserName);
WorkflowModelNominatedInvitation.WF_PROP_INVITER_USER_NAME, workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_INVITEE_EMAIL, inviteeEmail);
inviterUserName);
workflowProps.put(
WorkflowModelNominatedInvitation.WF_PROP_INVITEE_USER_NAME,
inviteeUserName);
workflowProps.put(
WorkflowModelNominatedInvitation.WF_PROP_INVITEE_EMAIL,
inviteeEmail);
workflowProps.put(WorkflowModel.ASSOC_ASSIGNEE, inviteeNodeRef); workflowProps.put(WorkflowModel.ASSOC_ASSIGNEE, inviteeNodeRef);
workflowProps.put( workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_INVITEE_FIRSTNAME, inviteeFirstName);
WorkflowModelNominatedInvitation.WF_PROP_INVITEE_FIRSTNAME, workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_INVITEE_LASTNAME, inviteeLastName);
inviteeFirstName); workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_INVITEE_GEN_PASSWORD, inviteePassword);
workflowProps.put( workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_NAME, siteShortName);
WorkflowModelNominatedInvitation.WF_PROP_INVITEE_LASTNAME, workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_TITLE, siteInfo.getTitle());
inviteeLastName); workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_DESCRIPTION, siteDescription);
workflowProps.put( workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_TYPE, resourceType.toString());
WorkflowModelNominatedInvitation.WF_PROP_INVITEE_GEN_PASSWORD, workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_INVITEE_ROLE, inviteeSiteRole);
inviteePassword); workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_SERVER_PATH, serverPath);
workflowProps.put( workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_ACCEPT_URL, acceptUrl);
WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_NAME, workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_REJECT_URL, rejectUrl);
siteShortName); workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_INVITE_TICKET, inviteTicket);
workflowProps.put(
WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_TYPE,
resourceType.toString());
workflowProps.put(
WorkflowModelNominatedInvitation.WF_PROP_INVITEE_ROLE,
inviteeSiteRole);
workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_SERVER_PATH,
serverPath);
workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_ACCEPT_URL,
acceptUrl);
workflowProps.put(WorkflowModelNominatedInvitation.WF_PROP_REJECT_URL,
rejectUrl);
workflowProps.put(
WorkflowModelNominatedInvitation.WF_PROP_INVITE_TICKET,
inviteTicket);
// start the workflow // start the workflow
WorkflowPath wfPath = this.workflowService.startWorkflow(wfDefinition WorkflowPath wfPath = this.workflowService.startWorkflow(wfDefinition

View File

@@ -41,15 +41,15 @@ import java.util.Map;
* *
* @see org.alfresco.service.cmr.invitation.NominatedInvitation * @see org.alfresco.service.cmr.invitation.NominatedInvitation
*/ */
/*package scope */ class NominatedInvitationImpl extends InvitationImpl implements NominatedInvitation, Serializable /*package scope */ class NominatedInvitationImpl extends InvitationImpl implements NominatedInvitation, Serializable
{ {
private static final long serialVersionUID = -8800842866845149466L; private static final long serialVersionUID = -8800842866845149466L;
private String inviteeFirstName; private String inviteeFirstName;
private String inviteeLastName; private String inviteeLastName;
private String inviteeEmail; private String inviteeEmail;
private String inviterUserName; private String inviterUserName;
private String resourceDescription;
private String resourceTitle;
private String roleName; private String roleName;
private String serverPath; private String serverPath;
private String acceptUrl; private String acceptUrl;
@@ -78,10 +78,11 @@ import java.util.Map;
inviteeLastName = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_INVITEE_LASTNAME); inviteeLastName = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_INVITEE_LASTNAME);
inviteeEmail = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_INVITEE_EMAIL); inviteeEmail = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_INVITEE_EMAIL);
inviterUserName = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_INVITER_USER_NAME); inviterUserName = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_INVITER_USER_NAME);
// inviteePassword = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_INVITEE_GEN_PASSWORD); resourceTitle = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_TITLE);
resourceDescription = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_DESCRIPTION);
setResourceName( (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_NAME)); setResourceName( (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_NAME));
if(workflowProps.containsKey(WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_TYPE)) if (workflowProps.containsKey(WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_TYPE))
{ {
setResourceType(ResourceType.valueOf((String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_TYPE))); setResourceType(ResourceType.valueOf((String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_RESOURCE_TYPE)));
} }
@@ -90,100 +91,130 @@ import java.util.Map;
acceptUrl = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_ACCEPT_URL); acceptUrl = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_ACCEPT_URL);
rejectUrl = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_REJECT_URL); rejectUrl = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_REJECT_URL);
ticket = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_INVITE_TICKET); ticket = (String)workflowProps.get(WorkflowModelNominatedInvitation.WF_PROP_INVITE_TICKET);
} }
public void setInviteeFirstName(String inviteeFirstName) { public void setInviteeFirstName(String inviteeFirstName)
{
this.inviteeFirstName = inviteeFirstName; this.inviteeFirstName = inviteeFirstName;
} }
public String getInviteeFirstName() {
public String getInviteeFirstName()
{
return inviteeFirstName; return inviteeFirstName;
} }
public void setInviteeLastName(String inviteeLastName) { public void setInviteeLastName(String inviteeLastName)
{
this.inviteeLastName = inviteeLastName; this.inviteeLastName = inviteeLastName;
} }
public String getInviteeLastName() { public String getInviteeLastName()
{
return inviteeLastName; return inviteeLastName;
} }
public void setInviteeEmail(String inviteeEmail) { public void setInviteeEmail(String inviteeEmail)
{
this.inviteeEmail = inviteeEmail; this.inviteeEmail = inviteeEmail;
} }
public String getInviteeEmail() { public String getInviteeEmail()
{
return inviteeEmail; return inviteeEmail;
} }
public void setServerPath(String serverPath) { public String getResourceDescription()
{
return resourceDescription;
}
public String getResourceTitle()
{
return resourceTitle;
}
public void setServerPath(String serverPath)
{
this.serverPath = serverPath; this.serverPath = serverPath;
} }
public String getServerPath() { public String getServerPath()
{
return serverPath; return serverPath;
} }
public void setAcceptUrl(String acceptUrl) { public void setAcceptUrl(String acceptUrl)
{
this.acceptUrl = acceptUrl; this.acceptUrl = acceptUrl;
} }
public String getAcceptUrl() { public String getAcceptUrl()
{
return acceptUrl; return acceptUrl;
} }
public void setRejectUrl(String rejectUrl) { public void setRejectUrl(String rejectUrl)
{
this.rejectUrl = rejectUrl; this.rejectUrl = rejectUrl;
} }
public String getRejectUrl() { public String getRejectUrl()
{
return rejectUrl; return rejectUrl;
} }
public void setSentInviteDate(Date sentInviteDate) { public void setSentInviteDate(Date sentInviteDate)
{
this.sentInviteDate = sentInviteDate; this.sentInviteDate = sentInviteDate;
} }
public Date getSentInviteDate() { public Date getSentInviteDate()
{
return sentInviteDate; return sentInviteDate;
} }
public void setTicket(String ticket) { public void setTicket(String ticket)
{
this.ticket = ticket; this.ticket = ticket;
} }
public String getTicket() { public String getTicket()
{
return ticket; return ticket;
} }
public void setRoleName(String roleName) { public void setRoleName(String roleName)
{
this.roleName = roleName; this.roleName = roleName;
} }
public String getRoleName() { public String getRoleName()
{
return roleName; return roleName;
} }
public InvitationType getInvitationType() { public InvitationType getInvitationType()
{
return InvitationType.NOMINATED; return InvitationType.NOMINATED;
} }
public void setInviteeUserName(String inviteeUserName) { public void setInviteeUserName(String inviteeUserName)
{
this.inviteeUserName = inviteeUserName; this.inviteeUserName = inviteeUserName;
} }
public String getInviteeUserName() { public String getInviteeUserName()
{
return inviteeUserName; return inviteeUserName;
} }
public String getInviterUserName() { public String getInviterUserName()
{
return inviterUserName; return inviterUserName;
} }
public void setInviterUserName(String inviterUserName) { public void setInviterUserName(String inviterUserName)
{
this.inviterUserName= inviterUserName; this.inviterUserName= inviterUserName;
} }
} }

View File

@@ -67,6 +67,8 @@ public interface WorkflowModelNominatedInvitation
public static final QName WF_PROP_INVITEE_LASTNAME = QName.createQName(NAMESPACE_URI, "inviteeLastName"); public static final QName WF_PROP_INVITEE_LASTNAME = QName.createQName(NAMESPACE_URI, "inviteeLastName");
public static final QName WF_PROP_RESOURCE_TYPE = QName.createQName(NAMESPACE_URI, "resourceType"); public static final QName WF_PROP_RESOURCE_TYPE = QName.createQName(NAMESPACE_URI, "resourceType");
public static final QName WF_PROP_RESOURCE_NAME = QName.createQName(NAMESPACE_URI, "resourceName"); public static final QName WF_PROP_RESOURCE_NAME = QName.createQName(NAMESPACE_URI, "resourceName");
public static final QName WF_PROP_RESOURCE_TITLE = QName.createQName(NAMESPACE_URI, "resourceTitle");
public static final QName WF_PROP_RESOURCE_DESCRIPTION = QName.createQName(NAMESPACE_URI, "resourceDescription");
public static final QName WF_PROP_INVITEE_ROLE = QName.createQName(NAMESPACE_URI, "inviteeRole"); public static final QName WF_PROP_INVITEE_ROLE = QName.createQName(NAMESPACE_URI, "inviteeRole");
public static final QName WF_PROP_INVITEE_GEN_PASSWORD = QName.createQName(NAMESPACE_URI, "inviteeGenPassword"); public static final QName WF_PROP_INVITEE_GEN_PASSWORD = QName.createQName(NAMESPACE_URI, "inviteeGenPassword");
@@ -74,6 +76,8 @@ public interface WorkflowModelNominatedInvitation
public static final String wfVarInviteeUserName = "inwf_inviteeUserName"; public static final String wfVarInviteeUserName = "inwf_inviteeUserName";
public static final String wfVarInviterUserName = "inwf_inviterUserName"; public static final String wfVarInviterUserName = "inwf_inviterUserName";
public static final String wfVarResourceName = "inwf_resourceName"; public static final String wfVarResourceName = "inwf_resourceName";
public static final String wfVarResourceTitle = "inwf_resourceTitle";
public static final String wfVarResourceDescription = "inwf_resourceDescription";
public static final String wfVarResourceType = "inwf_resourceType"; public static final String wfVarResourceType = "inwf_resourceType";
public static final String wfVarWorkflowInstanceId = "workflowinstanceid"; public static final String wfVarWorkflowInstanceId = "workflowinstanceid";
public static final String wfVarRole = "inwf_inviteeRole"; public static final String wfVarRole = "inwf_inviteeRole";

View File

@@ -4062,14 +4062,8 @@ public class HibernateNodeDaoServiceImpl
final StoreRef storeRef, final StoreRef storeRef,
final ObjectArrayQueryCallback resultsCallback) final ObjectArrayQueryCallback resultsCallback)
{ {
final Pair<Long, QName> sizeCurrentPropQNamePair = qnameDAO.getQName(ContentModel.PROP_SIZE_CURRENT); final Pair<Long, QName> sizeCurrentPropQNamePair = qnameDAO.getOrCreateQName(ContentModel.PROP_SIZE_CURRENT);
final Pair<Long, QName> personTypeQNamePair = qnameDAO.getQName(ContentModel.TYPE_PERSON); final Pair<Long, QName> personTypeQNamePair = qnameDAO.getOrCreateQName(ContentModel.TYPE_PERSON);
// Shortcut the query if the QNames don't exist
if (sizeCurrentPropQNamePair == null || personTypeQNamePair == null)
{
return;
}
HibernateCallback callback = new HibernateCallback() HibernateCallback callback = new HibernateCallback()
{ {
@@ -4115,15 +4109,9 @@ public class HibernateNodeDaoServiceImpl
final StoreRef storeRef, final StoreRef storeRef,
final ObjectArrayQueryCallback resultsCallback) final ObjectArrayQueryCallback resultsCallback)
{ {
final Pair<Long, QName> usernamePropQNamePair = qnameDAO.getQName(ContentModel.PROP_USERNAME); final Pair<Long, QName> usernamePropQNamePair = qnameDAO.getOrCreateQName(ContentModel.PROP_USERNAME);
final Pair<Long, QName> sizeCurrentPropQNamePair = qnameDAO.getQName(ContentModel.PROP_SIZE_CURRENT); final Pair<Long, QName> sizeCurrentPropQNamePair = qnameDAO.getOrCreateQName(ContentModel.PROP_SIZE_CURRENT);
final Pair<Long, QName> personTypeQNamePair = qnameDAO.getQName(ContentModel.TYPE_PERSON); final Pair<Long, QName> personTypeQNamePair = qnameDAO.getOrCreateQName(ContentModel.TYPE_PERSON);
// Shortcut the query if the QNames don't exist
if (usernamePropQNamePair == null || sizeCurrentPropQNamePair == null || personTypeQNamePair == null)
{
return;
}
HibernateCallback callback = new HibernateCallback() HibernateCallback callback = new HibernateCallback()
{ {

View File

@@ -49,6 +49,10 @@ public interface NominatedInvitation extends Invitation
public String getResourceName(); public String getResourceName();
public String getResourceTitle();
public String getResourceDescription();
public String getServerPath(); public String getServerPath();
public String getAcceptUrl(); public String getAcceptUrl();
@@ -62,5 +66,4 @@ public interface NominatedInvitation extends Invitation
public String getTicket(); public String getTicket();
public String getRoleName(); public String getRoleName();
} }