Fix failing unit test. Cascade delete site groups on site deletion.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@14641 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Dave Ward 2009-06-10 15:20:05 +00:00
parent d8228cb23f
commit e5c375d103
4 changed files with 32 additions and 3 deletions

View File

@ -294,9 +294,21 @@ public class AuthorityServiceImpl implements AuthorityService, InitializingBean
} }
public void deleteAuthority(String name) public void deleteAuthority(String name)
{
deleteAuthority(name, false);
}
public void deleteAuthority(String name, boolean cascade)
{ {
AuthorityType type = AuthorityType.getAuthorityType(name); AuthorityType type = AuthorityType.getAuthorityType(name);
checkTypeIsMutable(type); checkTypeIsMutable(type);
if (cascade)
{
for (String child : getContainedAuthorities(type, name, true))
{
deleteAuthority(child, true);
}
}
authorityDAO.deleteAuthority(name); authorityDAO.deleteAuthority(name);
permissionServiceSPI.deletePermissions(name); permissionServiceSPI.deletePermissions(name);
} }

View File

@ -201,6 +201,11 @@ public class SimpleAuthorityServiceImpl implements AuthorityService
} }
public void deleteAuthority(String name, boolean cascade)
{
}
public Set<String> getAllRootAuthorities(AuthorityType type) public Set<String> getAllRootAuthorities(AuthorityType type)
{ {
return getAllAuthorities(type); return getAllAuthorities(type);

View File

@ -926,12 +926,12 @@ public class SiteServiceImpl implements SiteService, SiteModel
// Delete the node // Delete the node
this.nodeService.deleteNode(siteNodeRef); this.nodeService.deleteNode(siteNodeRef);
// Delete the associated group's // Delete the associated groups
AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<Object>() AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<Object>()
{ {
public Object doWork() throws Exception public Object doWork() throws Exception
{ {
authorityService.deleteAuthority(getSiteGroup(shortName, true)); authorityService.deleteAuthority(getSiteGroup(shortName, true), true);
return null; return null;
} }
}, AuthenticationUtil.getSystemUserName()); }, AuthenticationUtil.getSystemUserName());

View File

@ -190,13 +190,25 @@ public interface AuthorityService
public void removeAuthority(String parentName, String childName); public void removeAuthority(String parentName, String childName);
/** /**
* Delete an authority and all its relationships. * Delete an authority and all its relationships. Note child authorities are not deleted.
* *
* @param name * @param name
*/ */
@Auditable(parameters = {"name"}) @Auditable(parameters = {"name"})
public void deleteAuthority(String name); public void deleteAuthority(String name);
/**
* Delete an authority and all its relationships, optionally recursively deleting child authorities of the same
* type.
*
* @param name
* the authority long name
* @param cascade
* should the delete be cascaded to child authorities of the same type?
*/
@Auditable(parameters = {"name", "cascade"})
public void deleteAuthority(String name, boolean cascade);
/** /**
* Get all the authorities that are contained by the given authority. * Get all the authorities that are contained by the given authority.
* *