Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserOrganisation.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserOrganisation.java?rev=1601073&r1=1601072&r2=1601073&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserOrganisation.java (original) +++ openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserOrganisation.java Sat Jun 7 07:45:55 2014 @@ -23,24 +23,30 @@ import static org.junit.Assert.assertTru import static org.junit.Assert.fail; import java.util.List; +import java.util.Random; -import org.apache.openmeetings.core.data.user.OrganisationManager; -import org.apache.openmeetings.db.dao.user.AdminUserDao; +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.entity.user.Organisation; import org.apache.openmeetings.db.entity.user.Organisation_Users; import org.apache.openmeetings.db.entity.user.User; import org.apache.openmeetings.test.AbstractJUnitDefaults; +import org.apache.openmeetings.test.selenium.HeavyTests; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; public class TestUserOrganisation extends AbstractJUnitDefaults { @Autowired - private OrganisationManager orgManagement; + private OrganisationUserDao orgUserDao; @Autowired - private AdminUserDao usersDao; + private OrganisationDao orgDao; + @Autowired + private UserDao usersDao; + public static final String ORG_NAME = "Test Org"; private User getValidUser() { - for (User u : usersDao.getAllUsers()) { + for (User u : usersDao.getAllBackupUsers()) { if (!u.getDeleted() && u.getOrganisation_users().size() > 0) { return u; } @@ -53,29 +59,41 @@ public class TestUserOrganisation extend public void getUsersByOrganisationId() { User u = getValidUser(); Long orgId = u.getOrganisation_users().get(0).getOrganisation().getOrganisation_id(); - List<User> ul = orgManagement.getUsersByOrganisationId(orgId, 0, 9999, "login", true); + List<Organisation_Users> ul = orgUserDao.get(orgId, 0, 9999); assertTrue("Default Organisation should contain at least 1 user: " + ul.size(), ul.size() > 0); - Organisation_Users ou = orgManagement.getOrganisation_UserByUserAndOrganisation(u.getUser_id(), orgId); + Organisation_Users ou = orgUserDao.getByOrganizationAndUser(orgId, u.getUser_id()); assertNotNull("Unable to found [organisation, user] pair - [" + orgId + "," + u.getUser_id() + "]", ou); } @Test public void addOrganisation() { - Long orgId = orgManagement.addOrganisation("Test Org", 1); //inserted by not checked + Organisation o = new Organisation(); + o.setName(ORG_NAME); + Long orgId = orgDao.update(o, null).getOrganisation_id(); //inserted by not checked assertNotNull("New Organisation have valid id", orgId); - List<User> ul = orgManagement.getUsersByOrganisationId(orgId, 0, 9999, "login", true); + List<Organisation_Users> ul = orgUserDao.get(orgId, 0, 9999); assertTrue("New Organisation should contain NO users: " + ul.size(), ul.size() == 0); - - boolean found = false; - List<Organisation> restL = orgManagement.getRestOrganisationsByUserId(3, 1, 0, 9999, "name", true); - for (Organisation o : restL) { - if (orgId.equals(o.getOrganisation_id())) { - found = true; - break; - } + } + + @Test + @HeavyTests + public void add10kUsers() throws Exception { + List<Organisation> orgs = orgDao.get(ORG_NAME, 0, 1, null); + Organisation o = null; + if (orgs == null || orgs.isEmpty()) { + o = new Organisation(); + o.setName(ORG_NAME); + o = orgDao.update(o, null); + } else { + o = orgs.get(0); + } + Random rnd = new Random(); + for (int i = 0; i < 10000; ++i) { + User u = createUser(rnd.nextInt()); + u.getOrganisation_users().add(new Organisation_Users(o)); + usersDao.update(u, null); } - assertTrue("New organisation should not be included into organisation list of any user", found); } }
Modified: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java?rev=1601073&r1=1601072&r2=1601073&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java (original) +++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java Sat Jun 7 07:45:55 2014 @@ -39,7 +39,7 @@ import org.apache.openmeetings.db.dao.ca import org.apache.openmeetings.db.dao.room.RoomDao; import org.apache.openmeetings.db.dao.room.RoomTypeDao; import org.apache.openmeetings.db.dao.server.SessiondataDao; -import org.apache.openmeetings.db.dao.user.AdminUserDao; +import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.dao.user.IUserManager; import org.apache.openmeetings.db.entity.calendar.Appointment; import org.apache.openmeetings.db.entity.calendar.AppointmentCategory; @@ -76,7 +76,7 @@ public class CalendarWebService { @Autowired private IUserManager userManager; @Autowired - private AdminUserDao userDao; + private UserDao userDao; @Autowired private RoomManager roomManager; @Autowired Modified: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/JabberWebService.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/JabberWebService.java?rev=1601073&r1=1601072&r2=1601073&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/JabberWebService.java (original) +++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/JabberWebService.java Sat Jun 7 07:45:55 2014 @@ -34,7 +34,7 @@ import org.apache.openmeetings.db.dao.ba import org.apache.openmeetings.db.dao.room.IInvitationManager; import org.apache.openmeetings.db.dao.room.RoomDao; import org.apache.openmeetings.db.dao.server.SessiondataDao; -import org.apache.openmeetings.db.dao.user.AdminUserDao; +import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.dao.user.IUserManager; import org.apache.openmeetings.db.dto.room.RoomDTO; import org.apache.openmeetings.db.entity.room.Invitation; @@ -66,7 +66,7 @@ public class JabberWebService { @Autowired private IUserManager userManager; @Autowired - private AdminUserDao userDao; + private UserDao userDao; @Autowired private SessiondataDao sessiondataDao; @Autowired Modified: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java?rev=1601073&r1=1601072&r2=1601073&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java (original) +++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java Sat Jun 7 07:45:55 2014 @@ -48,7 +48,7 @@ import org.apache.openmeetings.db.dao.ro import org.apache.openmeetings.db.dao.room.RoomDao; import org.apache.openmeetings.db.dao.server.ISessionManager; import org.apache.openmeetings.db.dao.server.SessiondataDao; -import org.apache.openmeetings.db.dao.user.AdminUserDao; +import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.dao.user.IUserManager; import org.apache.openmeetings.db.dto.file.RecordingObject; import org.apache.openmeetings.db.dto.room.RoomSearchResult; @@ -102,7 +102,7 @@ public class RoomWebService { @Autowired private IUserManager userManager; @Autowired - private AdminUserDao userDao; + private UserDao userDao; @Autowired private RoomManager roomManager; @Autowired 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=1601073&r1=1601072&r2=1601073&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 Sat Jun 7 07:45:55 2014 @@ -20,6 +20,7 @@ package org.apache.openmeetings.webservi import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey; +import java.util.ArrayList; import java.util.Date; import javax.jws.WebService; @@ -30,21 +31,25 @@ import javax.ws.rs.core.MediaType; import org.apache.cxf.feature.Features; import org.apache.openmeetings.core.data.basic.FieldManager; -import org.apache.openmeetings.core.data.user.OrganisationManager; import org.apache.openmeetings.core.remote.MainService; import org.apache.openmeetings.db.dao.basic.ConfigurationDao; import org.apache.openmeetings.db.dao.basic.ErrorDao; import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao; import org.apache.openmeetings.db.dao.server.SOAPLoginDao; import org.apache.openmeetings.db.dao.server.SessiondataDao; -import org.apache.openmeetings.db.dao.user.AdminUserDao; +import org.apache.openmeetings.db.dao.user.UserDao; 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.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.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.User; import org.apache.openmeetings.util.AuthLevelUtil; import org.apache.openmeetings.webservice.dto.ServiceException; @@ -79,11 +84,13 @@ public class UserWebService { @Autowired private ErrorDao errorDao; @Autowired - private OrganisationManager organisationManager; + private OrganisationDao orgDao; + @Autowired + private OrganisationUserDao orgUserDao; @Autowired private SOAPLoginDao soapLoginDao; @Autowired - private AdminUserDao usersDao; + private UserDao usersDao; @Autowired private MainService mainService; @Autowired @@ -1033,10 +1040,12 @@ public class UserWebService { Long users_id = sessiondataDao.checkSession(SID); Long user_level = userManagement.getUserLevelByID(users_id); if (AuthLevelUtil.checkWebServiceLevel(user_level)) { - - return organisationManager.addUserToOrganisation(user_id, - organisation_id, users_id); - + if (!orgUserDao.isUserInOrganization(organisation_id, user_id)) { + User u = usersDao.get(user_id); + u.getOrganisation_users().add(new Organisation_Users(orgDao.get(organisation_id))); + usersDao.update(u, users_id); + } + return user_id; } else { return new Long(-26); } @@ -1063,22 +1072,25 @@ public class UserWebService { * asc or desc * @return - users found */ - public SearchResult<User> getUsersByOrganisation(String SID, + public UserSearchResult getUsersByOrganisation(String SID, long organisation_id, int start, int max, String orderby, boolean asc) { try { Long users_id = sessiondataDao.checkSession(SID); Long user_level = userManagement.getUserLevelByID(users_id); + SearchResult<User> result = new SearchResult<User>(); + result.setObjectName(User.class.getName()); if (AuthLevelUtil.checkWebServiceLevel(user_level)) { - return organisationManager - .getUsersSearchResultByOrganisationId(organisation_id, - start, max, orderby, asc); + 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"); - SearchResult<User> sResult = new SearchResult<User>(); - sResult.setErrorId(-26L); - return sResult; + result.setErrorId(-26L); } + return new UserSearchResult(result); } catch (Exception err) { log.error("getUsersByOrganisation", err); } @@ -1125,7 +1137,9 @@ public class UserWebService { Long users_id = sessiondataDao.checkSession(SID); Long user_level = userManagement.getUserLevelByID(users_id); if (AuthLevelUtil.checkWebServiceLevel(user_level)) { - return organisationManager.addOrganisation(name, users_id); + Organisation o = new Organisation(); + o.setName(name); + return orgDao.update(o, users_id).getOrganisation_id(); } log.error("Could not create organization"); return -1L;
