mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged BRANCHES/DEV/V4.1-BUG-FIX to HEAD
45144: Fix for ALF-16790 - upload ignores additional aspects for updateNodes 45174: Merged V4.1-BUG-FIX-2012_11_22 to V4.1-BUG-FIX 43940: ALF-15209: Add Dashlet to User or Site Dashboard not working when IE8 is operating in Compatibility Mode. Fix check p_el.attributes["id"] to avoid errors for "IE8 compatibility mode 45175: Fix for ALF-17260 - Tags list not updated after moving/copying an high number of nodes with taggable aspect but no tags 45188: ALF-16254 ("Leave Site" behaviour for group based site membership) 45204: Fix for ALF-17335 - OnCreateNodePolicy not fired when custom type is used in the Share flash upload 45218: ALF-17248 BaseAssociationEditor.java does not return any results when the query filter consists of "firstname + lastname" 45221: Merged V4.1.3 (4.1.3) to V4.1-BUG-FIX (4.1.4) RECORD ONLY 45220: Merged: V4.1-BUG-FIX (4.1.4) to V4.1.3 (4.1.3) 44054: Fix for ALF-16337. Datalist assignee not searchable by full name. 45218: ALF-17248 BaseAssociationEditor.java does not return any results when the query filter consists of "firstname + lastname" 45245: ALF-17089 (Displaying Url Name instead of site Name in Select form) 45257: ALF-17318 Unnecessary Canned Query in .getPeople(String,...) on startup. - Just one extra query on each run of the FeedNotifier was being made at the end. The sequence of queries are necessary. 45336: Merged DEV to V4.1-BUG-FIX (4.1.4) 45318: ALF-14086: CLONE - Sort order of folders including hyphens ( - ) are different in folder-tree and view on folders (in Share) Sort groups and users on the Java server side using collators. - Deprecated a few methods not deprecated in DEV and removed one which had just been added to 4.1.4 45362: Merged V3.4-BUG-FIX (3.4.13) to V4.1-BUG-FIX <<RECORD ONLY>> 45361: Merged V3.4 (3.4.12) to V3.4-BUG-FIX (3.4.13) 45360: ALF-17431: Merged V4.1 (4.1.2) to V3.4 (3.4.12) 43622: ALF-16757: Sharepoint doesn't work correct with SSO - Fix by Pavel 45385: Merged V4.1.3 (4.1.3) to V4.1-BUG-FIX (4.1.4) 45384: ALF-17097 60k Site Performance: Admin Console | Groups | Browse Groups (include sys groups): Results isn't appeared. - Error in authorities comparator causing test failure of ALF 14086 in 4.1.4 only. 4.1.3 was okay as ALF 14086 now uses the change made for ALF-17097 but only in 4.1.4 45452: Corrected config check for ALF-16413 - Share asks for Basic-Auth while not needed trying to access RSS feeds (thus breaking SSO). 45467: Fix for ALF-17509 - patches the FreeMarker built-in ?js_string to correctly encode the "/" character. 45468: ALF-17492 - WebScript errors must contain useful information - SpringSurf libs 1217 provide additional INFO log information on the HTTP method, URL+params that caused the exception. 45475: Fix for ALF-17510 - Upgrade of htmlparser from 1.6 to 2.1 45566: Fixed ALF-17530 - Refactored "successCallback" & "successScope" parameters for multipart uploads to be simply "success" (same for failure) 45574: Fixed ALF-17528 - Asserting that request is made using application/json 45662: Merged HEAD to BRANCHES/DEV/V4.1-BUG-FIX: 45660: Fixes: ALF-17539 - The server was failing to parse the date. It shouldn't have been trying to parse it at all. 45849: Merged HEAD to BRANCHES/DEV/V4.1-BUG-FIX: 45824: Fixes: ALF-13676: Event edit times are now presented using the date-format.shortTime setting & may be entered in either 24h or 12hr formats. 45876: ALF-17642: Fix broken HtmlParserContentTransformerTest after upgrade of htmlparser to 2.1 - Since the upgrade slightly changed the behaviour of the transformer, I added some explanatory comments to the test and to the transformer class. 45927: Fix for ALF-17302 DocLib sort is determined by server locale rather than browser locale - GetChildrenCannedQuery was not using locale based collation 46014: Fix for ALF-17732 - SWF files are considered insecure content and should not be displayed directly in the browser. 46160: Fix for ALF-17759 - HTML files are stripped from metadata and style information after they are uploaded. 46186: Fix for ALF-17786 - Site dashboard page issues too many requests (Site Members dashlet issues avatar requests when it doesn't need too) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@46287 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2012 Alfresco Software Limited.
|
||||
* Copyright (C) 2005-2013 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
@@ -190,7 +190,7 @@ public class GetAuthoritiesCannedQuery extends AbstractCannedQueryPermissions<Au
|
||||
|
||||
if (s2 == null)
|
||||
{
|
||||
s2 = auth1.getAuthorityName();
|
||||
s2 = auth2.getAuthorityName();
|
||||
}
|
||||
|
||||
if (s1 == null)
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2010 Alfresco Software Limited.
|
||||
* Copyright (C) 2005-2013 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
@@ -18,11 +18,14 @@
|
||||
*/
|
||||
package org.alfresco.repo.security.authority.script;
|
||||
|
||||
import java.text.Collator;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.springframework.extensions.surf.util.I18NUtil;
|
||||
|
||||
public interface Authority
|
||||
{
|
||||
public enum ScriptAuthorityType { GROUP, USER };
|
||||
@@ -40,17 +43,31 @@ public interface Authority
|
||||
{
|
||||
private Map<Authority,String> nameCache;
|
||||
private String sortBy;
|
||||
private Collator col;
|
||||
private int orderMultiplicator = 1;
|
||||
|
||||
public AuthorityComparator(String sortBy)
|
||||
{
|
||||
this.col = Collator.getInstance(I18NUtil.getLocale());
|
||||
this.sortBy = sortBy;
|
||||
this.nameCache = new HashMap<Authority, String>();
|
||||
}
|
||||
|
||||
public AuthorityComparator(String sortBy, boolean sortAsc)
|
||||
{
|
||||
col = Collator.getInstance(I18NUtil.getLocale());
|
||||
this.sortBy = sortBy;
|
||||
this.nameCache = new HashMap<Authority, String>();
|
||||
if (!sortAsc)
|
||||
{
|
||||
orderMultiplicator = -1;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compare(Authority g1, Authority g2)
|
||||
{
|
||||
return get(g1).compareTo( get(g2) );
|
||||
return col.compare(get(g1), get(g2)) * orderMultiplicator;
|
||||
}
|
||||
|
||||
private String get(Authority g)
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2011 Alfresco Software Limited.
|
||||
* Copyright (C) 2005-2013 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
@@ -43,7 +43,6 @@ import org.alfresco.util.Pair;
|
||||
import org.alfresco.util.ScriptPagingDetails;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.mozilla.javascript.Scriptable;
|
||||
|
||||
/**
|
||||
* Script object representing the authority service.
|
||||
@@ -267,6 +266,15 @@ public class ScriptAuthorityService extends BaseScopableProcessorExtension
|
||||
return getGroupsInZone(filter, null, paging, sortBy);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @since 4.0
|
||||
*/
|
||||
public ScriptGroup[] getGroupsInZone(String filter, String zone, ScriptPagingDetails paging, String sortBy)
|
||||
{
|
||||
return getGroupsInZone(filter, zone, paging, sortBy, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves groups matching the given filter from the given zone.
|
||||
*
|
||||
@@ -277,10 +285,11 @@ public class ScriptAuthorityService extends BaseScopableProcessorExtension
|
||||
* @param paging Paging details
|
||||
* @param sortBy Field to sort by, can be <code>shortName</code>, <code>displayName</code> or
|
||||
* <code>authorityName</code>, the default is displayName
|
||||
* @param sortAsc sort ascending or not
|
||||
* @return Array of matching groups
|
||||
* @since 4.0
|
||||
* @since 4.1.4
|
||||
*/
|
||||
public ScriptGroup[] getGroupsInZone(String filter, String zone, ScriptPagingDetails paging, String sortBy)
|
||||
public ScriptGroup[] getGroupsInZone(String filter, String zone, ScriptPagingDetails paging, String sortBy, boolean sortAsc)
|
||||
{
|
||||
if (sortBy == null)
|
||||
{
|
||||
@@ -306,10 +315,10 @@ public class ScriptAuthorityService extends BaseScopableProcessorExtension
|
||||
paging.setRequestTotalCountMax(10000);
|
||||
|
||||
// get the paged results (NOTE: we can only sort by display name currently)
|
||||
PagingResults<AuthorityInfo> groups = authorityService.getAuthoritiesInfo(AuthorityType.GROUP, zone, filter, sortBy, true, paging);
|
||||
PagingResults<AuthorityInfo> groups = authorityService.getAuthoritiesInfo(AuthorityType.GROUP, zone, filter, sortBy, sortAsc, paging);
|
||||
|
||||
// create ScriptGroup array from paged results
|
||||
scriptGroups = makeScriptGroupsInfo(groups, paging, serviceRegistry, this.getScope());
|
||||
scriptGroups = makeScriptGroupsInfo(groups, paging, sortBy, sortAsc, serviceRegistry, this.getScope());
|
||||
}
|
||||
catch (UnknownAuthorityException e)
|
||||
{
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2012 Alfresco Software Limited.
|
||||
* Copyright (C) 2005-2013 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
@@ -539,6 +539,9 @@ public class ScriptGroup implements Authority, Serializable
|
||||
childAuthorityNames = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public static ScriptGroup[] makeScriptGroups(Collection<String> authorities,
|
||||
ScriptPagingDetails paging, ServiceRegistry serviceRegistry,
|
||||
Scriptable scope)
|
||||
@@ -546,11 +549,20 @@ public class ScriptGroup implements Authority, Serializable
|
||||
return makeScriptGroups(authorities, paging, null, serviceRegistry, scope);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public static ScriptGroup[] makeScriptGroups(Collection<String> authorities,
|
||||
ScriptPagingDetails paging, String sortBy, ServiceRegistry serviceRegistry,
|
||||
Scriptable scope)
|
||||
{
|
||||
return makeScriptGroups(authorities, paging, sortBy, true, serviceRegistry, scope);
|
||||
}
|
||||
|
||||
public static ScriptGroup[] makeScriptGroups(Collection<String> authorities,
|
||||
ScriptPagingDetails paging, final String sortBy, boolean sortAsc, ServiceRegistry serviceRegistry,
|
||||
Scriptable scope)
|
||||
{
|
||||
final ArrayList<String> authList = new ArrayList<String>(authorities);
|
||||
final Map<String,ScriptGroup> scriptGroupCache = new HashMap<String, ScriptGroup>();
|
||||
|
||||
@@ -562,7 +574,7 @@ public class ScriptGroup implements Authority, Serializable
|
||||
{
|
||||
scriptGroupCache.put(authority, new ScriptGroup(authority, serviceRegistry, scope));
|
||||
}
|
||||
final AuthorityComparator c2 = new AuthorityComparator(sortBy);
|
||||
final AuthorityComparator c2 = new AuthorityComparator(sortBy, sortAsc);
|
||||
Collections.sort(authList, new Comparator<String>() {
|
||||
@Override
|
||||
public int compare(String g1, String g2)
|
||||
@@ -606,18 +618,31 @@ public class ScriptGroup implements Authority, Serializable
|
||||
return groups;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @since 4.0
|
||||
*/
|
||||
public static ScriptGroup[] makeScriptGroups(PagingResults<String> pagedGroups, ScriptPagingDetails paging,
|
||||
ServiceRegistry serviceRegistry, Scriptable scope)
|
||||
{
|
||||
return makeScriptGroups(pagedGroups, paging, null, true, serviceRegistry, scope);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array of ScriptGroup objects representing the given paged results.
|
||||
*
|
||||
* @param groups The paged results
|
||||
* @param paging Object representing the paging details
|
||||
* @param sortBy field for sorting
|
||||
* @param sortAsc sort ascending or not
|
||||
* @param serviceRegistry
|
||||
* @param scope
|
||||
* @return Array of ScriptGroup objects
|
||||
*
|
||||
* @since 4.0
|
||||
* @since 4.1.4
|
||||
*/
|
||||
public static ScriptGroup[] makeScriptGroups(PagingResults<String> pagedGroups, ScriptPagingDetails paging,
|
||||
public static ScriptGroup[] makeScriptGroups(PagingResults<String> pagedGroups, ScriptPagingDetails paging,
|
||||
String sortBy, boolean sortAsc,
|
||||
ServiceRegistry serviceRegistry, Scriptable scope)
|
||||
{
|
||||
// set the total on the paging object
|
||||
@@ -625,11 +650,15 @@ public class ScriptGroup implements Authority, Serializable
|
||||
|
||||
// retrive the page of results and create a ScriptGroup for each one
|
||||
List<String> groupNames = pagedGroups.getPage();
|
||||
ScriptGroup[] groups = new ScriptGroup[groupNames.size()];
|
||||
for (int i=0; i<groups.length; i++)
|
||||
AuthorityComparator authComp = new AuthorityComparator(sortBy, sortAsc);
|
||||
List<ScriptGroup> groupList= new ArrayList<ScriptGroup>();
|
||||
for (int i=0; i<groupNames.size(); i++)
|
||||
{
|
||||
groups[i] = new ScriptGroup(groupNames.get(i), serviceRegistry, scope);
|
||||
groupList.add(new ScriptGroup(groupNames.get(i), serviceRegistry, scope));
|
||||
}
|
||||
Collections.sort(groupList, authComp);
|
||||
ScriptGroup[] groups = new ScriptGroup[groupNames.size()];
|
||||
groupList.toArray(groups);
|
||||
|
||||
return groups;
|
||||
}
|
||||
@@ -637,15 +666,16 @@ public class ScriptGroup implements Authority, Serializable
|
||||
/**
|
||||
* Returns an array of ScriptGroup objects representing the given paged results.
|
||||
*
|
||||
* @param groups The paged results
|
||||
* @param groups sorted paged results (the page of results get sorted again taking I18n into account)
|
||||
* @param paging Object representing the paging details
|
||||
* @param serviceRegistry
|
||||
* @param scope
|
||||
* @return Array of ScriptGroup objects
|
||||
*
|
||||
* @since 4.1.3
|
||||
* @since 4.1.4
|
||||
*/
|
||||
public static ScriptGroup[] makeScriptGroupsInfo(PagingResults<AuthorityInfo> pagedGroups, ScriptPagingDetails paging,
|
||||
public static ScriptGroup[] makeScriptGroupsInfo(PagingResults<AuthorityInfo> pagedGroups, ScriptPagingDetails paging,
|
||||
String sortBy, boolean sortAsc,
|
||||
ServiceRegistry serviceRegistry, Scriptable scope)
|
||||
{
|
||||
// set the total on the paging object
|
||||
@@ -653,12 +683,17 @@ public class ScriptGroup implements Authority, Serializable
|
||||
|
||||
// retrive the page of results and create a ScriptGroup for each one
|
||||
List<AuthorityInfo> groupInfo = pagedGroups.getPage();
|
||||
ScriptGroup[] groups = new ScriptGroup[groupInfo.size()];
|
||||
for (int i=0; i<groups.length; i++)
|
||||
AuthorityComparator authComp = new AuthorityComparator(sortBy, sortAsc);
|
||||
List<ScriptGroup> groupList= new ArrayList<ScriptGroup>();
|
||||
|
||||
for (int i=0; i<groupInfo.size(); i++)
|
||||
{
|
||||
AuthorityInfo authorityInfo = groupInfo.get(i);
|
||||
groups[i] = new ScriptGroup(authorityInfo.getAuthorityName(), authorityInfo.getAuthorityDisplayName(), serviceRegistry, scope);
|
||||
groupList.add(new ScriptGroup(authorityInfo.getAuthorityName(), authorityInfo.getAuthorityDisplayName(), serviceRegistry, scope));
|
||||
}
|
||||
Collections.sort(groupList, authComp);
|
||||
ScriptGroup[] groups = new ScriptGroup[groupInfo.size()];
|
||||
groupList.toArray(groups);
|
||||
|
||||
return groups;
|
||||
}
|
||||
|
Reference in New Issue
Block a user