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/11/06 07:18:49 UTC
svn commit: r1712911 [16/16] - in /openmeetings/branches/3.1.x:
openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/
openmeetings-core/src/main/java/org/apache/openmeetings/core/data/conference/
openmeetings-core/src/main/java/org/ap...
Modified: openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ServerWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ServerWebService.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ServerWebService.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ServerWebService.java Fri Nov 6 06:18:44 2015
@@ -18,12 +18,31 @@
*/
package org.apache.openmeetings.webservice;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.List;
+
+import javax.jws.WebMethod;
+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.server.ServerDao;
import org.apache.openmeetings.db.dao.server.SessiondataDao;
import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.dto.basic.ServiceResult;
+import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
+import org.apache.openmeetings.db.dto.server.ServerDTO;
import org.apache.openmeetings.db.entity.server.Server;
import org.apache.openmeetings.db.util.AuthLevelUtil;
-import org.apache.openmeetings.util.OpenmeetingsVariables;
import org.apache.openmeetings.webservice.error.ServiceException;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
@@ -37,21 +56,24 @@ import org.springframework.beans.factory
* @webservice ServerService
*
*/
+@WebService(serviceName="org.apache.openmeetings.webservice.ServerWebService")
+@Features(features = "org.apache.cxf.feature.LoggingFeature")
+@Produces({MediaType.APPLICATION_JSON})
+@Path("/server")
public class ServerWebService {
- private static final Logger log = Red5LoggerFactory.getLogger(
- ServerWebService.class, OpenmeetingsVariables.webAppRootKey);
+ private static final Logger log = Red5LoggerFactory.getLogger(ServerWebService.class, webAppRootKey);
@Autowired
- private SessiondataDao sessiondataDao;
+ private SessiondataDao sessionDao;
@Autowired
private UserDao userDao;
@Autowired
- private ServerDao serversDao;
+ private ServerDao serverDao;
/**
* Method to retrieve the list of the servers participating in cluster
*
- * @param SID
+ * @param sid
* - session id to identify the user making request
* @param start
* - server index to start with
@@ -59,15 +81,22 @@ public class ServerWebService {
* - Maximum server count
* @return The list of servers participating in cluster
*/
- public Server[] getServers(String SID, int start, int max) throws ServiceException {
+ @WebMethod
+ @GET
+ @Path("/{start}/{max}")
+ public List<ServerDTO> getServers(@QueryParam("sid") @WebParam(name="sid") String sid
+ , @PathParam("start") @WebParam(name="start") int start
+ , @PathParam("max") @WebParam(name="max") int max
+ ) throws ServiceException
+ {
log.debug("getServers enter");
- Long users_id = sessiondataDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
- return serversDao.get(start, max).toArray(new Server[0]);
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ return ServerDTO.list(serverDao.get(start, max));
} else {
log.warn("Insuffisient permissions");
- return null;
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
}
@@ -75,99 +104,74 @@ public class ServerWebService {
* Method to retrieve the total count of the servers participating in
* cluster
*
- * @param SID
+ * @param sid
* - session id to identify the user making request
* @return total count of the servers participating in cluster
*/
- public int getServerCount(String SID) throws ServiceException {
+ @WebMethod
+ @GET
+ @Path("/count")
+ public long count(@QueryParam("sid") @WebParam(name="sid") String sid) throws ServiceException {
log.debug("getServerCount enter");
- Long users_id = sessiondataDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
- return (int) serversDao.count();
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ return serverDao.count();
} else {
- log.warn("Insuffisient permissions");
- return -1;
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
}
/**
* Method to add/update server
*
- * @param SID
+ * @param sid
* - session id to identify the user making request
- * @param id
- * - the id of the server to save
- * @param name
- * - the name of the server to save
- * @param address
- * - the address(DNS name or IP) of the server to save
- * @param port
- * - the http port of the slave
- * @param user
- * - REST user to access the slave
- * @param pass
- * - REST pass to access the slave
- * @param webapp
- * - webapp name of the OpenMeetings instance
- * @param protocol
- * - protocol to access the OpenMeetings instance
- * @param active
- * - if the server currently participates in the cluster or not
- * @param comment
- * - comment for the server
+ * @param server
+ * - server to add/update
* @return the id of saved server
*/
- public long saveServer(String SID, long id, String name, String address,
- int port, String user, String pass, String webapp, String protocol,
- Boolean active, String comment) throws ServiceException {
+ @WebMethod
+ @POST
+ @Path("/")
+ public ServerDTO add(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="server") @QueryParam("server") ServerDTO server) throws ServiceException {
log.debug("saveServerCount enter");
- Long users_id = sessiondataDao.checkSession(SID);
-
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
- Server s = serversDao.get(id);
- if (s == null) {
- s = new Server();
- }
- s.setName(name);
- s.setAddress(address);
- s.setPort(port);
- s.setUser(user);
- s.setPass(pass);
- s.setWebapp(webapp);
- s.setProtocol(protocol);
- s.setActive(active);
- s.setComment(comment);
- return serversDao.update(s, users_id).getId();
+ Long userId = sessionDao.checkSession(sid);
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ Server s = server.get();
+ return new ServerDTO(serverDao.update(s, userId));
} else {
log.warn("Insuffisient permissions");
- return -1;
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
}
/**
* Method to delete server
*
- * @param SID
+ * @param sid
* - session id to identify the user making request
* @param id
* - the id of the server to delete
* @return true if the server was deleted, false otherwise
*/
- public boolean deleteServer(String SID, long id) throws ServiceException {
+ @WebMethod
+ @DELETE
+ @Path("/{id}")
+ public ServiceResult delete(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @PathParam("id") long id) throws ServiceException {
log.debug("saveServerCount enter");
- Long users_id = sessiondataDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
- Server s = serversDao.get(id);
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ Server s = serverDao.get(id);
if (s != null) {
- serversDao.delete(s, users_id);
- return true;
+ serverDao.delete(s, userId);
+ return new ServiceResult(id, "Deleted", Type.SUCCESS);
}
+ return new ServiceResult(0L, "Not found", Type.SUCCESS);
} else {
log.warn("Insuffisient permissions");
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
- return false;
}
-
}
Modified: openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java Fri Nov 6 06:18:44 2015
@@ -20,31 +20,39 @@ package org.apache.openmeetings.webservi
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
-import java.util.ArrayList;
import java.util.Date;
-import org.apache.openmeetings.core.remote.MainService;
+import javax.jws.WebMethod;
+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.core.remote.ConferenceService;
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.OrganisationDao;
-import org.apache.openmeetings.db.dao.user.OrganisationUserDao;
+import org.apache.openmeetings.db.dao.user.IUserManager;
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.user.UserSearchResult;
-import org.apache.openmeetings.db.entity.basic.ErrorType;
-import org.apache.openmeetings.db.entity.basic.ErrorValue;
+import org.apache.openmeetings.db.dto.basic.ServiceResult;
+import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
+import org.apache.openmeetings.db.dto.room.RoomOptionsDTO;
+import org.apache.openmeetings.db.dto.user.ExternalUserDTO;
+import org.apache.openmeetings.db.dto.user.UserDTO;
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.Organisation_Users;
+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;
-import org.apache.openmeetings.service.user.UserManager;
import org.apache.openmeetings.util.OmException;
import org.apache.openmeetings.webservice.error.ServiceException;
import org.red5.logging.Red5LoggerFactory;
@@ -60,363 +68,131 @@ import org.springframework.beans.factory
* @webservice UserService
*
*/
+@WebService(serviceName="org.apache.openmeetings.webservice.UserWebService")
+@Features(features = "org.apache.cxf.feature.LoggingFeature")
+@Produces({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 UserManager userManagement;
@Autowired
- private ErrorDao errorDao;
+ private ConfigurationDao cfgDao;
@Autowired
- private OrganisationDao orgDao;
- @Autowired
- private OrganisationUserDao orgUserDao;
+ private IUserManager userManagement;
@Autowired
private SOAPLoginDao soapLoginDao;
@Autowired
private UserDao userDao;
@Autowired
- private MainService mainService;
+ 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
- */
- public Sessiondata getSession() {
- log.debug("SPRING LOADED getSession -- ");
- return mainService.getsessiondata();
- }
+ private ConferenceService conferenceService;
/**
- * 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 user - 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
*/
- public Long loginUser(String SID, String username, String userpass) throws ServiceException {
+ @WebMethod
+ @GET
+ @Path("/login")
+ public ServiceResult login(@WebParam(name="user") @QueryParam("user") String user, @WebParam(name="pass") @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(user, pass);
if (u == null) {
- return -1L;
+ return new ServiceResult(-1L, "Login failed", Type.ERROR);
}
- boolean bool = sessiondataDao.updateUser(SID, u.getUser_id(), false, u.getLanguage_id());
- 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.getUser_id();
+ return new ServiceResult(u.getId(), sd.getSessionId(), Type.SUCCESS);
} catch (OmException oe) {
- if (oe.getCode() != null) {
- return oe.getCode();
- }
- } catch (Exception err) {
- log.error("[loginUser]", err);
- }
- return -1L;
- }
-
- /**
- * loads an Error-Object. If a Method returns a negative Result, its an
- * Error-id, it needs a language_id 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
- */
- public ErrorResult getErrorByCode(String SID, long errorid, long langId) {
- try {
- if (errorid < 0) {
- ErrorValue eValues = errorDao.get(-1 * errorid);
- if (eValues != null) {
- ErrorType eType = errorDao.getErrorType(eValues.getErrortype_id());
- log.debug("eValues.getFieldvalues_id() = " + eValues.getFieldvalues_id());
- log.debug("eValues.getErrorType() = " + eType);
- String eValue = labelDao.getString(eValues.getFieldvalues_id(), langId);
- String tValue = labelDao.getString(eType.getFieldvalues_id(), langId);
- if (eValue != null) {
- return new ErrorResult(errorid, eValue, tValue);
- }
- }
- } else {
- return new ErrorResult(errorid, "Error ... please check your input", "Error");
- }
+ return new ServiceResult(oe.getCode() == null ? -1 : oe.getCode(), oe.getMessage(), Type.ERROR);
} catch (Exception err) {
- log.error("[getErrorByCode] ", err);
+ log.error("[login]", err);
+ return new ServiceResult(-1L, err.getMessage(), Type.ERROR);
}
- 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 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 states_id
- * a valid states_id
- * @param town
- * any town
- * @param language_id
- * the language_id
+ * @param user
+ * user object
+ * @param confirm
+ * whatever or not to send email, leave empty for auto-send
*
* @return - id of the user added or error code
* @throws ServiceException
*/
- public Long addNewUser(String SID, String username, String userpass,
- String lastname, String firstname, String email,
- String additionalname, String street, String zip, String fax,
- long states_id, String town, long language_id)
- throws ServiceException {
- try {
- Long users_id = sessiondataDao.checkSession(SID);
-
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
-
- String jName_timeZone = configurationDao.getConfValue("default.timezone", String.class, "");
-
- Long user_id = userManagement.registerUser(username, userpass,
- lastname, firstname, email, new Date(), street,
- additionalname, fax, zip, states_id, town, language_id,
- "", false, true, // generate SIP Data if the config is enabled
- jName_timeZone);
-
- if (user_id == null || user_id < 0) {
- return user_id;
- }
-
- User user = userDao.get(user_id);
-
- // activate the User
- user.getRights().add(Right.Dashboard);
- user.getRights().add(Right.Login);
- user.getRights().add(Right.Room);
- user.setUpdatetime(new Date());
-
- userDao.update(user, users_id);
-
- return user_id;
-
- } 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 states_id
- * a valid states_id
- * @param town
- * any town
- * @param language_id
- * the language_id
- * @param jNameTimeZone
- * the name of the timezone for the user
- *
- * @return - id of the user added or the 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 states_id, String town, long language_id, String jNameTimeZone) throws ServiceException {
- try {
- Long users_id = sessiondataDao.checkSession(SID);
-
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
-
- Long user_id = userManagement.registerUser(username, userpass,
- lastname, firstname, email, new Date(), street,
- additionalname, fax, zip, states_id, town, language_id,
- "", false, true, // generate
- // SIP
- // Data
- // if
- // the
- // config
- // is
- // enabled
- jNameTimeZone);
-
- if (user_id == null || user_id < 0) {
- return user_id;
- }
-
- User user = userDao.get(user_id);
-
- // activate the User
- user.getRights().add(Right.Login);
- user.setUpdatetime(new Date());
-
- userDao.update(user, users_id);
-
- return user_id;
-
- } 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 states_id
- * a valid states_id
- * @param town
- * any town
- * @param language_id
- * the language_id
- * @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 states_id, String town, long language_id,
- String jNameTimeZone, String externalUserId, String externalUserType)
- throws ServiceException {
+ @WebMethod
+ @POST
+ @Path("/")
+ public UserDTO add(
+ @WebParam(name="sid") @QueryParam("sid") String sid
+ , @WebParam(name="user") @QueryParam("user") UserDTO user
+ , @WebParam(name="confirm") @QueryParam("confirm") Boolean confirm
+ ) throws ServiceException
+ {
try {
- Long users_id = sessiondataDao.checkSession(SID);
-
- if (AuthLevelUtil.hasAdminLevel(userDao.getRights(users_id))) {
+ Long authUserId = sessionDao.checkSession(sid);
- User testUser = userDao.getExternalUser(externalUserId, externalUserType);
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
+ 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 user_id = userManagement.registerUserNoEmail(username,
- userpass, lastname, firstname, email, new Date(),
- street, additionalname, fax, zip, states_id, town,
- language_id, "", false, true, // generate SIP Data if the config is enabled
- jNameTimeZone);
+ String jName_timeZone = cfgDao.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, confirm);
- if (user_id == null || user_id < 0) {
- return user_id;
+ if (userId == null || userId < 0) {
+ throw new ServiceException("Unknown error");
}
- User user = userDao.get(user_id);
-
- // activate the User
- user.getRights().add(Right.Login);
- user.setUpdatetime(new Date());
- user.setExternalUserId(externalUserId);
- user.setExternalUserType(externalUserType);
+ User u = userDao.get(userId);
- userDao.update(user, users_id);
+ 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());
+ }
- return user_id;
+ u = userDao.update(u, authUserId);
+ return new UserDTO(u);
} else {
- return new Long(-26);
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
-
} catch (Exception err) {
- log.error("addNewUserWithExternalType", err);
+ log.error("addNewUser", err);
throw new ServiceException(err.getMessage());
}
}
@@ -425,29 +201,28 @@ 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 {
+ @WebMethod
+ @DELETE
+ @Path("/{id}")
+ public ServiceResult delete(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @PathParam("id") long id) throws ServiceException {
try {
- Long users_id = sessiondataDao.checkSession(SID);
+ Long authUserId = sessionDao.checkSession(sid);
- if (AuthLevelUtil.hasAdminLevel(userDao.getRights(users_id))) {
-
- // Setting user deleted
- userDao.deleteUserID(userId);
-
- return userId;
+ if (AuthLevelUtil.hasAdminLevel(userDao.getRights(authUserId))) {
+ userDao.deleteUserID(id);
+ 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());
@@ -458,36 +233,39 @@ public class UserWebService {
*
* Delete a certain user by its external user id
*
- * @param SID
+ * @param sid
* The SID from getSession
- * @param externalUserId
+ * @param externalId
* externalUserId
- * @param externalUserType
+ * @param externalType
* externalUserId
*
* @return - id of user deleted, or error code
* @throws ServiceException
*/
- public Long deleteUserByExternalUserIdAndType(String SID,
- String externalUserId, String externalUserType) throws ServiceException {
+ @DELETE
+ @Path("/{externaltype}/{externalid}")
+ public ServiceResult deleteExternal(
+ @WebParam(name="sid") @QueryParam("sid") String sid
+ , @WebParam(name="externaltype") @PathParam("externaltype") String externalType
+ , @WebParam(name="externalid") @PathParam("externalid") String externalId
+ ) throws ServiceException
+ {
try {
- Long users_id = sessiondataDao.checkSession(SID);
+ Long authUserId = sessionDao.checkSession(sid);
- if (AuthLevelUtil.hasAdminLevel(userDao.getRights(users_id))) {
+ if (AuthLevelUtil.hasAdminLevel(userDao.getRights(authUserId))) {
+ User userExternal = userDao.getExternalUser(externalId, externalType);
- User userExternal = userDao.getExternalUser(externalUserId, externalUserType);
-
- Long userId = userExternal.getUser_id();
+ Long userId = userExternal.getId();
// 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());
@@ -499,45 +277,32 @@ public class UserWebService {
* Session-Object you can use the SID + a RoomId to enter any Room. ...
* Session-Hashs are deleted 15 minutes after the creation if not used.
*
- * @param SID
+ * @param sid
* The SID from getSession
- * @param username
- * any username
- * @param firstname
- * any firstname
- * @param lastname
- * any lastname
- * @param profilePictureUrl
- * any profilePictureUrl
- * @param email
- * any email
- * @param externalUserId
- * if you have any external user Id you may set it here
- * @param externalUserType
- * you can specify your system-name here, for example "moodle"
- * @param room_id
- * the room id the user should be logged in
- * @param becomeModeratorAsInt
- * 0 means no Moderator, 1 means Moderator
- * @param showAudioVideoTestAsInt
- * 0 means don't show Audio/Video Test, 1 means show Audio/Video
- * Test Application before the user is logged into the room
+ * @param user
+ * user details to set
+ * @param options
+ * room options to set
*
* @return - secure hash or error code
* @throws ServiceException
*/
- public String setUserObjectAndGenerateRoomHash(String SID, String username,
- String firstname, String lastname, String profilePictureUrl,
- String email, String externalUserId, String externalUserType,
- Long room_id, int becomeModeratorAsInt, int showAudioVideoTestAsInt)
- throws ServiceException {
+ @WebMethod
+ @POST
+ @Path("/hash")
+ public ServiceResult getRoomHash(
+ @WebParam(name="sid") @QueryParam("sid") String sid
+ , @WebParam(name="user") @QueryParam("user") ExternalUserDTO user
+ , @WebParam(name="options") @QueryParam("options") RoomOptionsDTO options
+ ) throws ServiceException
+ {
try {
- Long users_id = sessiondataDao.checkSession(SID);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
-
+ Long userId = sessionDao.checkSession(sid);
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
RemoteSessionObject remoteSessionObject = new RemoteSessionObject(
- username, firstname, lastname, profilePictureUrl,
- email, externalUserId, externalUserType);
+ user.getLogin(), user.getFirstname(), user.getLastname()
+ , user.getProfilePictureUrl(), user.getEmail()
+ , user.getExternalId(), user.getExternalType());
log.debug(remoteSessionObject.toString());
@@ -545,580 +310,76 @@ public class UserWebService {
log.debug("xmlString " + xmlString);
- sessiondataDao.updateUserRemoteSession(SID, xmlString);
-
- boolean becomeModerator = false;
- if (becomeModeratorAsInt != 0) {
- becomeModerator = true;
- }
-
- boolean showAudioVideoTest = false;
- if (showAudioVideoTestAsInt != 0) {
- showAudioVideoTest = true;
- }
+ sessionDao.updateUserRemoteSession(sid, xmlString);
- String hash = soapLoginDao.addSOAPLogin(SID, room_id,
- becomeModerator, showAudioVideoTest, false, // allowSameURLMultipleTimes
- null, // recording_id
- false, // showNickNameDialogAsInt
+ //TODO LandingZone are not configurable for now
+ String hash = soapLoginDao.addSOAPLogin(sid, options.getRoomId(),
+ options.isModerator(), options.isShowAudioVideoTest(), options.isAllowSameURLMultipleTimes(),
+ options.getRecordingId(),
+ options.isShowNickNameDialog(),
"room", // LandingZone,
- true // allowRecording
+ options.isAllowRecording()
);
if (hash != null) {
- return hash;
+ return new ServiceResult(0, hash, Type.SUCCESS);
}
-
} else {
- return "" + new Long(-26);
+ return new ServiceResult(-26L, "Insufficient permissins", Type.ERROR);
}
} catch (Exception err) {
log.error("setUserObjectWithAndGenerateRoomHash", err);
throw new ServiceException(err.getMessage());
}
- return "" + new Long(-1);
- }
-
- /**
- *
- * Description: sets the SessionObject for a certain SID, after setting this
- * Session-Object you can use the SID + a RoomId to enter any Room.
- *
- * ++ the user can press f5 to reload the page / use the link several times,
- * the SOAP Gateway does remember the IP of the user and the will only the
- * first user that enters the room allow to re-enter. ... Session-Hashs are
- * deleted 15 minutes after the creation if not used.
- *
- * @param SID
- * The SID from getSession
- * @param username
- * any username
- * @param firstname
- * any firstname
- * @param lastname
- * any lastname
- * @param profilePictureUrl
- * any profilePictureUrl
- * @param email
- * any email any email
- * @param externalUserId
- * if you have any external user Id you may set it here
- * @param externalUserType
- * you can specify your system-name here, for example "moodle"
- * @param room_id
- * the room id the user should be logged in
- * @param becomeModeratorAsInt
- * 0 means no Moderator, 1 means Moderator
- * @param showAudioVideoTestAsInt
- * 0 means don't show Audio/Video Test, 1 means show Audio/Video
- * Test Application before the user is logged into the room
- *
- * @return - secure hash or error code
- */
- public String setUserObjectAndGenerateRoomHashByURL(String SID,
- String username, String firstname, String lastname,
- String profilePictureUrl, String email, String externalUserId,
- String externalUserType, Long room_id, int becomeModeratorAsInt,
- int showAudioVideoTestAsInt) throws ServiceException {
-
- log.debug("UserService.setUserObjectAndGenerateRoomHashByURL");
- try {
- Long users_id = sessiondataDao.checkSession(SID);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
-
- RemoteSessionObject remoteSessionObject = new RemoteSessionObject(
- username, firstname, lastname, profilePictureUrl,
- email, externalUserId, externalUserType);
-
- log.debug(remoteSessionObject.toString());
-
- String xmlString = remoteSessionObject.toXml();
-
- log.debug("xmlString " + xmlString);
-
- sessiondataDao.updateUserRemoteSession(SID, xmlString);
-
- boolean becomeModerator = false;
- if (becomeModeratorAsInt != 0) {
- becomeModerator = true;
- }
-
- boolean showAudioVideoTest = false;
- if (showAudioVideoTestAsInt != 0) {
- showAudioVideoTest = true;
- }
-
- String hash = soapLoginDao.addSOAPLogin(SID, room_id,
- becomeModerator, showAudioVideoTest, true, // allowSameURLMultipleTimes
- null, // recording_id
- false, // showNickNameDialogAsInt
- "room", // LandingZone,
- true // allowRecording
- );
-
- if (hash != null) {
- return hash;
- }
-
- } else {
- return "" + new Long(-26);
- }
- } catch (Exception err) {
- log.error("setUserObjectAndGenerateRoomHashByURL", err);
- throw new ServiceException(err.getMessage());
- }
- return "" + new Long(-1);
- }
-
- /**
- *
- * Description: sets the SessionObject for a certain SID, after setting this
- * Session-Object you can use the SID + a RoomId to enter any Room.
- *
- * ++ the user can press f5 to reload the page / use the link several times,
- * the SOAP Gateway does remember the IP of the user and the will only the
- * first user that enters the room allow to re-enter. ... Session-Hashs are
- * deleted 15 minutes after the creation if not used.
- *
- * ++ sets the flag if the user can do recording in the conference room
- *
- * @param SID
- * The SID from getSession
- * @param username
- * any username
- * @param firstname
- * any firstname
- * @param lastname
- * any lastname
- * @param profilePictureUrl
- * any profilePictureUrl
- * @param email
- * any email
- * @param externalUserId
- * if you have any external user Id you may set it here
- * @param externalUserType
- * you can specify your system-name here, for example "moodle"
- * @param room_id
- * the room id the user should be logged in
- * @param becomeModeratorAsInt
- * 0 means no Moderator, 1 means Moderator
- * @param showAudioVideoTestAsInt
- * 0 means don't show Audio/Video Test, 1 means show Audio/Video
- * Test Application before the user is logged into the room
- * @param allowRecording
- * 0 means don't allow Recording, 1 means allow Recording
- *
- * @return - secure hash or error code
- */
- public String setUserObjectAndGenerateRoomHashByURLAndRecFlag(String SID,
- String username, String firstname, String lastname,
- String profilePictureUrl, String email, String externalUserId,
- String externalUserType, Long room_id, int becomeModeratorAsInt,
- int showAudioVideoTestAsInt, int allowRecording) {
- try {
- Long users_id = sessiondataDao.checkSession(SID);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
-
- RemoteSessionObject remoteSessionObject = new RemoteSessionObject(
- username, firstname, lastname, profilePictureUrl,
- email, externalUserId, externalUserType);
-
- log.debug(remoteSessionObject.toString());
-
- String xmlString = remoteSessionObject.toXml();
-
- log.debug("xmlString " + xmlString);
-
- sessiondataDao.updateUserRemoteSession(SID, xmlString);
-
- boolean becomeModerator = false;
- if (becomeModeratorAsInt != 0) {
- becomeModerator = true;
- }
-
- boolean showAudioVideoTest = false;
- if (showAudioVideoTestAsInt != 0) {
- showAudioVideoTest = true;
- }
-
- boolean allowRecordingBool = false;
- if (allowRecording != 0) {
- allowRecordingBool = true;
- }
-
- String hash = soapLoginDao.addSOAPLogin(SID, room_id,
- becomeModerator, showAudioVideoTest, true, // allowSameURLMultipleTimes
- null, // recording_id
- false, // showNickNameDialogAsInt
- "room", // LandingZone,
- allowRecordingBool // allowRecording
- );
-
- if (hash != null) {
- return hash;
- }
-
- } else {
- return "" + new Long(-26);
- }
- } catch (Exception err) {
- log.error("setUserObjectWithAndGenerateRoomHash", err);
- }
- return "" + new Long(-1);
- }
-
- /**
- *
- * Description: sets the SessionObject for a certain SID, after setting this
- * Session-Object you can use the SID and directly login into the dashboard
- *
- * ++ the user can press f5 to reload the page / use the link several times,
- * the SOAP Gateway does remember the IP of the user and the will only the
- * first user that enters the room allow to re-enter. ... Session-Hashs are
- * deleted 15 minutes after the creation if not used.
- *
- * @param SID
- * The SID from getSession
- * @param username
- * any username
- * @param firstname
- * any firstname
- * @param lastname
- * any lastname
- * @param profilePictureUrl
- * any absolute profilePictureUrl
- * @param email
- * any email
- * @param externalUserId
- * if you have any external user Id you may set it here
- * @param externalUserType
- * you can specify your system-name here, for example "moodle"
- *
- * @return - secure hash or error code
- */
- public String setUserObjectMainLandingZone(String SID, String username,
- String firstname, String lastname, String profilePictureUrl,
- String email, String externalUserId, String externalUserType) {
- log.debug("UserService.setUserObjectMainLandingZone");
-
- try {
- Long users_id = sessiondataDao.checkSession(SID);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
-
- RemoteSessionObject remoteSessionObject = new RemoteSessionObject(
- username, firstname, lastname, profilePictureUrl,
- email, externalUserId, externalUserType);
-
- log.debug(remoteSessionObject.toString());
-
- String xmlString = remoteSessionObject.toXml();
-
- log.debug("xmlString " + xmlString);
-
- sessiondataDao.updateUserRemoteSession(SID, xmlString);
-
- String hash = soapLoginDao.addSOAPLogin(SID, null, false, true,
- true, // allowSameURLMultipleTimes
- null, // recording_id
- false, // showNickNameDialogAsInt
- "dashboard", // LandingZone,
- true // allowRecording
- );
-
- if (hash != null) {
- return hash;
- }
-
- } else {
- return "" + -26L;
- }
- } catch (Exception err) {
- log.error("setUserObjectWithAndGenerateRoomHash", err);
- }
- return "" + -1L;
- }
-
- /**
- *
- * Description: sets the SessionObject for a certain SID, after setting this
- * Session-Object you can use the SID + a RoomId to enter any Room.
- *
- * ++ the user can press f5 to reload the page / use the link several times,
- * the SOAP Gateway does remember the IP of the user and the will only the
- * first user that enters the room allow to re-enter. ... Session-Hashs are
- * deleted 15 minutes after the creation if not used.
- *
- * ++ Additionally you can set a param showNickNameDialogAsInt, the effect
- * if that param is 1 is, that the user gets a popup where he can enter his
- * nickname right before he enters the conference room. All nicknames and
- * emails users enter are logged in the conferencelog table.
- *
- * @param SID
- * The SID from getSession
- * @param username
- * any username
- * @param firstname
- * any firstname
- * @param lastname
- * any lastname
- * @param profilePictureUrl
- * any profilePictureUrl
- * @param email
- * any email
- * @param externalUserId
- * if you have any external user Id you may set it here
- * @param externalUserType
- * you can specify your system-name here, for example "moodle"
- * @param room_id
- * the room id the user should be logged in
- * @param becomeModeratorAsInt
- * 0 means no Moderator, 1 means Moderator
- * @param showAudioVideoTestAsInt
- * 0 means don't show Audio/Video Test, 1 means show Audio/Video
- * Test Application before the user is logged into the room
- * @param showNickNameDialogAsInt
- * 0 means do not show the popup to enter a nichname, 1 means
- * that there is a popup to enter the nickname for the conference
- *
- * @return - secure hash, or error code
- */
- public String setUserAndNickName(String SID, String username,
- String firstname, String lastname, String profilePictureUrl,
- String email, String externalUserId, String externalUserType,
- Long room_id, int becomeModeratorAsInt,
- int showAudioVideoTestAsInt, int showNickNameDialogAsInt) {
- try {
- Long users_id = sessiondataDao.checkSession(SID);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
-
- RemoteSessionObject remoteSessionObject = new RemoteSessionObject(
- username, firstname, lastname, profilePictureUrl,
- email, externalUserId, externalUserType);
-
- log.debug(remoteSessionObject.toString());
- log.debug("showNickNameDialogAsInt" + showNickNameDialogAsInt);
-
- String xmlString = remoteSessionObject.toXml();
-
- log.debug("xmlString " + xmlString);
-
- sessiondataDao.updateUserRemoteSession(SID, xmlString);
-
- boolean becomeModerator = false;
- if (becomeModeratorAsInt != 0) {
- becomeModerator = true;
- }
-
- boolean showAudioVideoTest = false;
- if (showAudioVideoTestAsInt != 0) {
- showAudioVideoTest = true;
- }
-
- boolean showNickNameDialog = false;
- if (showNickNameDialogAsInt != 0) {
- showNickNameDialog = true;
- }
-
- String hash = soapLoginDao.addSOAPLogin(SID, room_id,
- becomeModerator, showAudioVideoTest, true, null,
- showNickNameDialog, "room", // LandingZone,
- true // allowRecording
- );
-
- if (hash != null) {
- return hash;
- }
-
- } else {
- return "" + new Long(-26);
- }
- } catch (Exception err) {
- log.error("setUserObjectWithAndGenerateRoomHash", err);
- }
- return "" + new Long(-1);
- }
-
- /**
- * Use this method to access a Recording instead of Room
- *
- * @param SID
- * The SID from getSession
- * @param username
- * any username
- * @param firstname
- * any firstname
- * @param lastname
- * any lastname
- * @param externalUserId
- * if you have any external user Id you may set it here
- * @param externalUserType
- * you can specify your system-name here, for example "moodle"
- * @param recording_id
- * the id of the recording, get a List of all Recordings with
- * RoomService::getFlvRecordingByExternalRoomType
- *
- * @return - hash of the recording, or error id
- */
- public String setUserObjectAndGenerateRecordingHashByURL(String SID,
- String username, String firstname, String lastname,
- String externalUserId, String externalUserType, Long recording_id) {
- try {
- Long users_id = sessiondataDao.checkSession(SID);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
-
- RemoteSessionObject remoteSessionObject = new RemoteSessionObject(
- username, firstname, "", "", "", externalUserId,
- externalUserType);
-
- log.debug(remoteSessionObject.toString());
-
- String xmlString = remoteSessionObject.toXml();
-
- log.debug("xmlString " + xmlString);
-
- sessiondataDao.updateUserRemoteSession(SID, xmlString);
-
- String hash = soapLoginDao.addSOAPLogin(SID, null, false,
- false, true, // allowSameURLMultipleTimes
- recording_id, // recording_id
- false, // showNickNameDialogAsInt
- "room", // LandingZone,
- true // allowRecording
- );
-
- if (hash != null) {
- return hash;
- }
-
- } else {
- return "" + new Long(-26);
- }
- } catch (Exception err) {
- log.error("setUserObjectWithAndGenerateRoomHash", err);
- }
- return "" + new Long(-1);
- }
-
- /**
- *
- * Add a user to a certain organization
- *
- * @param SID
- * The SID from getSession
- * @param user_id
- * the user id
- * @param organisation_id
- * 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 user_id,
- Long organisation_id, Long insertedby) {
- try {
- Long users_id = sessiondataDao.checkSession(SID);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
- if (!orgUserDao.isUserInOrganization(organisation_id, user_id)) {
- User u = userDao.get(user_id);
- u.getOrganisation_users().add(new Organisation_Users(orgDao.get(organisation_id)));
- userDao.update(u, users_id);
- }
- return user_id;
- } 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 organisation_id
- * 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 organisation_id, int start, int max, String orderby,
- boolean asc) {
- try {
- Long users_id = sessiondataDao.checkSession(SID);
- SearchResult<User> result = new SearchResult<User>();
- result.setObjectName(User.class.getName());
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
- result.setRecords(orgUserDao.count(organisation_id));
- result.setResult(new ArrayList<User>());
- for (Organisation_Users ou : orgUserDao.get(organisation_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;
+ return new ServiceResult(-1L, "Unknown error", Type.ERROR);
}
/**
* Kick a user by its public SID
*
- * @param SID
+ * @param sid
* The SID from getSession
* @param publicSID
* the publicSID (you can get it from the call to get users in a
* room)
* @return - <code>true</code> if user was kicked
*/
- public Boolean kickUserByPublicSID(String SID, String publicSID) {
- try {
- Boolean success = false;
-
- success = userManagement.kickUserByPublicSID(SID, publicSID);
-
- if (success == null)
- success = false;
-
- return success;
+ @WebMethod
+ @POST
+ @Path("/kick/{publicsid}")
+ public ServiceResult kick(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="publicsid") @PathParam("publicsid") String publicSID) throws ServiceException {
+ try {
+ Long userId = sessionDao.checkSession(sid);
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ Boolean success = userManagement.kickUserByPublicSID(sid, publicSID);
+
+ return new ServiceResult(Boolean.TRUE.equals(success) ? 1L : 0L, Boolean.TRUE.equals(success) ? "deleted" : "not deleted", Type.SUCCESS);
+ } else {
+ return new ServiceResult(-26L, "Insufficient permissins", Type.ERROR);
+ }
} catch (Exception err) {
- log.error("[kickUser]", err);
+ log.error("[kick]", err);
+ throw new ServiceException(err.getMessage());
}
- return null;
}
-
+
/**
- * add a new organisation
+ * Returns the count of users currently in the Room with given id
+ * No admin rights are necessary for this call
*
- * @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 users_id = sessiondataDao.checkSession(SID);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
- Organisation o = new Organisation();
- o.setName(name);
- return orgDao.update(o, users_id).getOrganisation_id();
+ * @param sid The SID from UserService.getSession
+ * @param roomId id of the room to get users
+ * @return number of users as int
+ */
+ @WebMethod
+ @GET
+ @Path("/count/{roomid}")
+ public int count(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="roomid") @PathParam("roomid") Long roomId) {
+ Long userId = sessionDao.checkSession(sid);
+
+ if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
+ return conferenceService.getRoomClientsListByRoomId(roomId).size();
}
- log.error("Could not create organization");
- return -1L;
+ return -1;
}
-
}
Modified: openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/RestClient.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/RestClient.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/RestClient.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/RestClient.java Fri Nov 6 06:18:44 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;
@@ -201,7 +202,7 @@ public class RestClient {
}
UserWebService client = getUserClient();
- ServiceResult result = client.kickUserByPublicSID(sessionId, publicSID);
+ ServiceResult result = client.kick(sessionId, publicSID);
if (result.getCode() == 0) {
throw new Exception("Could not delete user from slave host");