diff --git a/config/alfresco/web-services-application-context.xml b/config/alfresco/web-services-application-context.xml index ccf0005070..c8c9650923 100644 --- a/config/alfresco/web-services-application-context.xml +++ b/config/alfresco/web-services-application-context.xml @@ -218,6 +218,9 @@ + + + diff --git a/source/java/org/alfresco/repo/webservice/administration/AdministrationWebService.java b/source/java/org/alfresco/repo/webservice/administration/AdministrationWebService.java index a337cc59de..93da111904 100644 --- a/source/java/org/alfresco/repo/webservice/administration/AdministrationWebService.java +++ b/source/java/org/alfresco/repo/webservice/administration/AdministrationWebService.java @@ -46,6 +46,7 @@ import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.alfresco.service.cmr.security.AuthenticationService; +import org.alfresco.service.cmr.security.AuthorityService; import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.namespace.QName; import org.alfresco.service.transaction.TransactionService; @@ -77,6 +78,8 @@ public class AdministrationWebService extends AbstractWebService implements /** The authentication service */ private AuthenticationService authenticationService = null; + private AuthorityService authorityService; + /** The transaction service */ private TransactionService transactionService = null; @@ -134,7 +137,17 @@ public class AdministrationWebService extends AbstractWebService implements { this.authenticationService = authenticationService; } - + + /** + * Set the authority service used to determine admin rights. + * + * @param authorityService the service implementation + */ + public void setAuthorityService(AuthorityService authorityService) + { + this.authorityService = authorityService; + } + /** * @see org.alfresco.repo.webservice.administration.AdministrationServiceSoapPort#queryUsers(org.alfresco.repo.webservice.administration.UserFilter) */ @@ -534,7 +547,7 @@ public class AdministrationWebService extends AbstractWebService implements if (this.manageAuthenticationDetails == true) { // Update the authentication details - if (this.authenticationService.getCurrentUserName().equals("admin") == true) + if (this.authorityService.hasAdminAuthority() == true) { this.authenticationService.setAuthentication(userName, newPassword.toCharArray()); }