Merged V3.2 to HEAD

16673: Merged V3.1 to V3.2
      16307: ETHREEOH-2814-2815
      16393: ETHREEOH-2840: Failed to send email to group EVERYONE
      16395: Just forget to add this file  during previous (16393) CHECK-IN.
      16430: Added license header to new Java file - applied coding standards and code comments.
      16669: Merged V2.2 to V3.1
         16650: ETWOTWO-1288 - Create Web project Wizard-Step3 :XSS attack can be made when configuring ASR or FSR
         16668: Fix for ETWOTWO-1289 - My Web Files (Forms) dashlets XSS attack can be made when web project's details has been edited
   16676: Merged V3.1 to V3.2
      16675: Fix for ETHREEOH-2773 - Manage System users: system error happens when search is performed by a query that contains a space
   16699: Fixes to SURF samples Login page - as per ALFCOM-3447 and ALFCOM-3448 contributions

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16897 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2009-10-14 09:30:27 +00:00
parent 8ff98a72f5
commit fb35a5cf49
11 changed files with 176 additions and 74 deletions

View File

@@ -25,6 +25,7 @@
package org.alfresco.web.bean.admin;
import java.io.Serializable;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
@@ -56,7 +57,7 @@ public class ExportDialog extends BaseDialogBean
private static final String ALL_SPACES = "all";
private static final String CURRENT_SPACE = "current";
private static final String DEFAULT_OUTCOME = "dialog:close";
private static final String MSG_EXPORT = "export";
private static final String MSG_EXPORT_TITLE = "export_title";
private final static String MSG_LEFT_QUOTE = "left_qoute";
private final static String MSG_RIGHT_QUOTE = "right_quote";
@@ -120,8 +121,10 @@ public class ExportDialog extends BaseDialogBean
public String getContainerTitle()
{
FacesContext fc = FacesContext.getCurrentInstance();
return Application.getMessage(fc, MSG_EXPORT) +
" " + Application.getMessage(fc, MSG_LEFT_QUOTE) + browseBean.getActionSpace().getName() + Application.getMessage(fc, MSG_RIGHT_QUOTE);
String name = Application.getMessage(fc, MSG_LEFT_QUOTE)
+ browseBean.getActionSpace().getName()
+ Application.getMessage(fc, MSG_RIGHT_QUOTE);
return MessageFormat.format(Application.getMessage(fc, MSG_EXPORT_TITLE), name);
}
/**

View File

@@ -72,7 +72,7 @@ public class ImportDialog extends BaseDialogBean
private static final String MSG_ERROR_NO_FILE = "error_import_no_file";
private static final String MSG_ERROR_EMPTY_FILE = "error_import_empty_file";
private static final String MSG_OK = "ok";
private static final String MSG_IMPORT = "import";
private static final String MSG_IMPORT_TITLE = "import_title";
private final static String MSG_LEFT_QUOTE = "left_qoute";
private final static String MSG_RIGHT_QUOTE = "right_quote";
@@ -387,7 +387,9 @@ public class ImportDialog extends BaseDialogBean
public String getContainerTitle()
{
FacesContext fc = FacesContext.getCurrentInstance();
return Application.getMessage(fc, MSG_IMPORT) + " " + Application.getMessage(fc, MSG_LEFT_QUOTE)
+ browseBean.getActionSpace().getName() + Application.getMessage(fc, MSG_RIGHT_QUOTE);
String name = Application.getMessage(fc, MSG_LEFT_QUOTE)
+ browseBean.getActionSpace().getName()
+ Application.getMessage(fc, MSG_RIGHT_QUOTE);
return MessageFormat.format(Application.getMessage(fc, MSG_IMPORT_TITLE), name);
}
}

View File

@@ -0,0 +1,48 @@
/*
* Copyright (C) 2005-2009 Alfresco Software Limited.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* As a special exception to the terms and conditions of version 2.0 of
* the GPL, you may redistribute this Program in connection with Free/Libre
* and Open Source Software ("FLOSS") applications as described in Alfresco's
* FLOSS exception. You should have recieved a copy of the text describing
* the FLOSS exception, and it is also available here:
* http://www.alfresco.com/legal/licensing
*/
package org.alfresco.web.bean.users;
import java.util.Set;
import org.alfresco.service.cmr.security.AuthorityType;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.web.bean.spaces.InviteSpaceUsersWizard;
/**
* MailInviteSpaceUsersWizard JSF managed bean.
* Overrides the InviteSpaceUsersWizard bean to return a list of Groups without EVERYONE.
*/
public class MailInviteSpaceUsersWizard extends InviteSpaceUsersWizard
{
@Override
protected Set<String> getGroups(String search)
{
// groups - text search match on supplied name
String term = PermissionService.GROUP_PREFIX + "*" + search + "*";
Set<String> groups;
groups = getAuthorityService().findAuthorities(AuthorityType.GROUP, term);
return groups;
}
}

