You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2015/07/05 08:16:41 UTC
svn commit: r1689219 - in /openmeetings/trunk/singlewebapp:
openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/
openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/
openmeetings-db/src/main/java/org/apache/openmeetings/db/...
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: