Index: lams_central/src/java/org/lamsfoundation/lams/webservice/Register.java =================================================================== diff -u --- lams_central/src/java/org/lamsfoundation/lams/webservice/Register.java (revision 0) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/Register.java (revision 58ac13faf486a9e6d3422d50b6c131e5a3ef6d99) @@ -0,0 +1,12 @@ +/** + * Register.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package org.lamsfoundation.lams.webservice; + +public interface Register extends java.rmi.Remote { + public boolean createUser(String username, String password, String firstName, String lastName, String email) throws java.rmi.RemoteException; +} Index: lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterService.java =================================================================== diff -u --- lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterService.java (revision 0) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterService.java (revision 58ac13faf486a9e6d3422d50b6c131e5a3ef6d99) @@ -0,0 +1,16 @@ +/** + * RegisterService.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package org.lamsfoundation.lams.webservice; + +public interface RegisterService extends javax.xml.rpc.Service { + public java.lang.String getRegisterServiceAddress(); + + public org.lamsfoundation.lams.webservice.Register getRegisterService() throws javax.xml.rpc.ServiceException; + + public org.lamsfoundation.lams.webservice.Register getRegisterService(java.net.URL portAddress) throws javax.xml.rpc.ServiceException; +} Index: lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java =================================================================== diff -u --- lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java (revision 0) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java (revision 58ac13faf486a9e6d3422d50b6c131e5a3ef6d99) @@ -0,0 +1,100 @@ +/** + * RegisterServiceSoapBindingImpl.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package org.lamsfoundation.lams.webservice; + +import java.util.Date; +import java.util.List; + +import javax.servlet.http.HttpServlet; + +import org.apache.axis.MessageContext; +import org.apache.axis.transport.http.HTTPConstants; +import org.lamsfoundation.lams.themes.CSSThemeVisualElement; +import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; +import org.lamsfoundation.lams.usermanagement.Organisation; +import org.lamsfoundation.lams.usermanagement.OrganisationState; +import org.lamsfoundation.lams.usermanagement.OrganisationType; +import org.lamsfoundation.lams.usermanagement.Role; +import org.lamsfoundation.lams.usermanagement.SupportedLocale; +import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.usermanagement.UserOrganisation; +import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.util.Configuration; +import org.lamsfoundation.lams.util.ConfigurationKeys; +import org.springframework.web.context.support.WebApplicationContextUtils; + +public class RegisterServiceSoapBindingImpl implements org.lamsfoundation.lams.webservice.Register{ + + private static final String DEMO_ORG_NAME = "Demo Organisation"; + + private static MessageContext context = MessageContext.getCurrentContext(); + + private static IUserManagementService service = (IUserManagementService) WebApplicationContextUtils.getRequiredWebApplicationContext(((HttpServlet)context.getProperty(HTTPConstants.MC_HTTP_SERVLET)).getServletContext()).getBean("userManagementService"); + + public boolean createUser(String username, String password, String firstName, String lastName, String email) throws java.rmi.RemoteException { + User user = new User(); + user.setLogin(username); + user.setPassword(password); + user.setFirstName(firstName); + user.setLastName(lastName); + user.setEmail(email); + user.setAuthenticationMethod((AuthenticationMethod)service.findById(AuthenticationMethod.class, AuthenticationMethod.DB)); + user.setCreateDate(new Date()); + user.setDisabledFlag(false); + user.setLocale(getLocale()); + String flashName = Configuration.get(ConfigurationKeys.DEFAULT_FLASH_THEME); + List list = service.findByProperty(CSSThemeVisualElement.class, "name", flashName); + if (list!=null && list.size()>0) { + CSSThemeVisualElement flashTheme = (CSSThemeVisualElement)list.get(0); + user.setFlashTheme(flashTheme); + } + String htmlName = Configuration.get(ConfigurationKeys.DEFAULT_HTML_THEME); + list = service.findByProperty(CSSThemeVisualElement.class, "name", htmlName); + if (list!=null && list.size()>0) { + CSSThemeVisualElement htmlTheme = (CSSThemeVisualElement)list.get(0); + user.setHtmlTheme(htmlTheme); + } + service.save(user); + addMemberships(user,getDemoOrg(user)); + return true; + } + + private SupportedLocale getLocale(){ + String defaultLocale = Configuration.get(ConfigurationKeys.SERVER_LANGUAGE); + return service.getSupportedLocale(defaultLocale.substring(0,2), defaultLocale.substring(3)); + } + + private void addMemberships(User user, Organisation org){ + UserOrganisation uo = new UserOrganisation(user,org); + service.save(uo); + Integer[] roles = new Integer[]{Role.ROLE_AUTHOR, Role.ROLE_MONITOR, Role.ROLE_COURSE_MANAGER, Role.ROLE_LEARNER}; + for(Integer roleId:roles){ + UserOrganisationRole uor = new UserOrganisationRole(uo,(Role)service.findById(Role.class,roleId)); + service.save(uor); + uo.addUserOrganisationRole(uor); + } + user.addUserOrganisation(uo); + service.save(user); + } + + private Organisation getDemoOrg(User user){ + Organisation org = (Organisation)service.findByProperty(Organisation.class, "name", "DEMO_ORG_NAME"); + if(org == null){ + org = new Organisation(); + org.setName(DEMO_ORG_NAME); + org.setParentOrganisation(service.getRootOrganisation()); + org.setOrganisationType((OrganisationType)service.findById(OrganisationType.class,OrganisationType.COURSE_TYPE)); + org.setOrganisationState((OrganisationState)service.findById(OrganisationState.class,OrganisationState.ACTIVE)); + org.setLocale(getLocale()); + service.saveOrganisation(org, user.getUserId()); + } + return org; + } + +} Index: lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingSkeleton.java =================================================================== diff -u --- lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingSkeleton.java (revision 0) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingSkeleton.java (revision 58ac13faf486a9e6d3422d50b6c131e5a3ef6d99) @@ -0,0 +1,64 @@ +/** + * RegisterServiceSoapBindingSkeleton.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package org.lamsfoundation.lams.webservice; + +public class RegisterServiceSoapBindingSkeleton implements org.lamsfoundation.lams.webservice.Register, org.apache.axis.wsdl.Skeleton { + private org.lamsfoundation.lams.webservice.Register impl; + private static java.util.Map _myOperations = new java.util.Hashtable(); + private static java.util.Collection _myOperationsList = new java.util.ArrayList(); + + /** + * Returns List of OperationDesc objects with this name + */ + public static java.util.List getOperationDescByName(java.lang.String methodName) { + return (java.util.List)_myOperations.get(methodName); + } + + /** + * Returns Collection of OperationDescs + */ + public static java.util.Collection getOperationDescs() { + return _myOperationsList; + } + + static { + org.apache.axis.description.OperationDesc _oper; + org.apache.axis.description.FaultDesc _fault; + org.apache.axis.description.ParameterDesc [] _params; + _params = new org.apache.axis.description.ParameterDesc [] { + new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "username"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"), java.lang.String.class, false, false), + new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "password"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"), java.lang.String.class, false, false), + new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "firstName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"), java.lang.String.class, false, false), + new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "lastName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"), java.lang.String.class, false, false), + new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "email"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"), java.lang.String.class, false, false), + }; + _oper = new org.apache.axis.description.OperationDesc("createUser", _params, new javax.xml.namespace.QName("", "createUserReturn")); + _oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean")); + _oper.setElementQName(new javax.xml.namespace.QName("", "createUser")); + _oper.setSoapAction(""); + _myOperationsList.add(_oper); + if (_myOperations.get("createUser") == null) { + _myOperations.put("createUser", new java.util.ArrayList()); + } + ((java.util.List)_myOperations.get("createUser")).add(_oper); + } + + public RegisterServiceSoapBindingSkeleton() { + this.impl = new org.lamsfoundation.lams.webservice.RegisterServiceSoapBindingImpl(); + } + + public RegisterServiceSoapBindingSkeleton(org.lamsfoundation.lams.webservice.Register impl) { + this.impl = impl; + } + public boolean createUser(String username, String password, String firstName, String lastName, String email) throws java.rmi.RemoteException + { + boolean ret = impl.createUser(username, password, firstName, lastName, email); + return ret; + } + +}