mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V3.2 to HEAD
17002: Merged V3.2 to V3.2 14187: (record-only) Fix for ETHREEOH-2023: LDAP import must lower case the local name of the association to person. 14941: Merged V2.2 to V3.1 14830: Fix for ETWOTWO-389: Alfresco will not fix up all the permissions if the UID is changed 14849: Build Fix: Remove the constraint to avoid the creation of duplicate users (it stops permission assignment before user creation) 14867: Build Fix: Disable tests for concurrent creation of groups and people (it leaves an odd group around and is not currently used) 14880: More for ETWOTWO-389: restrict fix ups for uid/gid to case changes only. Other changes are rejected. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@17013 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -890,23 +890,10 @@ public class AclDaoComponentImpl extends HibernateDaoSupport implements AclDaoCo
|
||||
|
||||
|
||||
// remove authority
|
||||
|
||||
callback = new HibernateCallback()
|
||||
DbAuthority toRemove = getAuthority(authority, false);
|
||||
if(toRemove != null)
|
||||
{
|
||||
public Object doInHibernate(Session session)
|
||||
{
|
||||
Query query = session.getNamedQuery(QUERY_GET_AUTHORITY);
|
||||
query.setParameter("authority", authority);
|
||||
return query.list();
|
||||
}
|
||||
};
|
||||
List<DbAuthority> authorities = (List<DbAuthority>) getHibernateTemplate().execute(callback);
|
||||
for (DbAuthority found : authorities)
|
||||
{
|
||||
if (found.getAuthority().equals(authority))
|
||||
{
|
||||
getHibernateTemplate().delete(found);
|
||||
}
|
||||
getHibernateTemplate().delete(toRemove);
|
||||
}
|
||||
|
||||
// TODO: Remove affected ACLs from the cache
|
||||
@@ -1378,34 +1365,8 @@ public class AclDaoComponentImpl extends HibernateDaoSupport implements AclDaoCo
|
||||
throw new IllegalArgumentException("Invalid position");
|
||||
}
|
||||
|
||||
// Find auth
|
||||
HibernateCallback callback = new HibernateCallback()
|
||||
{
|
||||
public Object doInHibernate(Session session)
|
||||
{
|
||||
Query query = session.getNamedQuery(QUERY_GET_AUTHORITY);
|
||||
query.setParameter("authority", ace.getAuthority());
|
||||
return query.list();
|
||||
}
|
||||
};
|
||||
DbAuthority authority = null;
|
||||
List<DbAuthority> authorities = (List<DbAuthority>) getHibernateTemplate().execute(callback);
|
||||
for (DbAuthority found : authorities)
|
||||
{
|
||||
if (found.getAuthority().equals(ace.getAuthority()))
|
||||
{
|
||||
authority = found;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (authority == null)
|
||||
{
|
||||
DbAuthorityImpl newAuthority = new DbAuthorityImpl();
|
||||
newAuthority.setAuthority(ace.getAuthority());
|
||||
newAuthority.setCrc(getCrc(ace.getAuthority()));
|
||||
authority = newAuthority;
|
||||
getHibernateTemplate().save(newAuthority);
|
||||
}
|
||||
// Find authority
|
||||
DbAuthority authority = getAuthority(ace.getAuthority(), true);
|
||||
|
||||
// Find permission
|
||||
|
||||
@@ -1413,7 +1374,7 @@ public class AclDaoComponentImpl extends HibernateDaoSupport implements AclDaoCo
|
||||
final String permissionName = ace.getPermission().getName();
|
||||
final Pair<Long, QName> permissionQNamePair = qnameDAO.getOrCreateQName(permissionQName);
|
||||
|
||||
callback = new HibernateCallback()
|
||||
HibernateCallback callback = new HibernateCallback()
|
||||
{
|
||||
public Object doInHibernate(Session session)
|
||||
{
|
||||
@@ -2221,4 +2182,62 @@ public class AclDaoComponentImpl extends HibernateDaoSupport implements AclDaoCo
|
||||
}
|
||||
}
|
||||
|
||||
public void updateAuthority(String before, String after)
|
||||
{
|
||||
DbAuthority dbAuthority = getAuthority(before, false);
|
||||
// If there is no entry and alias is not required - there is nothing it would match
|
||||
if(dbAuthority != null)
|
||||
{
|
||||
dbAuthority.setAuthority(after);
|
||||
dbAuthority.setCrc(getCrc(after));
|
||||
aclCache.clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private DbAuthority getAuthority(final String authority, boolean create)
|
||||
{
|
||||
// Find auth
|
||||
HibernateCallback callback = new HibernateCallback()
|
||||
{
|
||||
public Object doInHibernate(Session session)
|
||||
{
|
||||
Query query = session.getNamedQuery(QUERY_GET_AUTHORITY);
|
||||
query.setParameter("authority", authority);
|
||||
return query.list();
|
||||
}
|
||||
};
|
||||
|
||||
DbAuthority dbAuthority = null;
|
||||
List<DbAuthority> authorities = (List<DbAuthority>) getHibernateTemplate().execute(callback);
|
||||
for (DbAuthority found : authorities)
|
||||
{
|
||||
if (found.getAuthority().equals(authority))
|
||||
{
|
||||
dbAuthority = found;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (create && (dbAuthority == null))
|
||||
{
|
||||
dbAuthority = createDbAuthority(authority);
|
||||
}
|
||||
return dbAuthority;
|
||||
}
|
||||
|
||||
public void createAuthority(String authority)
|
||||
{
|
||||
createDbAuthority(authority);
|
||||
}
|
||||
|
||||
public DbAuthority createDbAuthority(String authority)
|
||||
{
|
||||
DbAuthority dbAuthority = new DbAuthorityImpl();
|
||||
dbAuthority.setAuthority(authority);
|
||||
dbAuthority.setCrc(getCrc(authority));
|
||||
getHibernateTemplate().save(dbAuthority);
|
||||
return dbAuthority;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user