Fix AWC-367. Deleting a user from the system does not remove that user from any groups they may be in.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2391 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
David Caruana
2006-02-15 16:35:40 +00:00
parent 8d730dc941
commit fb63c64b0a
3 changed files with 35 additions and 25 deletions

View File

@@ -172,9 +172,6 @@
<property name="authenticationComponent"> <property name="authenticationComponent">
<ref bean="authenticationComponentImpl" /> <ref bean="authenticationComponentImpl" />
</property> </property>
<property name="permissionServiceSPI">
<ref bean="permissionServiceImpl" />
</property>
</bean> </bean>
<!-- A transactional wrapper that should be removed. --> <!-- A transactional wrapper that should be removed. -->
@@ -240,8 +237,11 @@
<property name="searchService"> <property name="searchService">
<ref bean="searchService" /> <ref bean="searchService" />
</property> </property>
<property name="dictionaryService"> <property name="permissionServiceSPI">
<ref bean="dictionaryService" /> <ref bean="permissionServiceImpl" />
</property>
<property name="authorityService">
<ref bean="authorityService" />
</property> </property>
<property name="namespacePrefixResolver"> <property name="namespacePrefixResolver">
<ref bean="namespaceService" /> <ref bean="namespaceService" />

View File

@@ -16,7 +16,6 @@
*/ */
package org.alfresco.repo.security.authentication; package org.alfresco.repo.security.authentication;
import org.alfresco.repo.security.permissions.PermissionServiceSPI;
import org.alfresco.service.cmr.security.AuthenticationService; import org.alfresco.service.cmr.security.AuthenticationService;
public class AuthenticationServiceImpl implements AuthenticationService public class AuthenticationServiceImpl implements AuthenticationService
@@ -27,8 +26,6 @@ public class AuthenticationServiceImpl implements AuthenticationService
TicketComponent ticketComponent; TicketComponent ticketComponent;
PermissionServiceSPI permissionServiceSPI;
public AuthenticationServiceImpl() public AuthenticationServiceImpl()
{ {
super(); super();
@@ -49,11 +46,6 @@ public class AuthenticationServiceImpl implements AuthenticationService
this.authenticationComponent = authenticationComponent; this.authenticationComponent = authenticationComponent;
} }
public void setPermissionServiceSPI(PermissionServiceSPI permissionServiceSPI)
{
this.permissionServiceSPI = permissionServiceSPI;
}
public void createAuthentication(String userName, char[] password) throws AuthenticationException public void createAuthentication(String userName, char[] password) throws AuthenticationException
{ {
authenticationDao.createUser(userName, password); authenticationDao.createUser(userName, password);
@@ -73,7 +65,6 @@ public class AuthenticationServiceImpl implements AuthenticationService
public void deleteAuthentication(String userName) throws AuthenticationException public void deleteAuthentication(String userName) throws AuthenticationException
{ {
authenticationDao.deleteUser(userName); authenticationDao.deleteUser(userName);
permissionServiceSPI.deletePermissions(authenticationDao.getUserNamesAreCaseSensitive() ? userName: userName.toLowerCase());
} }
public boolean getAuthenticationEnabled(String userName) throws AuthenticationException public boolean getAuthenticationEnabled(String userName) throws AuthenticationException

View File

@@ -26,19 +26,17 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.search.QueryParameterDefImpl; import org.alfresco.repo.security.permissions.PermissionServiceSPI;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.alfresco.service.cmr.search.QueryParameterDefinition;
import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSet;
import org.alfresco.service.cmr.search.ResultSetRow; import org.alfresco.service.cmr.search.ResultSetRow;
import org.alfresco.service.cmr.search.SearchParameters; import org.alfresco.service.cmr.search.SearchParameters;
import org.alfresco.service.cmr.search.SearchService; import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.cmr.security.AuthorityService;
import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.namespace.NamespacePrefixResolver; import org.alfresco.service.namespace.NamespacePrefixResolver;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
@@ -56,10 +54,12 @@ public class PersonServiceImpl implements PersonService
private NodeService nodeService; private NodeService nodeService;
private DictionaryService dictionaryService;
private SearchService searchService; private SearchService searchService;
private AuthorityService authorityService;
private PermissionServiceSPI permissionServiceSPI;
private NamespacePrefixResolver namespacePrefixResolver; private NamespacePrefixResolver namespacePrefixResolver;
private boolean createMissingPeople; private boolean createMissingPeople;
@@ -285,11 +285,25 @@ public class PersonServiceImpl implements PersonService
public void deletePerson(String userName) public void deletePerson(String userName)
{ {
NodeRef personNodeRef = getPersonOrNull(userName); NodeRef personNodeRef = getPersonOrNull(userName);
// delete the person
if (personNodeRef != null) if (personNodeRef != null)
{ {
nodeService.deleteNode(personNodeRef); nodeService.deleteNode(personNodeRef);
} }
// translate username based on user name case sensitivity
String authorityName = userNamesAreCaseSensitive ? userName : userName.toLowerCase();
// remove user from any containing authorities
Set<String> containerAuthorities = authorityService.getContainingAuthorities(null, userName, true);
for (String containerAuthority : containerAuthorities)
{
authorityService.removeAuthority(containerAuthority, authorityName);
}
// remove any user permissions
permissionServiceSPI.deletePermissions(authorityName);
} }
public Set<NodeRef> getAllPeople() public Set<NodeRef> getAllPeople()
@@ -333,16 +347,21 @@ public class PersonServiceImpl implements PersonService
this.createMissingPeople = createMissingPeople; this.createMissingPeople = createMissingPeople;
} }
public void setDictionaryService(DictionaryService dictionaryService)
{
this.dictionaryService = dictionaryService;
}
public void setNamespacePrefixResolver(NamespacePrefixResolver namespacePrefixResolver) public void setNamespacePrefixResolver(NamespacePrefixResolver namespacePrefixResolver)
{ {
this.namespacePrefixResolver = namespacePrefixResolver; this.namespacePrefixResolver = namespacePrefixResolver;
} }
public void setAuthorityService(AuthorityService authorityService)
{
this.authorityService = authorityService;
}
public void setPermissionServiceSPI(PermissionServiceSPI permissionServiceSPI)
{
this.permissionServiceSPI = permissionServiceSPI;
}
public void setNodeService(NodeService nodeService) public void setNodeService(NodeService nodeService)
{ {
this.nodeService = nodeService; this.nodeService = nodeService;