public void testCollectionFilter() { Session s = openSession(); Transaction t = s.beginTransaction(); Group hb = new Group("hibernate"); User gavin = new User("gavin"); User max = new User("max"); hb.getUsers().put("gavin", gavin); hb.getUsers().put("max", max); gavin.getGroups().put("hibernate", hb); max.getGroups().put("hibernate", hb); s.persist(hb); t.commit(); s.close(); s = openSession(); t = s.beginTransaction(); hb = (Group) s.createCriteria(Group.class) .setFetchMode("users", FetchMode.SELECT) .add(Restrictions.idEq("hibernate")) .uniqueResult(); assertFalse(Hibernate.isInitialized(hb.getUsers())); // gavin = (User) s.createFilter( hb.getUsers(), "where index(this) = 'gavin'" ).uniqueResult(); Long size = (Long) s.createFilter(hb.getUsers(), "select count(*)").uniqueResult(); assertEquals(new Long(2), size); assertFalse(Hibernate.isInitialized(hb.getUsers())); s.delete(hb); t.commit(); s.close(); }
public static void checkUser(User user) { // Check optional fields // NOTE fullName cannot be checked // NOTE isEnabled cannot be checked // NOTE isLocked cannot be checked // NOTE im cannot be checked // NOTE nameInSource cannot be checked // NOTE isAlertEnabled cannot be checked // NOTE alterEmailPrefix cannot be checked // NOTE isExternal cannot be checked // NOTE isDefaultCached cannot be checked // NOTE isGroupRole cannot be checked // NOTE password cannot be checked if (user.getEmailAddress() != null) { checkEmailAddress(user.getEmailAddress()); } if (user.getTelephone() != null) { checkTelephone(user.getTelephone()); } if (user.getAlertEmail() != null) { checkEmailAddress(user.getAlertEmail()); } if (user.getStoredVmQuota() != null) { assertTrue( user.getStoredVmQuota() >= 0, String.format(OBJ_FIELD_GTE_0, "User", "storedVmQuota", user.getStoredVmQuota())); } if (user.getDeployedVmQuota() != null) { assertTrue( user.getDeployedVmQuota() >= 0, String.format(OBJ_FIELD_GTE_0, "User", "deployedVmQuota", user.getDeployedVmQuota())); } if (user.getRole() != null) { checkReferenceType(user.getRole()); } if (user.getGroups() != null) { for (Reference group : user.getGroups()) { checkReferenceType(group); } } // parent type checkEntityType(user); }
@Override public void deleteUser(User user) { Iterator<UserGroup> iterator = user.getGroups().iterator(); while (iterator.hasNext()) { UserGroup group = iterator.next(); group.getMembers().remove(user); userGroupService.updateUserGroup(group); } }
private boolean isAdminUser(User user) { if (user == null) { return false; } for (Group group : user.getGroups()) { if (ADMIN_GROUP.equals(group.getName())) { return true; } } return false; }
public Object getPropertyValue(Object target, String property) throws Exception { User user = (User) target; if ("id".equals(property)) { return new Long(121212); } if ("groups".equals(property)) { return getPropertyIn(user.getGroups(), "name"); } else if ("mngGroups".equals(property)) { return getPropertyIn(user.getMngGroups(), "name"); } else if ("mngUsers".equals(property)) { return getUserNames(user.getMngUsers()); } else { return super.getPropertyValue(target, property); } }
public void testJoinFetchManyToMany() { Session s = openSession(); Transaction t = s.beginTransaction(); Group hb = new Group("hibernate"); User gavin = new User("gavin"); User max = new User("max"); hb.getUsers().put("gavin", gavin); hb.getUsers().put("max", max); gavin.getGroups().put("hibernate", hb); max.getGroups().put("hibernate", hb); s.persist(hb); t.commit(); s.close(); s = openSession(); t = s.beginTransaction(); hb = (Group) s.get(Group.class, "hibernate"); assertTrue(Hibernate.isInitialized(hb.getUsers())); gavin = (User) hb.getUsers().get("gavin"); assertFalse(Hibernate.isInitialized(gavin.getGroups())); max = (User) s.get(User.class, "max"); assertFalse(Hibernate.isInitialized(max.getGroups())); t.commit(); s.close(); s = openSession(); t = s.beginTransaction(); hb = (Group) s.createCriteria(Group.class) .setFetchMode("users", FetchMode.JOIN) .setFetchMode("users.groups", FetchMode.JOIN) .uniqueResult(); assertTrue(Hibernate.isInitialized(hb.getUsers())); gavin = (User) hb.getUsers().get("gavin"); assertTrue(Hibernate.isInitialized(gavin.getGroups())); max = (User) s.get(User.class, "max"); assertTrue(Hibernate.isInitialized(max.getGroups())); t.commit(); s.close(); s = openSession(); t = s.beginTransaction(); s.delete(hb); t.commit(); s.close(); }
/** * Displays a given Research Group page for a HTTP Get, or creates a new Group for a HTTP Post * * <p>- Requires a cookie for the session user - Requires a groupId request parameter for a GET - * Requires a groupName, description, createdByUserId request parameters for a POST * * @param req The HTTP Request * @param res The HTTP Response */ public void researchgroupAction(HttpServletRequest req, HttpServletResponse res) { // Ensure there is a cookie for the session user if (AccountController.redirectIfNoCookie(req, res)) return; Map<String, Object> viewData = new HashMap<String, Object>(); viewData.put("title", "Research Group"); if (req.getMethod() == HttpMethod.Get) { // Load group data into Map GroupManager gm = new GroupManager(); int groupId = Integer.parseInt(req.getParameter("groupId")); Group group = gm.get(groupId); if (group != null) { // Load Group into map viewData.put("group", group); // Load group members into Map List<String> groupMembers = gm.getGroupMembers(groupId); viewData.put("groupMembers", groupMembers); // Load meetings into map MeetingManager meetMan = new MeetingManager(); List<Meeting> groupMeetings = meetMan.getGroupMeetings(groupId); viewData.put("groupMeetings", groupMeetings); // Load Document Data into Map DocumentManager docMan = new DocumentManager(); List<Document> groupDocuments = docMan.getGroupDocuments(groupId); viewData.put("groupDocuments", groupDocuments); // Load discussion threads DiscussionManager dm = new DiscussionManager(); viewData.put("groupDiscussions", dm.getThreads(groupId)); // Check if the user is a member boolean isMember = false; HttpSession session = req.getSession(); Session userSession = (Session) session.getAttribute("userSession"); User user = userSession.getUser(); for (Group g : gm.getAllGroups(user.getId())) { if (g.getId() == group.getId()) { isMember = true; break; } } viewData.put("notMember", !isMember); // View group page. view(req, res, "/views/group/ResearchGroup.jsp", viewData); } else { httpNotFound(req, res); } } else if (req.getMethod() == HttpMethod.Post) { // Create Group // Get data from parameters String groupName = req.getParameter("groupName"); String description = req.getParameter("description"); int adminId = Integer.parseInt(req.getParameter("createdByUserId")); // Create the Group GroupManager groupMan = new GroupManager(); Group group = new Group(); group.setGroupName(groupName); group.setDescription(description); group.setCoordinatorId(adminId); // Create the mapping groupMan.createGroup(group); int groupId = groupMan.getIdFor(group); groupMan.createMapping(groupId, adminId); group.setId(groupId); // Update the User Session to show new group HttpSession session = req.getSession(); Session userSession = (Session) session.getAttribute("userSession"); User admin = userSession.getUser(); admin.getGroups().add(group); // Show the Group Page viewData.put("groupName", group.getGroupName()); List<String> groupMembers = groupMan.getGroupMembers(groupId); viewData.put("groupMembers", groupMembers); view(req, res, "/views/group/ResearchGroup.jsp", viewData); } }
public void addUser(User user) { if (user.getGroups().add(this)) { getUsers().add(user); } }