View File

@@ -30,20 +30,17 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.search.ResultSet;
import org.alfresco.service.cmr.search.SearchParameters;
import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.web.app.Application;
import org.alfresco.web.app.context.IContextListener;
@@ -304,19 +301,9 @@ public class UsersDialog extends BaseDialogBean implements IContextListener, Cha
tx.begin();
// define the query to find people by their first or last name
String search = properties.getSearchCriteria().trim();
String search = properties.getSearchCriteria();
StringBuilder query = new StringBuilder(128);
for (StringTokenizer t = new StringTokenizer(search, " "); t.hasMoreTokens(); /**/)
{
String term = LuceneQueryParser.escape(t.nextToken());
query.append("@").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:firstName:\"*");
query.append(term);
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:lastName:\"*");
query.append(term);
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:userName:");
query.append(term);
query.append("*");
}
Utils.generatePersonSearch(query, search);
if (logger.isDebugEnabled())
logger.debug("Query: " + query.toString());

View File

@@ -505,29 +505,7 @@ public abstract class BaseInviteUsersWizard extends BaseWizardBean
}
else
{
// groups - text search match on supplied name
String term = PermissionService.GROUP_PREFIX + "*" + search + "*";
Set<String> groups;
groups = getAuthorityService().findAuthorities(AuthorityType.GROUP, term);
groups.addAll(getAuthorityService().getAllAuthorities(AuthorityType.EVERYONE));
results = new ArrayList<SelectItem>(groups.size());
int count = 0;
String groupDisplayName;
for (String group : groups)
{
// get display name, if not present strip prefix from group id
groupDisplayName = getAuthorityService().getAuthorityDisplayName(group);
if (groupDisplayName == null || groupDisplayName.length() == 0)
{
groupDisplayName = group.substring(PermissionService.GROUP_PREFIX.length());
}
results.add(new SortableSelectItem(group, groupDisplayName, groupDisplayName));
if (++count == maxResults) break;
}
results = addGroupItems(search, maxResults);
}
items = new SelectItem[results.size()];
@@ -564,6 +542,40 @@ public abstract class BaseInviteUsersWizard extends BaseWizardBean
return items;
}
private List<SelectItem> addGroupItems(String search, int maxResults)
{
Set<String> groups = getGroups(search);
List<SelectItem> results = new ArrayList<SelectItem>(groups.size());
int count = 0;
String groupDisplayName;
for (String group : groups)
{
// get display name, if not present strip prefix from group id
groupDisplayName = getAuthorityService().getAuthorityDisplayName(group);
if (groupDisplayName == null || groupDisplayName.length() == 0)
{
groupDisplayName = group.substring(PermissionService.GROUP_PREFIX.length());
}
results.add(new SortableSelectItem(group, groupDisplayName, groupDisplayName));
if (++count == maxResults) break;
}
return results;
}
protected Set<String> getGroups(String search)
{
// groups - text search match on supplied name
String term = PermissionService.GROUP_PREFIX + "*" + search + "*";
Set<String> groups;
groups = getAuthorityService().findAuthorities(AuthorityType.GROUP, term);
groups.addAll(getAuthorityService().getAllAuthorities(AuthorityType.EVERYONE));
return groups;
}
/**
* Action handler called when the Add button is pressed to process the current selection
*/