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 2016/04/02 11:03:49 UTC
svn commit: r1737477 - in /openmeetings/application:
branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/
branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/
branches/3.1.x/openmeetings-...
Author: solomax
Date: Sat Apr 2 09:03:49 2016
New Revision: 1737477
URL: http://svn.apache.org/viewvc?rev=1737477&view=rev
Log:
[OPENMEETINGS-16] missing methods are added
Modified:
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java
Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java?rev=1737477&r1=1737476&r2=1737477&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java Sat Apr 2 09:03:49 2016
@@ -19,6 +19,8 @@
package org.apache.openmeetings.db.dto.user;
import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Set;
import javax.xml.bind.annotation.XmlRootElement;
@@ -75,6 +77,16 @@ public class UserDTO implements Serializ
return u;
}
+ public static List<UserDTO> list(List<User> l) {
+ List<UserDTO> uList = new ArrayList<>();
+ if (l != null) {
+ for (User u : l) {
+ uList.add(new UserDTO(u));
+ }
+ }
+ return uList;
+ }
+
public Long getId() {
return id;
}
Modified: openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java?rev=1737477&r1=1737476&r2=1737477&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java Sat Apr 2 09:03:49 2016
@@ -22,9 +22,13 @@ import static org.apache.openmeetings.ut
import static org.apache.openmeetings.webservice.Constants.TNS;
import java.util.ArrayList;
+import java.util.Iterator;
+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;
@@ -86,8 +90,8 @@ public class GroupWebService {
* @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
+ * the name of the group
+ * @return the new id of the group or -1 in case an error happened
* @throws ServiceException
*/
@POST
@@ -105,8 +109,28 @@ public class GroupWebService {
}
/**
+ * Get the list of all groups
*
- * Add a user to a certain group
+ * @param sid
+ * The SID from getSession
+ * @return list of all groups
+ * @throws ServiceException
+ */
+ @GET
+ @Path("/")
+ public List<Group> get(@QueryParam("sid") @WebParam(name="sid") String sid) throws ServiceException {
+ Long userId = sessionDao.checkSession(sid);
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ return groupDao.get(0, Integer.MAX_VALUE);
+ } else {
+ log.error("Insufficient permissions");
+ throw new ServiceException("Insufficient permissions"); //TODO code -26
+ }
+ }
+
+ /**
+ *
+ * Add user to a certain group
*
* @param sid
* The SID from getSession
@@ -117,7 +141,7 @@ public class GroupWebService {
* @return - id of the user added, or error id in case of the error
*/
@POST
- @Path("/{id}/users/add/{userid}")
+ @Path("/{id}/users/{userid}")
public ServiceResult addUser(
@QueryParam("sid") @WebParam(name="sid") String sid
, @PathParam("id") @WebParam(name="id") Long id
@@ -143,6 +167,49 @@ public class GroupWebService {
}
/**
+ *
+ * Remove user from a certain group
+ *
+ * @param sid
+ * The SID from getSession
+ * @param userid
+ * the user id
+ * @param id
+ * the group id
+ * @return - id of the user added, or error id in case of the error
+ */
+ @DELETE
+ @Path("/{id}/users/{userid}")
+ public ServiceResult removeUser(
+ @QueryParam("sid") @WebParam(name="sid") String sid
+ , @PathParam("id") @WebParam(name="id") Long id
+ , @PathParam("userid") @WebParam(name="userid") Long userid
+ ) throws ServiceException
+ {
+ try {
+ Long authUserId = sessionDao.checkSession(sid);
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
+ if (groupUserDao.isUserInGroup(id, userid)) {
+ User u = userDao.get(userid);
+ for (Iterator<GroupUser> iter = u.getGroupUsers().iterator(); iter.hasNext(); ) {
+ GroupUser gu = iter.next();
+ if (id.equals(gu.getGroup().getId())) {
+ iter.remove();
+ }
+ }
+ userDao.update(u, authUserId);
+ }
+ return new ServiceResult(userid, "Success", Type.SUCCESS);
+ } else {
+ return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+ }
+ } catch (Exception err) {
+ log.error("addUser", err);
+ throw new ServiceException(err.getMessage());
+ }
+ }
+
+ /**
* Adds a room to an group
*
* @param sid - The SID of the User. This SID must be marked as Loggedin
@@ -237,4 +304,34 @@ public class GroupWebService {
throw new ServiceException(err.getMessage());
}
}
+
+ /**
+ * Deletes a group
+ *
+ * @param sid
+ * The SID of the User. This SID must be marked as Loggedin
+ * @param id
+ * the id of the group
+ *
+ * @throws {@link ServiceException} in case of any error
+ */
+ @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 authUserId = sessionDao.checkSession(sid);
+
+ if (AuthLevelUtil.hasAdminLevel(userDao.getRights(authUserId))) {
+ groupDao.delete(groupDao.get(id), authUserId);
+
+ return new ServiceResult(id, "Deleted", Type.SUCCESS);
+ } else {
+ return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+ }
+ } catch (Exception err) {
+ log.error("deleteUserById", err);
+ throw new ServiceException(err.getMessage());
+ }
+ }
}
Modified: openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1737477&r1=1737476&r2=1737477&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java Sat Apr 2 09:03:49 2016
@@ -24,6 +24,7 @@ import static org.apache.openmeetings.we
import static org.apache.openmeetings.webservice.Constants.USER_SERVICE_PORT_NAME;
import java.util.Date;
+import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
@@ -122,6 +123,28 @@ public class UserWebService implements U
}
}
+ /* (non-Javadoc)
+ * @see org.apache.openmeetings.webservice.cluster.UserService#get(java.lang.String)
+ */
+ @Override
+ @WebMethod
+ @GET
+ @Path("/")
+ public List<UserDTO> get(@WebParam(name="sid") @QueryParam("sid") String sid) throws ServiceException {
+ try {
+ Long authUserId = sessionDao.checkSession(sid);
+
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
+ return UserDTO.list(userDao.getAllUsers());
+ } else {
+ throw new ServiceException("Insufficient permissions"); //TODO code -26
+ }
+ } catch (Exception err) {
+ log.error("addNewUser", err);
+ throw new ServiceException(err.getMessage());
+ }
+ }
+
/* (non-Javadoc)
* @see org.apache.openmeetings.webservice.cluster.UserService#add(java.lang.String, org.apache.openmeetings.db.dto.user.UserDTO, java.lang.Boolean)
*/
Modified: openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java?rev=1737477&r1=1737476&r2=1737477&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java Sat Apr 2 09:03:49 2016
@@ -22,6 +22,8 @@ import static org.apache.openmeetings.we
import static org.apache.openmeetings.webservice.Constants.USER_SERVICE_NAME;
import static org.apache.openmeetings.webservice.Constants.USER_SERVICE_PORT_NAME;
+import java.util.List;
+
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.ws.rs.FormParam;
@@ -49,6 +51,17 @@ public interface UserService {
ServiceResult login(@WebParam(name="user") @QueryParam("user") String user, @WebParam(name="pass") @QueryParam("pass") String pass);
/**
+ * Lists all users in the system!
+ *
+ * @param sid
+ * The SID from getSession
+ *
+ * @return - list of users
+ * @throws ServiceException
+ */
+ List<UserDTO> get(@WebParam(name="sid") @QueryParam("sid") String sid) throws ServiceException;
+
+ /**
* 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!
*
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java?rev=1737477&r1=1737476&r2=1737477&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java Sat Apr 2 09:03:49 2016
@@ -19,6 +19,8 @@
package org.apache.openmeetings.db.dto.user;
import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Set;
import javax.xml.bind.annotation.XmlRootElement;
@@ -75,6 +77,16 @@ public class UserDTO implements Serializ
return u;
}
+ public static List<UserDTO> list(List<User> l) {
+ List<UserDTO> uList = new ArrayList<>();
+ if (l != null) {
+ for (User u : l) {
+ uList.add(new UserDTO(u));
+ }
+ }
+ return uList;
+ }
+
public Long getId() {
return id;
}
Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java?rev=1737477&r1=1737476&r2=1737477&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java Sat Apr 2 09:03:49 2016
@@ -22,9 +22,13 @@ import static org.apache.openmeetings.ut
import static org.apache.openmeetings.webservice.Constants.TNS;
import java.util.ArrayList;
+import java.util.Iterator;
+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;
@@ -86,8 +90,8 @@ public class GroupWebService {
* @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
+ * the name of the group
+ * @return the new id of the group or -1 in case an error happened
* @throws ServiceException
*/
@POST
@@ -105,8 +109,28 @@ public class GroupWebService {
}
/**
+ * Get the list of all groups
*
- * Add a user to a certain group
+ * @param sid
+ * The SID from getSession
+ * @return list of all groups
+ * @throws ServiceException
+ */
+ @GET
+ @Path("/")
+ public List<Group> get(@QueryParam("sid") @WebParam(name="sid") String sid) throws ServiceException {
+ Long userId = sessionDao.checkSession(sid);
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ return groupDao.get(0, Integer.MAX_VALUE);
+ } else {
+ log.error("Insufficient permissions");
+ throw new ServiceException("Insufficient permissions"); //TODO code -26
+ }
+ }
+
+ /**
+ *
+ * Add user to a certain group
*
* @param sid
* The SID from getSession
@@ -117,7 +141,7 @@ public class GroupWebService {
* @return - id of the user added, or error id in case of the error
*/
@POST
- @Path("/{id}/users/add/{userid}")
+ @Path("/{id}/users/{userid}")
public ServiceResult addUser(
@QueryParam("sid") @WebParam(name="sid") String sid
, @PathParam("id") @WebParam(name="id") Long id
@@ -143,6 +167,49 @@ public class GroupWebService {
}
/**
+ *
+ * Remove user from a certain group
+ *
+ * @param sid
+ * The SID from getSession
+ * @param userid
+ * the user id
+ * @param id
+ * the group id
+ * @return - id of the user added, or error id in case of the error
+ */
+ @DELETE
+ @Path("/{id}/users/{userid}")
+ public ServiceResult removeUser(
+ @QueryParam("sid") @WebParam(name="sid") String sid
+ , @PathParam("id") @WebParam(name="id") Long id
+ , @PathParam("userid") @WebParam(name="userid") Long userid
+ ) throws ServiceException
+ {
+ try {
+ Long authUserId = sessionDao.checkSession(sid);
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
+ if (groupUserDao.isUserInGroup(id, userid)) {
+ User u = userDao.get(userid);
+ for (Iterator<GroupUser> iter = u.getGroupUsers().iterator(); iter.hasNext(); ) {
+ GroupUser gu = iter.next();
+ if (id.equals(gu.getGroup().getId())) {
+ iter.remove();
+ }
+ }
+ userDao.update(u, authUserId);
+ }
+ return new ServiceResult(userid, "Success", Type.SUCCESS);
+ } else {
+ return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+ }
+ } catch (Exception err) {
+ log.error("addUser", err);
+ throw new ServiceException(err.getMessage());
+ }
+ }
+
+ /**
* Adds a room to an group
*
* @param sid - The SID of the User. This SID must be marked as Loggedin
@@ -237,4 +304,34 @@ public class GroupWebService {
throw new ServiceException(err.getMessage());
}
}
+
+ /**
+ * Deletes a group
+ *
+ * @param sid
+ * The SID of the User. This SID must be marked as Loggedin
+ * @param id
+ * the id of the group
+ *
+ * @throws {@link ServiceException} in case of any error
+ */
+ @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 authUserId = sessionDao.checkSession(sid);
+
+ if (AuthLevelUtil.hasAdminLevel(userDao.getRights(authUserId))) {
+ groupDao.delete(groupDao.get(id), authUserId);
+
+ return new ServiceResult(id, "Deleted", Type.SUCCESS);
+ } else {
+ return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+ }
+ } catch (Exception err) {
+ log.error("deleteUserById", err);
+ throw new ServiceException(err.getMessage());
+ }
+ }
}
Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1737477&r1=1737476&r2=1737477&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java Sat Apr 2 09:03:49 2016
@@ -24,6 +24,7 @@ import static org.apache.openmeetings.we
import static org.apache.openmeetings.webservice.Constants.USER_SERVICE_PORT_NAME;
import java.util.Date;
+import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
@@ -122,6 +123,28 @@ public class UserWebService implements U
}
}
+ /* (non-Javadoc)
+ * @see org.apache.openmeetings.webservice.cluster.UserService#get(java.lang.String)
+ */
+ @Override
+ @WebMethod
+ @GET
+ @Path("/")
+ public List<UserDTO> get(@WebParam(name="sid") @QueryParam("sid") String sid) throws ServiceException {
+ try {
+ Long authUserId = sessionDao.checkSession(sid);
+
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
+ return UserDTO.list(userDao.getAllUsers());
+ } else {
+ throw new ServiceException("Insufficient permissions"); //TODO code -26
+ }
+ } catch (Exception err) {
+ log.error("addNewUser", err);
+ throw new ServiceException(err.getMessage());
+ }
+ }
+
/* (non-Javadoc)
* @see org.apache.openmeetings.webservice.cluster.UserService#add(java.lang.String, org.apache.openmeetings.db.dto.user.UserDTO, java.lang.Boolean)
*/
Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java?rev=1737477&r1=1737476&r2=1737477&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java Sat Apr 2 09:03:49 2016
@@ -22,6 +22,8 @@ import static org.apache.openmeetings.we
import static org.apache.openmeetings.webservice.Constants.USER_SERVICE_NAME;
import static org.apache.openmeetings.webservice.Constants.USER_SERVICE_PORT_NAME;
+import java.util.List;
+
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.ws.rs.FormParam;
@@ -49,6 +51,17 @@ public interface UserService {
ServiceResult login(@WebParam(name="user") @QueryParam("user") String user, @WebParam(name="pass") @QueryParam("pass") String pass);
/**
+ * Lists all users in the system!
+ *
+ * @param sid
+ * The SID from getSession
+ *
+ * @return - list of users
+ * @throws ServiceException
+ */
+ List<UserDTO> get(@WebParam(name="sid") @QueryParam("sid") String sid) throws ServiceException;
+
+ /**
* 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!
*