Author: solomax
Date: Sun Jul  5 06:16:40 2015
New Revision: 1689219

URL: http://svn.apache.org/r1689219
Log:
[OPENMEETINGS-1118] SOAP/REST services are reorganized and simplified

Added:
    
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
      - copied, changed from r1688990, 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ErrorResult.java
    
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
    
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
Removed:
    
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ErrorResult.java
Modified:
    
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
    
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
    
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
    
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
    
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/RestClient.java

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java?rev=1689219&r1=1689218&r2=1689219&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
 Sun Jul  5 06:16:40 2015
@@ -33,7 +33,7 @@ public interface IUserManager {
                        String firstname, String email, Date age, String street,
                        String additionalname, String fax, String zip, long 
stateId,
                        String town, long languageId, String phone, boolean 
sendSMS,
-                       boolean generateSipUserData, String jNameTimeZone);
+                       boolean generateSipUserData, String jNameTimeZone, 
Boolean sendConfirmation);
        
        Long registerUserInit(Set<Right> rights, String login, String password, 
String lastname,
                        String firstname, String email, Date age, String street,
@@ -44,12 +44,6 @@ public interface IUserManager {
                        String userOffers, String userSearchs, Boolean 
showContactData,
                        Boolean showContactDataToContacts, String 
activatedHash) throws Exception;
 
-       Long registerUserNoEmail(String login, String Userpass,
-                       String lastname, String firstname, String email, Date 
age,
-                       String street, String additionalname, String fax, 
String zip,
-                       long stateId, String town, long languageId, String 
phone, boolean sendSMS, 
-                       boolean generateSipUserData, String jNameTimeZone);
-       
        Boolean kickUserByStreamId(String SID, Long roomId);
        
        Boolean kickUserByPublicSID(String SID, String publicSID);

Copied: 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
 (from r1688990, 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ErrorResult.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java?p2=openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java&p1=openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ErrorResult.java&r1=1688990&r2=1689219&rev=1689219&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ErrorResult.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
 Sun Jul  5 06:16:40 2015
@@ -18,42 +18,62 @@
  */
 package org.apache.openmeetings.db.dto.basic;
 
-public class ErrorResult {
-       private Long errorId;
-       private String errmessage;
-       private String errortype;
+import java.io.Serializable;
 
-       public ErrorResult() {
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
+public class ServiceResult implements Serializable {
+       private static final long serialVersionUID = 1L;
+       private long code;
+       private String message;
+       private String type;
+       public enum Type {
+               ERROR
+               , SUCCESS
+       }
+
+       public ServiceResult() {
        }
        
-       public ErrorResult(Long errorId, String errmessage, String errortype) {
+       public ServiceResult(long code, String message, String type) {
                super();
-               this.errorId = errorId;
-               this.errmessage = errmessage;
-               this.errortype = errortype;
+               this.code = code;
+               this.message = message;
+               this.type = type;
        }
 
-       public Long getErrorId() {
-               return errorId;
+       public ServiceResult(long code, String message, Type type) {
+               super();
+               this.code = code;
+               this.message = message;
+               this.type = type.name();
+       }
+       
+       public long getCode() {
+               return code;
        }
 
-       public void setErrorId(Long errorId) {
-               this.errorId = errorId;
+       public void setCode(long code) {
+               this.code = code;
        }
 
-       public String getErrmessage() {
-               return errmessage;
+       public String getMessage() {
+               return message;
        }
 
-       public void setErrmessage(String errmessage) {
-               this.errmessage = errmessage;
+       public void setMessage(String message) {
+               this.message = message;
        }
 
-       public String getErrortype() {
-               return errortype;
+       public String getType() {
+               return type;
        }
 
-       public void setErrortype(String errortype) {
-               this.errortype = errortype;
+       public void setType(String type) {
+               this.type = type;
        }
 }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java?rev=1689219&r1=1689218&r2=1689219&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
 Sun Jul  5 06:16:40 2015
@@ -35,6 +35,8 @@ public class UserDTO {
        private Long languageId;
        private Address address;
        private String timeZoneId;
+       private String externalId;
+       private String externalType;
        private Type type = Type.user;
 
        public UserDTO() {}
@@ -49,6 +51,8 @@ public class UserDTO {
                address = u.getAddress();
                timeZoneId = u.getTimeZoneId();
                type = u.getType();
+               externalId = u.getExternalId();
+               externalType = u.getExternalType();
        }
        
        public Long getId() {
@@ -130,4 +134,20 @@ public class UserDTO {
        public void setPassword(String password) {
                this.password = password;
        }
+
+       public String getExternalId() {
+               return externalId;
+       }
+
+       public void setExternalId(String externalId) {
+               this.externalId = externalId;
+       }
+
+       public String getExternalType() {
+               return externalType;
+       }
+
+       public void setExternalType(String externalType) {
+               this.externalType = externalType;
+       }
 }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java?rev=1689219&r1=1689218&r2=1689219&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
 Sun Jul  5 06:16:40 2015
@@ -263,9 +263,6 @@ public class UserManager implements IUse
         * Organisation with the id specified in the configuration value
         * default_group_id
         * 
-        * @param user_level
-        * @param availible
-        * @param status
         * @param login
         * @param Userpass
         * @param lastname
@@ -279,43 +276,27 @@ public class UserManager implements IUse
         * @param stateId
         * @param town
         * @param languageId
+        * @param phone
+        * @param sendSMS
+        * @param generateSipUserData
+        * @param jNameTimeZone
+        * @param sendConfirmation
         * @return
         */
        public Long registerUser(String login, String Userpass, String lastname,
                        String firstname, String email, Date age, String street,
                        String additionalname, String fax, String zip, long 
stateId,
-                       String town, long languageId, String phone, boolean 
sendSMS, boolean generateSipUserData, String jNameTimeZone) {
-               
-               String baseURL = configurationDao.getBaseUrl();
-               boolean sendConfirmation = baseURL != null
-                               && !baseURL.isEmpty()
-                               && 1 == 
configurationDao.getConfValue("sendEmailWithVerficationCode", Integer.class, 
"0");
-               
-               return registerUser(login, Userpass, lastname, firstname, 
email, age,
-                               street, additionalname, fax, zip, stateId, 
town, languageId,
-                               phone, sendSMS, generateSipUserData, 
jNameTimeZone, sendConfirmation);
-       }
-
-       public Long registerUserNoEmail(String login, String Userpass,
-                       String lastname, String firstname, String email, Date 
age,
-                       String street, String additionalname, String fax, 
String zip,
-                       long stateId, String town, long languageId, String 
phone, boolean sendSMS, 
-                       boolean generateSipUserData, String jNameTimeZone) {
-               
-               return registerUser(login, Userpass, lastname, firstname, 
email, age,
-                               street, additionalname, fax, zip, stateId, 
town, languageId,
-                               phone, sendSMS, generateSipUserData, 
jNameTimeZone, false);
-       }
-
-       private Long registerUser(String login, String Userpass, String 
lastname,
-                       String firstname, String email, Date age, String street,
-                       String additionalname, String fax, String zip, long 
stateId,
                        String town, long languageId, String phone, boolean 
sendSMS,
                        boolean generateSipUserData, String jNameTimeZone, 
Boolean sendConfirmation) {
                try {
                        // Checks if FrontEndUsers can register
                        if 
("1".equals(configurationDao.getConfValue(CONFIG_SOAP_REGISTER_KEY, 
String.class, "0"))) {
-                               
+                               if (sendConfirmation == null) {
+                                       String baseURL = 
configurationDao.getBaseUrl();
+                                       sendConfirmation = baseURL != null
+                                                       && !baseURL.isEmpty()
+                                                       && 1 == 
configurationDao.getConfValue("sendEmailWithVerficationCode", Integer.class, 
"0");
+                               }
                                // TODO: Read and generate SIP-Data via 
RPC-Interface Issue 1098
 
                                Long userId = 
registerUserInit(UserDao.getDefaultRights(), login,
@@ -484,9 +465,7 @@ public class UserManager implements IUse
 
                        // admins only
                        if 
(AuthLevelUtil.hasWebServiceLevel(usersDao.getRights(userId))) {
-
-                               Client rcl = sessionManager
-                                               
.getClientByPublicSID(publicSID, false, null);
+                               Client rcl = 
sessionManager.getClientByPublicSID(publicSID, false, null);
 
                                if (rcl == null) {
                                        return true;
@@ -496,19 +475,16 @@ public class UserManager implements IUse
                                if (rcl.getRoomId() != null) {
                                        scopeName = rcl.getRoomId().toString();
                                }
-                               IScope currentScope = scopeApplicationAdapter
-                                               .getRoomScope(scopeName);
+                               IScope currentScope = 
scopeApplicationAdapter.getRoomScope(scopeName);
 
                                HashMap<Integer, String> messageObj = new 
HashMap<Integer, String>();
                                messageObj.put(0, "kick");
-                               
scopeApplicationAdapter.sendMessageById(messageObj,
-                                               rcl.getStreamid(), 
currentScope);
+                               
scopeApplicationAdapter.sendMessageById(messageObj, rcl.getStreamid(), 
currentScope);
 
                                scopeApplicationAdapter.roomLeaveByScope(rcl, 
currentScope, true);
 
                                return true;
                        }
-
                } catch (Exception err) {
                        log.error("[kickUserByStreamId]", err);
                }

Added: 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java?rev=1689219&view=auto
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
 (added)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
 Sun Jul  5 06:16:40 2015
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.webservice;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.apache.cxf.feature.Features;
+import org.apache.openmeetings.db.dao.basic.ErrorDao;
+import org.apache.openmeetings.db.dao.label.LabelDao;
+import org.apache.openmeetings.db.dto.basic.ServiceResult;
+import org.apache.openmeetings.db.entity.basic.ErrorType;
+import org.apache.openmeetings.db.entity.basic.ErrorValue;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * The Service contains methods to login and create hash to directly enter
+ * conference rooms, recordings or the application in general
+ * 
+ * @author sebawagner
+ * @webservice ErrorService
+ * 
+ */
+@WebService(name = "ErrorService")
+@Features(features = "org.apache.cxf.feature.LoggingFeature")
+@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+@Path("/error")
+public class ErrorWebService {
+       private static final Logger log = 
Red5LoggerFactory.getLogger(ErrorWebService.class, webAppRootKey);
+
+       @Autowired
+       private ErrorDao errorDao;
+       @Autowired
+       private LabelDao labelDao;
+
+       /**
+        * loads an Error-Object. If a Method returns a negative Result, its an
+        * Error-id, it needs a languageId to specify in which language you 
want to
+        * display/read the error-message. English has the Language-ID one, for
+        * different one see the list of languages
+        * 
+        * @param id
+        *            the error id (negative Value here!)
+        * @param lang
+        *            The id of the language
+        *            
+        * @return - error with the code given
+        */
+       @GET
+       @Path("/{id}/{lang}")
+       public ServiceResult get(@WebParam @PathParam("id") long id, @WebParam 
@PathParam("lang") long lang) {
+               try {
+                       if (id < 0) {
+                               ErrorValue eValues = errorDao.get(-1 * id);
+                               if (eValues != null) {
+                                       ErrorType eType = 
errorDao.getErrorType(eValues.getTypeId());
+                                       log.debug("eValues.getLabelId() = " + 
eValues.getLabelId());
+                                       log.debug("eValues.getErrorType() = " + 
eType);
+                                       String eValue = 
labelDao.getString(eValues.getLabelId(), lang);
+                                       String tValue = 
labelDao.getString(eType.getLabelId(), lang);
+                                       if (eValue != null) {
+                                               return new ServiceResult(id, 
eValue, tValue);
+                                       }
+                               }
+                       } else {
+                               return new ServiceResult(id, "Error ... please 
check your input", "Error");
+                       }
+               } catch (Exception err) {
+                       log.error("[getErrorByCode] ", err);
+               }
+               return null;
+       }
+}

Added: 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java?rev=1689219&view=auto
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
 (added)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
 Sun Jul  5 06:16:40 2015
@@ -0,0 +1,188 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.webservice;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.ArrayList;
+
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+
+import org.apache.cxf.feature.Features;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.OrganisationDao;
+import org.apache.openmeetings.db.dao.user.OrganisationUserDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.dto.basic.SearchResult;
+import org.apache.openmeetings.db.dto.basic.ServiceResult;
+import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
+import org.apache.openmeetings.db.dto.user.UserSearchResult;
+import org.apache.openmeetings.db.entity.user.Organisation;
+import org.apache.openmeetings.db.entity.user.OrganisationUser;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
+import org.apache.openmeetings.webservice.error.ServiceException;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * The Service contains methods to login and create hash to directly enter
+ * conference rooms, recordings or the application in general
+ * 
+ * @author sebawagner
+ * @webservice GroupService
+ * 
+ */
+@WebService(name = "GroupService")
+@Features(features = "org.apache.cxf.feature.LoggingFeature")
+@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+@Path("/group")
+public class GroupWebService {
+       private static final Logger log = 
Red5LoggerFactory.getLogger(GroupWebService.class, webAppRootKey);
+
+       @Autowired
+       private OrganisationDao orgDao;
+       @Autowired
+       private OrganisationUserDao orgUserDao;
+       @Autowired
+       private UserDao userDao;
+       @Autowired
+       private SessiondataDao sessionDao;
+
+       /**
+        * add a new organisation
+        * 
+        * @param sid
+        *            The SID from getSession
+        * @param name
+        *            the name of the org
+        * @return the new id of the org or -1 in case an error happened
+        * @throws ServiceException
+        */
+       @POST
+       @Path("/")
+       public ServiceResult add(@QueryParam("sid") @WebParam String sid, 
@QueryParam("name") @WebParam String name) throws ServiceException {
+               Long userId = sessionDao.checkSession(sid);
+               if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+                       Organisation o = new Organisation();
+                       o.setName(name);
+                       return new ServiceResult(orgDao.update(o, 
userId).getId(), "Success", Type.SUCCESS);
+               } else {
+                       log.error("Could not create organization");
+                       return new ServiceResult(-26L, "Insufficient 
permissins", Type.ERROR);
+               }
+       }
+       
+       /**
+        * 
+        * Add a user to a certain organization
+        * 
+        * @param sid
+        *            The SID from getSession
+        * @param userId
+        *            the user id
+        * @param id
+        *            the organization id
+        * @return - id of the user added, or error id in case of the error
+        */
+       @POST
+       @Path("/{id}/{userId}")
+       public ServiceResult addUser(
+                       @QueryParam("sid") @WebParam String sid
+                       , @PathParam("id") @WebParam Long id
+                       , @PathParam("userId") @WebParam Long userId
+                       )
+       {
+               try {
+                       Long authUserId = sessionDao.checkSession(sid);
+                       if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
+                               if (!orgUserDao.isUserInOrganization(id, 
userId)) {
+                                       User u = userDao.get(userId);
+                                       u.getOrganisationUsers().add(new 
OrganisationUser(orgDao.get(id)));
+                                       userDao.update(u, authUserId);
+                               }
+                               return new ServiceResult(userId, "Success", 
Type.SUCCESS);
+                       } else {
+                               return new ServiceResult(-26L, "Insufficient 
permissins", Type.ERROR);
+                       }
+               } catch (Exception err) {
+                       log.error("addUserToOrganisation", err);
+                       return new ServiceResult(-1L, err.getMessage(), 
Type.ERROR);
+               }
+       }
+
+       /**
+        * Search users and return them
+        * 
+        * @param sid
+        *            The SID from getSession
+        * @param organisationId
+        *            the organization id
+        * @param start
+        *            first record
+        * @param max
+        *            max records
+        * @param orderby
+        *            orderby clause
+        * @param asc
+        *            asc or desc
+        * @return - users found
+        */
+       @GET
+       @Path("/{id}")
+       public UserSearchResult getUsersByOrganisation(
+                       @QueryParam("sid") @WebParam String sid
+                       , @PathParam("id") @WebParam long id
+                       , @QueryParam("start") @WebParam int start
+                       , @QueryParam("max") @WebParam int max
+                       , @QueryParam("orderby") @WebParam String orderby
+                       , @QueryParam("asc") @WebParam boolean asc
+                       )
+       {
+               try {
+                       Long userId = sessionDao.checkSession(sid);
+                       SearchResult<User> result = new SearchResult<User>();
+                       result.setObjectName(User.class.getName());
+                       if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+                               result.setRecords(orgUserDao.count(id));
+                               result.setResult(new ArrayList<User>());
+                               for (OrganisationUser ou : orgUserDao.get(id, 
null, start, max, orderby + " " + (asc ? "ASC" : "DESC"))) {
+                                       result.getResult().add(ou.getUser());
+                               }
+                       } else {
+                               log.error("Need Administration Account");
+                               result.setErrorId(-26L);
+                       }
+                       return new UserSearchResult(result);
+               } catch (Exception err) {
+                       log.error("getUsersByOrganisation", err);
+               }
+               return null;
+       }
+}

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1689219&r1=1689218&r2=1689219&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 Sun Jul  5 06:16:40 2015
@@ -20,36 +20,32 @@ package org.apache.openmeetings.webservi
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
-import java.util.ArrayList;
 import java.util.Date;
 
 import javax.jws.WebParam;
 import javax.jws.WebService;
+import javax.ws.rs.DELETE;
 import javax.ws.rs.GET;
+import javax.ws.rs.POST;
 import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
-import org.apache.openmeetings.db.dao.basic.ErrorDao;
-import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
-import org.apache.openmeetings.db.dao.user.OrganisationDao;
-import org.apache.openmeetings.db.dao.user.OrganisationUserDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.dto.basic.ErrorResult;
-import org.apache.openmeetings.db.dto.basic.SearchResult;
+import org.apache.openmeetings.db.dto.basic.ServiceResult;
+import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
 import org.apache.openmeetings.db.dto.user.UserDTO;
-import org.apache.openmeetings.db.dto.user.UserSearchResult;
-import org.apache.openmeetings.db.entity.basic.ErrorType;
-import org.apache.openmeetings.db.entity.basic.ErrorValue;
 import org.apache.openmeetings.db.entity.server.RemoteSessionObject;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
-import org.apache.openmeetings.db.entity.user.Organisation;
-import org.apache.openmeetings.db.entity.user.OrganisationUser;
+import org.apache.openmeetings.db.entity.user.Address;
+import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
@@ -59,8 +55,6 @@ import org.red5.logging.Red5LoggerFactor
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import com.sun.istack.NotNull;
-
 /**
  * 
  * The Service contains methods to login and create hash to directly enter
@@ -72,349 +66,131 @@ import com.sun.istack.NotNull;
  */
 @WebService(name = "UserService")
 @Features(features = "org.apache.cxf.feature.LoggingFeature")
+//@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, 
MediaType.TEXT_HTML})
 @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+//@Consumes({MediaType.APPLICATION_FORM_URLENCODED, MediaType.APPLICATION_XML, 
MediaType.APPLICATION_JSON})
 @Path("/user")
 public class UserWebService {
        private static final Logger log = 
Red5LoggerFactory.getLogger(UserWebService.class, webAppRootKey);
 
        @Autowired
-       private SessiondataDao sessiondataDao;
-       @Autowired
        private ConfigurationDao configurationDao;
        @Autowired
        private IUserManager userManagement;
        @Autowired
-       private ErrorDao errorDao;
-       @Autowired
-       private OrganisationDao orgDao;
-       @Autowired
-       private OrganisationUserDao orgUserDao;
-       @Autowired
        private SOAPLoginDao soapLoginDao;
        @Autowired
        private UserDao userDao;
        @Autowired
        private SessiondataDao sessionDao;
-       @Autowired
-       private LabelDao labelDao;
-
-       /**
-        * load this session id before doing anything else Returns an Object of 
Type
-        * Sessiondata, this contains a sessionId, use that sessionId in all 
Methods
-        * 
-        * @return - creates new session
-        */
-       @GET
-       @Path("/getSession")
-       public Sessiondata getSession() {
-               log.debug("SPRING LOADED getSession -- ");
-               return sessionDao.startsession();
-       }
 
        /**
-        * Auth function, use the SID you get by getSession, return positive 
means
-        * logged-in, if negative its an ErrorCode, you have to invoke the 
Method
-        * getErrorByCode to get the Text-Description of that ErrorCode
-        * 
-        * @param SID - The SID from getSession
-        * @param username - Username from OpenMeetings, the user has to have 
Admin-rights
-        * @param userpass - Userpass from OpenMeetings
+        * @param login - login or email of Openmeetings user with admin or 
SOAP-rights
+        * @param pass - password
         *            
-        * @return - id of the logged in user, -1 in case of the error
+        * @return - {@link ServiceResult} with error code or SID and userId
         */
        @GET
        @Path("/login")
-       public Long login(@WebParam String SID, @WebParam String username, 
@WebParam String userpass) {
+       public ServiceResult login(@WebParam @QueryParam("user") String login, 
@WebParam @QueryParam("pass") String pass) {
                try {
-                       log.debug("Login user SID : " + SID);
-                       User u = userDao.login(username, userpass);
+                       log.debug("Login user");
+                       User u = userDao.login(login, pass);
                        if (u == null) {
-                               return -1L;
+                               return new ServiceResult(-1L, "Login failed", 
Type.ERROR);
                        }
                        
-                       boolean bool = sessiondataDao.updateUser(SID, 
u.getId(), false, u.getLanguageId());
-                       if (!bool) {
-                               // invalid Session-Object
-                               return -35L;
+                       Sessiondata sd = sessionDao.startsession();
+                       log.debug("Login user SID : " + sd.getSessionId());
+                       if (!sessionDao.updateUser(sd.getSessionId(), 
u.getId(), false, u.getLanguageId())) {
+                               return new ServiceResult(-35L, "invalid 
Session-Object", Type.ERROR);
                        }
                        
-                       return u.getId();
+                       return new ServiceResult(u.getId(), sd.getSessionId(), 
Type.SUCCESS);
                } catch (OmException oe) {
-                       if (oe.getCode() != null) {
-                               return oe.getCode();
-                       }
+                       return new ServiceResult(oe.getCode() == null ? -1 : 
oe.getCode(), oe.getMessage(), Type.ERROR);
                } catch (Exception err) {
                        log.error("[login]", err);
+                       return new ServiceResult(-1L, err.getMessage(), 
Type.ERROR);
                }
-               return -1L;
-       }
-
-       /**
-        * loads an Error-Object. If a Method returns a negative Result, its an
-        * Error-id, it needs a languageId to specify in which language you 
want to
-        * display/read the error-message. English has the Language-ID one, for
-        * different one see the list of languages
-        * 
-        * @param SID
-        *            The SID from getSession
-        * @param errorid
-        *            the error id (negative Value here!)
-        * @param langId
-        *            The id of the language
-        *            
-        * @return - error with the code given
-        */
-       @GET
-       @Path("/getErrorByCode")
-       public ErrorResult getErrorByCode(@WebParam String SID, @WebParam long 
errorid, @WebParam long langId) {
-               try {
-                       if (errorid < 0) {
-                               ErrorValue eValues = errorDao.get(-1 * errorid);
-                               if (eValues != null) {
-                                       ErrorType eType = 
errorDao.getErrorType(eValues.getTypeId());
-                                       log.debug("eValues.getLabelId() = " + 
eValues.getLabelId());
-                                       log.debug("eValues.getErrorType() = " + 
eType);
-                                       String eValue = 
labelDao.getString(eValues.getLabelId(), langId);
-                                       String tValue = 
labelDao.getString(eType.getLabelId(), langId);
-                                       if (eValue != null) {
-                                               return new ErrorResult(errorid, 
eValue, tValue);
-                                       }
-                               }
-                       } else {
-                               return new ErrorResult(errorid, "Error ... 
please check your input", "Error");
-                       }
-               } catch (Exception err) {
-                       log.error("[getErrorByCode] ", err);
-               }
-               return null;
        }
 
        /**
         * Adds a new User like through the Frontend, but also does activates 
the
         * Account To do SSO see the methods to create a hash and use those 
ones!
         * 
-        * @param SID
+        * @param sid
         *            The SID from getSession
-        * @param userDTO
+        * @param user
         *            user object
-        *            
-        * @return - id of the user added or error code
-        * @throws ServiceException
-        */
-       @GET
-       @Path("/addUser")
-       public Long addUser(@WebParam String SID, @WebParam @NotNull UserDTO 
userDto)
-                       throws ServiceException {
-               try {
-                       Long authUserId = sessiondataDao.checkSession(SID);
-
-                       if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
-
-                               String jName_timeZone = 
configurationDao.getConfValue("default.timezone", String.class, "");
-
-                               Long userId = 
userManagement.registerUser(userDto.getLogin(), userDto.getPassword(),
-                                               userDto.getLastname(), 
userDto.getFirstname(), userDto.getAddress() != null ? 
userDto.getAddress().getEmail() : "", new Date(), 
userDto.getAddress().getStreet(), //FIXME NPE signature
-                                               
userDto.getAddress().getAdditionalname(), userDto.getAddress().getFax(), 
userDto.getAddress().getZip(), userDto.getAddress().getState().getId() //FIXME 
NPE signature
-                                               , 
userDto.getAddress().getTown(), userDto.getLanguageId(), //FIXME NPE signature
-                                               "", false, true, // generate 
SIP Data if the config is enabled
-                                               jName_timeZone);
-
-                               if (userId == null || userId < 0) {
-                                       return userId;
-                               }
-
-                               User user = userDao.get(userId);
-
-                               // activate the User
-                               user.getRights().add(Right.Dashboard);
-                               user.getRights().add(Right.Login);
-                               user.getRights().add(Right.Room);
-                               user.setUpdated(new Date());
-
-                               userDao.update(user, authUserId);
-
-                               return userId;
-
-                       } else {
-                               return new Long(-26);
-                       }
-               } catch (Exception err) {
-                       log.error("addNewUser", err);
-                       throw new ServiceException(err.getMessage());
-               }
-       }
-
-       /**
-        * Adds a new User like through the Frontend, but also does activates 
the
-        * Account
-        * 
-        * @param SID
-        *            The SID from getSession
-        * @param username
-        *            any username
-        * @param userpass
-        *            any userpass
-        * @param lastname
-        *            any lastname
-        * @param firstname
-        *            any firstname
         * @param email
-        *            any email
-        * @param additionalname
-        *            any additionalname
-        * @param street
-        *            any street
-        * @param zip
-        *            any zip
-        * @param fax
-        *            any fax
-        * @param stateId
-        *            a valid stateId
-        * @param town
-        *            any town
-        * @param languageId
-        *            the languageId
-        * @param jNameTimeZone
-        *            the name of the timezone for the user
+        *            whatever or not to send email, leave empty for auto-send
         *            
-        * @return - id of the user added or the error code
+        * @return - id of the user added or error code
         * @throws ServiceException
         */
-       public Long addNewUserWithTimeZone(String SID, String username,
-                       String userpass, String lastname, String firstname, 
String email,
-                       String additionalname, String street, String zip, 
String fax,
-                       long stateId, String town, long languageId, String 
jNameTimeZone) throws ServiceException {
+       @POST
+       @Path("/")
+       public Long add(
+                       @WebParam @QueryParam("sid") String sid
+                       , @WebParam @QueryParam("user") UserDTO user
+                       , @WebParam @QueryParam("email") Boolean email
+                       ) throws ServiceException
+       {
                try {
-                       Long authUserId = sessiondataDao.checkSession(SID);
+                       Long authUserId = sessionDao.checkSession(sid);
 
                        if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
-
-                               Long userId = 
userManagement.registerUser(username, userpass,
-                                               lastname, firstname, email, new 
Date(), street,
-                                               additionalname, fax, zip, 
stateId, town, languageId,
-                                               "", false, true, // generate
-                                                                               
        // SIP
-                                                                               
        // Data
-                                                                               
        // if
-                                                                               
        // the
-                                                                               
        // config
-                                                                               
        // is
-                                                                               
        // enabled
-                                               jNameTimeZone); 
-
-                               if (userId == null || userId < 0) {
-                                       return userId;
-                               }
-
-                               User user = userDao.get(userId);
-
-                               // activate the User
-                               user.getRights().add(Right.Login);
-                               user.setUpdated(new Date());
-
-                               userDao.update(user, authUserId);
-
-                               return userId;
-
-                       } else {
-                               return new Long(-26);
-                       }
-               } catch (Exception err) {
-                       log.error("addNewUserWithTimeZone", err);
-                       throw new ServiceException(err.getMessage());
-               }
-       }
-
-       /**
-        * Adds a new User like through the Frontend, but also does activates 
the
-        * Account, sends NO email (no matter what you configured) and sets the
-        * users external user id and type
-        * 
-        * Use the methods to create a hash for SSO, creating users is not 
required
-        * for SSO
-        * 
-        * @param SID
-        *            The SID from getSession
-        * @param username
-        *            any username
-        * @param userpass
-        *            any userpass
-        * @param lastname
-        *            any lastname
-        * @param firstname
-        *            any firstname
-        * @param email
-        *            any email
-        * @param additionalname
-        *            any additionalname
-        * @param street
-        *            any street
-        * @param zip
-        *            any zip
-        * @param fax
-        *            any fax
-        * @param stateId
-        *            a valid stateId
-        * @param town
-        *            any town
-        * @param languageId
-        *            the languageId
-        * @param jNameTimeZone
-        *            the name of the timezone for the user
-        * @param externalUserId
-        *            externalUserId
-        * @param externalUserType
-        *            externalUserType
-        *            
-        * @return - id of user added or error code
-        * @throws ServiceException
-        */
-       public Long addNewUserWithExternalType(String SID, String username,
-                       String userpass, String lastname, String firstname, 
String email,
-                       String additionalname, String street, String zip, 
String fax,
-                       long stateId, String town, long languageId,
-                       String jNameTimeZone, String externalUserId, String 
externalUserType)
-                       throws ServiceException {
-               try {
-                       Long authUserId = sessiondataDao.checkSession(SID);
-
-                       if 
(AuthLevelUtil.hasAdminLevel(userDao.getRights(authUserId))) {
-
-                               User testUser = 
userDao.getExternalUser(externalUserId, externalUserType);
+                               User testUser = 
userDao.getExternalUser(user.getExternalId(), user.getExternalType());
 
                                if (testUser != null) {
-                                       throw new Exception("User does already 
exist!");
+                                       throw new ServiceException("User does 
already exist!");
                                }
 
-                               // This will send no email to the users
-                               Long userId = 
userManagement.registerUserNoEmail(username,
-                                               userpass, lastname, firstname, 
email, new Date(),
-                                               street, additionalname, fax, 
zip, stateId, town,
-                                               languageId, "", false, true, // 
generate SIP Data if the config is enabled
-                                               jNameTimeZone);
+                               String jName_timeZone = 
configurationDao.getConfValue("default.timezone", String.class, "");
+                               if (user.getAddress() == null) {
+                                       user.setAddress(new Address());
+                                       State s = new State();
+                                       s.setId(1L);
+                                       user.getAddress().setState(s);
+                               }
+                               if (user.getLanguageId() == null) {
+                                       user.setLanguageId(1L);
+                               }
+                               Long userId = 
userManagement.registerUser(user.getLogin(), user.getPassword(),
+                                               user.getLastname(), 
user.getFirstname(), user.getAddress().getEmail(), new Date(), 
user.getAddress().getStreet(),
+                                               
user.getAddress().getAdditionalname(), user.getAddress().getFax(), 
user.getAddress().getZip(), user.getAddress().getState().getId()
+                                               , user.getAddress().getTown(), 
user.getLanguageId(),
+                                               "", false, true, // generate 
SIP Data if the config is enabled
+                                               jName_timeZone, email);
 
                                if (userId == null || userId < 0) {
                                        return userId;
                                }
 
-                               User user = userDao.get(userId);
+                               User u = userDao.get(userId);
 
-                               // activate the User
-                               user.getRights().add(Right.Login);
-                               user.setUpdated(new Date());
-                               user.setExternalId(externalUserId);
-                               user.setExternalType(externalUserType);
+                               u.getRights().add(Right.Room);
+                               if (user.getExternalId() == null && 
user.getExternalType() == null) {
+                                       // activate the User
+                                       u.getRights().add(Right.Login);
+                                       u.getRights().add(Right.Dashboard);
+                               } else {
+                                       u.setExternalId(user.getExternalId());
+                                       
u.setExternalType(user.getExternalType());
+                               }
 
-                               userDao.update(user, authUserId);
+                               userDao.update(u, authUserId);
 
                                return userId;
 
                        } else {
                                return new Long(-26);
                        }
-
+               } catch (ServiceException err) {
+                       throw err;
                } catch (Exception err) {
-                       log.error("addNewUserWithExternalType", err);
+                       log.error("addNewUser", err);
                        throw new ServiceException(err.getMessage());
                }
        }
@@ -423,29 +199,27 @@ public class UserWebService {
         * 
         * Delete a certain user by its id
         * 
-        * @param SID
+        * @param sid
         *            The SID from getSession
-        * @param userId
+        * @param id
         *            the openmeetings user id
         *            
         * @return - id of the user deleted, error code otherwise
         * @throws ServiceException
         */
-       public Long deleteUserById(String SID, Long userId) throws 
ServiceException {
+       @DELETE
+       @Path("/{id}")
+       public ServiceResult delete(@WebParam @QueryParam("sid") String sid, 
@WebParam @PathParam("id") long id) throws ServiceException {
                try {
-                       Long authUserId = sessiondataDao.checkSession(SID);
+                       Long authUserId = sessionDao.checkSession(sid);
 
                        if 
(AuthLevelUtil.hasAdminLevel(userDao.getRights(authUserId))) {
+                               userDao.deleteUserID(id);
 
-                               // Setting user deleted
-                               userDao.deleteUserID(userId);
-
-                               return userId;
-
+                               return new ServiceResult(id, "Deleted", 
Type.SUCCESS);
                        } else {
-                               return new Long(-26);
+                               return new ServiceResult(-26L, "Insufficient 
permissins", Type.ERROR);
                        }
-
                } catch (Exception err) {
                        log.error("deleteUserById", err);
                        throw new ServiceException(err.getMessage());
@@ -456,7 +230,7 @@ public class UserWebService {
         * 
         * Delete a certain user by its external user id
         * 
-        * @param SID
+        * @param sid
         *            The SID from getSession
         * @param externalId
         *            externalUserId
@@ -466,13 +240,18 @@ public class UserWebService {
         * @return - id of user deleted, or error code
         * @throws ServiceException
         */
-       public Long deleteUserByExternalUserIdAndType(String SID,
-                       String externalId, String externalType) throws 
ServiceException {
+       @DELETE
+       @Path("/{externalType}/{externalId}")
+       public ServiceResult deleteExternal(
+                       @QueryParam("sid") String sid
+                       , @PathParam("externalType") String externalType
+                       , @PathParam("externalId") String externalId
+                       ) throws ServiceException
+       {
                try {
-                       Long authUserId = sessiondataDao.checkSession(SID);
+                       Long authUserId = sessionDao.checkSession(sid);
 
                        if 
(AuthLevelUtil.hasAdminLevel(userDao.getRights(authUserId))) {
-
                                User userExternal = 
userDao.getExternalUser(externalId, externalType);
 
                                Long userId = userExternal.getId();
@@ -480,12 +259,10 @@ public class UserWebService {
                                // Setting user deleted
                                userDao.deleteUserID(userId);
 
-                               return userId;
-
+                               return new ServiceResult(userId, "Deleted", 
Type.SUCCESS);
                        } else {
-                               return new Long(-26);
+                               return new ServiceResult(-26L, "Insufficient 
permissins", Type.ERROR);
                        }
-
                } catch (Exception err) {
                        log.error("deleteUserByExternalUserIdAndType", err);
                        throw new ServiceException(err.getMessage());
@@ -530,7 +307,7 @@ public class UserWebService {
                        Long roomId, int becomeModeratorAsInt, int 
showAudioVideoTestAsInt)
                        throws ServiceException {
                try {
-                       Long userId = sessiondataDao.checkSession(SID);
+                       Long userId = sessionDao.checkSession(SID);
                        if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
 
                                RemoteSessionObject remoteSessionObject = new 
RemoteSessionObject(
@@ -543,7 +320,7 @@ public class UserWebService {
 
                                log.debug("xmlString " + xmlString);
 
-                               sessiondataDao.updateUserRemoteSession(SID, 
xmlString);
+                               sessionDao.updateUserRemoteSession(SID, 
xmlString);
 
                                boolean becomeModerator = false;
                                if (becomeModeratorAsInt != 0) {
@@ -621,7 +398,7 @@ public class UserWebService {
 
                log.debug("UserService.setUserObjectAndGenerateRoomHashByURL");
                try {
-                       Long userId = sessiondataDao.checkSession(SID);
+                       Long userId = sessionDao.checkSession(SID);
                        if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
 
                                RemoteSessionObject remoteSessionObject = new 
RemoteSessionObject(
@@ -634,7 +411,7 @@ public class UserWebService {
 
                                log.debug("xmlString " + xmlString);
 
-                               sessiondataDao.updateUserRemoteSession(SID, 
xmlString);
+                               sessionDao.updateUserRemoteSession(SID, 
xmlString);
 
                                boolean becomeModerator = false;
                                if (becomeModeratorAsInt != 0) {
@@ -714,7 +491,7 @@ public class UserWebService {
                        String externalUserType, Long roomId, int 
becomeModeratorAsInt,
                        int showAudioVideoTestAsInt, int allowRecording) {
                try {
-                       Long userId = sessiondataDao.checkSession(SID);
+                       Long userId = sessionDao.checkSession(SID);
                        if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
 
                                RemoteSessionObject remoteSessionObject = new 
RemoteSessionObject(
@@ -727,7 +504,7 @@ public class UserWebService {
 
                                log.debug("xmlString " + xmlString);
 
-                               sessiondataDao.updateUserRemoteSession(SID, 
xmlString);
+                               sessionDao.updateUserRemoteSession(SID, 
xmlString);
 
                                boolean becomeModerator = false;
                                if (becomeModeratorAsInt != 0) {
@@ -800,7 +577,7 @@ public class UserWebService {
                log.debug("UserService.setUserObjectMainLandingZone");
 
                try {
-                       Long userId = sessiondataDao.checkSession(SID);
+                       Long userId = sessionDao.checkSession(SID);
                        if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
 
                                RemoteSessionObject remoteSessionObject = new 
RemoteSessionObject(
@@ -813,7 +590,7 @@ public class UserWebService {
 
                                log.debug("xmlString " + xmlString);
 
-                               sessiondataDao.updateUserRemoteSession(SID, 
xmlString);
+                               sessionDao.updateUserRemoteSession(SID, 
xmlString);
 
                                String hash = soapLoginDao.addSOAPLogin(SID, 
null, false, true,
                                                true, // 
allowSameURLMultipleTimes
@@ -886,7 +663,7 @@ public class UserWebService {
                        Long roomId, int becomeModeratorAsInt,
                        int showAudioVideoTestAsInt, int 
showNickNameDialogAsInt) {
                try {
-                       Long userId = sessiondataDao.checkSession(SID);
+                       Long userId = sessionDao.checkSession(SID);
                        if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
 
                                RemoteSessionObject remoteSessionObject = new 
RemoteSessionObject(
@@ -900,7 +677,7 @@ public class UserWebService {
 
                                log.debug("xmlString " + xmlString);
 
-                               sessiondataDao.updateUserRemoteSession(SID, 
xmlString);
+                               sessionDao.updateUserRemoteSession(SID, 
xmlString);
 
                                boolean becomeModerator = false;
                                if (becomeModeratorAsInt != 0) {
@@ -961,7 +738,7 @@ public class UserWebService {
                        String username, String firstname, String lastname,
                        String externalUserId, String externalUserType, Long 
recordingId) {
                try {
-                       Long userId = sessiondataDao.checkSession(SID);
+                       Long userId = sessionDao.checkSession(SID);
                        if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
 
                                RemoteSessionObject remoteSessionObject = new 
RemoteSessionObject(
@@ -974,7 +751,7 @@ public class UserWebService {
 
                                log.debug("xmlString " + xmlString);
 
-                               sessiondataDao.updateUserRemoteSession(SID, 
xmlString);
+                               sessionDao.updateUserRemoteSession(SID, 
xmlString);
 
                                String hash = soapLoginDao.addSOAPLogin(SID, 
null, false,
                                                false, true, // 
allowSameURLMultipleTimes
@@ -998,81 +775,6 @@ public class UserWebService {
        }
 
        /**
-        * 
-        * Add a user to a certain organization
-        * 
-        * @param SID
-        *            The SID from getSession
-        * @param userId
-        *            the user id
-        * @param organisationId
-        *            the organization id
-        * @param insertedby
-        *            user id of the operating user
-        * @return - id of the user added, or error id in case of the error
-        */
-       public Long addUserToOrganisation(String SID, Long userId,
-                       Long organisationId, Long insertedby) {
-               try {
-                       Long authUserId = sessiondataDao.checkSession(SID);
-                       if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
-                               if 
(!orgUserDao.isUserInOrganization(organisationId, userId)) {
-                                       User u = userDao.get(userId);
-                                       u.getOrganisationUsers().add(new 
OrganisationUser(orgDao.get(organisationId)));
-                                       userDao.update(u, authUserId);
-                               }
-                               return userId;
-                       } else {
-                               return new Long(-26);
-                       }
-               } catch (Exception err) {
-                       log.error("addUserToOrganisation", err);
-               }
-               return new Long(-1);
-       }
-
-       /**
-        * Search users and return them
-        * 
-        * @param SID
-        *            The SID from getSession
-        * @param organisationId
-        *            the organization id
-        * @param start
-        *            first record
-        * @param max
-        *            max records
-        * @param orderby
-        *            orderby clause
-        * @param asc
-        *            asc or desc
-        * @return - users found
-        */
-       public UserSearchResult getUsersByOrganisation(String SID,
-                       long organisationId, int start, int max, String orderby,
-                       boolean asc) {
-               try {
-                       Long userId = sessiondataDao.checkSession(SID);
-                       SearchResult<User> result = new SearchResult<User>();
-                       result.setObjectName(User.class.getName());
-                       if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
-                               
result.setRecords(orgUserDao.count(organisationId));
-                               result.setResult(new ArrayList<User>());
-                               for (OrganisationUser ou : 
orgUserDao.get(organisationId, null, start, max, orderby + " " + (asc ? "ASC" : 
"DESC"))) {
-                                       result.getResult().add(ou.getUser());
-                               }
-                       } else {
-                               log.error("Need Administration Account");
-                               result.setErrorId(-26L);
-                       }
-                       return new UserSearchResult(result);
-               } catch (Exception err) {
-                       log.error("getUsersByOrganisation", err);
-               }
-               return null;
-       }
-
-       /**
         * Kick a user by its public SID
         * 
         * @param SID
@@ -1084,12 +786,11 @@ public class UserWebService {
         */
        public Boolean kickUserByPublicSID(String SID, String publicSID) {
                try {
-                       Boolean success = false;
+                       Boolean success = 
userManagement.kickUserByPublicSID(SID, publicSID);
 
-                       success = userManagement.kickUserByPublicSID(SID, 
publicSID);
-
-                       if (success == null)
+                       if (success == null) {
                                success = false;
+                       }
 
                        return success;
                } catch (Exception err) {
@@ -1097,26 +798,4 @@ public class UserWebService {
                }
                return null;
        }
-       
-       /**
-        * add a new organisation
-        * 
-        * @param SID
-        *            The SID from getSession
-        * @param name
-        *            the name of the org
-        * @return the new id of the org or -1 in case an error happened
-        * @throws ServiceException
-        */
-       public Long addOrganisation(String SID, String name) throws 
ServiceException {
-               Long userId = sessiondataDao.checkSession(SID);
-               if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
-                       Organisation o = new Organisation();
-                       o.setName(name);
-                       return orgDao.update(o, userId).getId();
-               }
-               log.error("Could not create organization");
-               return -1L;
-       }
-
 }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/RestClient.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/RestClient.java?rev=1689219&r1=1689218&r2=1689219&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/RestClient.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/RestClient.java
 Sun Jul  5 06:16:40 2015
@@ -25,6 +25,7 @@ import java.net.URL;
 import javax.xml.namespace.QName;
 import javax.xml.ws.Service;
 
+import org.apache.openmeetings.db.dto.basic.ServiceResult;
 import org.apache.openmeetings.db.entity.server.Server;
 import org.apache.openmeetings.webservice.UserWebService;
 import org.red5.logging.Red5LoggerFactory;
@@ -171,11 +172,9 @@ public class RestClient {
        public void loginUser(Action action) throws Exception {
                UserWebService client = getUserClient();
                
-               sessionId = client.getSession().getSessionId();
+               ServiceResult result = client.login(user, pass);
 
-               Long uId = client.login(sessionId, user, pass);
-
-               loginSuccess = uId > 0;
+               loginSuccess = result.getCode() > 0;
 
                switch (action) {
                        case KICK_USER:


Reply via email to