Merged V3.1 to HEAD

13424: ETHREEOH-1242: Sample LDAP authentication config breaks site invites in Share
   13427: Fixes for ETHREEOH-1157: Propagate exceptions using ReportedException
   13428: Fix ETHREEOH-1493: Upgrade from 2.1-A to 3.1 uses incorrect patch id and fixes_to_schema
   13429: Specific fix for ETHREEOH-1157: duplicate/triplicate users not properly prohibited
   13436: Merged V2.2 to V3.1
      13435: Merged V2.1 to V2.2  
         12307: Merged DEV/V2.1SP7 to 2.1 
            11927: ETWOONE-396 
            12112: ETWOONE-396
   13437: Fixed ETHREEOH-1498: Mismatched closing XML tag in ehcache-custom.xml.sample.cluster
   13439: Fix for ETHREEOH-1157: JSF Dialogs Absorbing Exceptions
   13456: Fixed ETHREEOH-1472: Changes to systemBootstrap cause bootstrapping ACP's not to work
   13469: Upgrade patch to update internal version2Store counter (follow-on fix for ETHREEOH-1540)
   13491: Chaining example for DOC-84
   13492: Fixed paths in zip file
   13494: Fixed GenericBootstrapPatch when overriding bootstrap views
   13495: Added @version javadoc
   13496: Minor logging updates
   13497: Fixed ETHREEOH-1431: Authentication case sensitivity switch doesn't work
   13500: Temporary fix for Sharepoint issue raised last week
   13502: ETHREEOH-1575: It's impossible to create Change Request task
   13511: Fix for ETHREEOH-1549: Impossible to create HTML web content
   13529: Fix for ETHREEOH-1595
   13531: Fix for ETHREEOH-1607: Error on chaining example xml - malformed comment
   13537: Build fix ... exclude the system user from auto creation
   13538: Build Fix - further contraints to aviod auto-creation of guest
   ___________________________________________________________________
   Modified: svn:mergeinfo
      Merged /alfresco/BRANCHES/V2.1:r12307
      Merged /alfresco/BRANCHES/V2.2:r13435
      Merged /alfresco/BRANCHES/V3.1:r
                   13424,13427-13429,13436-13437,13439,13442-13450,13452,13454-13456,
                   13469-13473,13475-13476,13479-13480,13491-13500,13502,13511,13529-13538


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13619 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2009-03-13 01:52:39 +00:00
parent fec1149d8c
commit 65b8cd4a8b
27 changed files with 1829 additions and 1548 deletions

View File

@@ -51,7 +51,7 @@ import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class PersonDaoImpl extends HibernateDaoSupport implements PersonDao
{
private static final String QUERY_PERSON_GET_PERSON = "person.getPerson";
private static final String QUERY_PERSON_GET_PERSON_IGNORE_CASE = "person.getPersonIgnoreCase";
private static final String QUERY_PERSON_GET_ALL_PEOPLE = "person.getAllPeople";
@@ -75,9 +75,32 @@ public class PersonDaoImpl extends HibernateDaoSupport implements PersonDao
this.tenantService = tenantService;
}
public void init()
{
qNamePropId = qnameDAO.getOrCreateQName(ContentModel.PROP_USERNAME).getFirst();
qNameTypeId = qnameDAO.getOrCreateQName(ContentModel.TYPE_PERSON).getFirst();
}
@SuppressWarnings("unchecked")
public List<NodeRef> getPersonOrNull(final String searchUserName, UserNameMatcher matcher)
{
/*
* Related JIRA:
* https://issues.alfresco.com/jira/browse/MOB-387
* https://issues.alfresco.com/jira/browse/ETHREEOH-1431
* https://issues.alfresco.com/jira/browse/ETWOTWO-1012
*
* When usernames are case-insensitive, it could happen that the DB is NOT.
* DB queries should therefore return values regardless of the DB collation.
* The original, case-preserving username is stored with the node properties.
* To solve the query issue, a LOWERCASE version of the username is stored on
* the path (alf_child_assoc.qname_localname). This is queried for using the
* lowercase version of the searched-for username. The case results pruning
* is done (as it always was) as a post-search task.
*
* Note that the upgrade scripts had to change to force lowercase names as well.
*/
final StoreRef personStoreRef = tenantService.getName(storeRef);
List<NodeRef> answer = new ArrayList<NodeRef>();
@@ -86,11 +109,10 @@ public class PersonDaoImpl extends HibernateDaoSupport implements PersonDao
{
public Object doInHibernate(Session session)
{
SQLQuery query = (SQLQuery) session.getNamedQuery(QUERY_PERSON_GET_PERSON);
SQLQuery query = (SQLQuery) session.getNamedQuery(QUERY_PERSON_GET_PERSON_IGNORE_CASE);
query.setParameter("qnamePropId", qNamePropId);
query.setParameter("qnameTypeId", qNameTypeId);
query.setParameter("userName1", searchUserName);
query.setParameter("userName2", searchUserName);
query.setParameter("userNameLowerCase", searchUserName.toLowerCase()); // Lowercase: ETHREEOH-1431
query.setParameter("False", Boolean.FALSE);
query.setParameter("storeProtocol", personStoreRef.getProtocol());
query.setParameter("storeIdentifier", personStoreRef.getIdentifier());
@@ -121,12 +143,6 @@ public class PersonDaoImpl extends HibernateDaoSupport implements PersonDao
}
public void init()
{
qNamePropId = qnameDAO.getOrCreateQName(ContentModel.PROP_USERNAME).getFirst();
qNameTypeId = qnameDAO.getOrCreateQName(ContentModel.TYPE_PERSON).getFirst();
}
@SuppressWarnings("unchecked")
public Set<NodeRef> getAllPeople()
{