Esempio n. 1
0
  @Test
  public void testCreateGroupFromCommittee() throws Exception {
    String id = groupService.create(group);
    groupService.addAggregation(committee, group);

    Group fromDb = groupService.findById(id);
    assertEquals(group.getGroupName(), fromDb.getGroupName());
    Aggregation aggregation = fromDb.getAggregations().iterator().next();
    assertNotNull(aggregation);
    assertEquals(
        committee.getAggregationMembers().size(), aggregation.getAggregationMembers().size());
  }
  // new version without group ds combunation
  private void printUserGroupList(PrintWriter out, User user) {
    Group group = null;
    String label = null;
    String groupName = null;
    String groupType = null;
    String userName = user.getUserName();
    if (user.getGroupList().size() == 0) {

      out.println("<p>No group is selected.</p>");
    } else {
      out.println("<table >");
      out.println("<tr><th> group name </th>");
      out.println("<th> group structure</th>");
      out.println("<th> user choice</th>");
      out.println("<th> admin decision</th>");
      out.println("<th> admin decision</th></tr>");
      for (int i = 0; i < user.getGroupList().size(); i++) {

        group = (Group) (user.getGroupList().get(i));
        groupName = group.getGroupName();
        groupType = group.getGroupType();

        if (groupType.equals("5")) {
          label = " user wants to add this group ";
        } else if (groupType.equals("0")) {
          label = " user wants to delete this group ";
        }
        out.println("<tr><td>" + groupName + "</td>");
        this.printGroupStructureLink(out, group.getGroupName());
        out.println("<td>" + label + " </td>");

        out.println("<FORM ACTION=/gsn/MyUpdateUserGroupServlet METHOD=POST>");
        out.println("<INPUT  TYPE=HIDDEN NAME=groupname VALUE=" + groupName + ">");
        out.println("<INPUT  TYPE=HIDDEN NAME=grouptype VALUE=" + groupType + ">");
        out.println("<INPUT TYPE=HIDDEN NAME=username VALUE= " + userName + ">");
        out.println("<INPUT TYPE=HIDDEN NAME=update VALUE= yes>");
        out.println(
            "<td><INPUT TYPE=SUBMIT class=creategroupbuttonstyle VALUE=\"agree to update\"></td>");
        out.println("</FORM>");

        out.println("<FORM ACTION=/gsn/MyUpdateUserGroupServlet METHOD=POST>");
        out.println("<INPUT  TYPE=HIDDEN NAME=groupname VALUE=" + groupName + ">");
        out.println("<INPUT  TYPE=HIDDEN NAME=grouptype VALUE=" + groupType + ">");
        out.println("<INPUT TYPE=HIDDEN NAME=username VALUE= " + userName + ">");
        out.println("<INPUT TYPE=HIDDEN NAME=update VALUE= no>");
        out.println(
            "<td><INPUT TYPE=SUBMIT class=creategroupbuttonstyle VALUE=\"refuse to update\"></td></tr>");
        out.println("</FORM>");
      }
      out.println("</table>");
    }
  }
  private void printGroupDataSourceList(PrintWriter out, Group group) {
    DataSource ds = null;
    String dsname = null;
    String dstype = null;
    String label = null;
    out.println("<table >");
    out.println(" <caption>" + group.getGroupName() + " combination</caption>");
    out.println("<tr><th> virtual sensor name </th>");
    out.println("<th> access right</th></tr>");

    for (int j = 0; j < group.getDataSourceList().size(); j++) {
      ds = (DataSource) group.getDataSourceList().get(j);
      dsname = ds.getDataSourceName();
      dstype = ds.getDataSourceType();

      if (dstype.charAt(0) == '1') {
        label = "read";
      } else if (dstype.charAt(0) == '2') {
        label = "write";
      } else if (dstype.charAt(0) == '3') {
        label = "read/write";
      }
      out.println("<tr><td>" + dsname + "</td>");
      out.println("<td>" + label + "</td></tr>");
    }
    out.println("</table>");
  }
Esempio n. 4
0
 public void withRealmGroupTest() {
   Group g = new Group(1L, "g1", "group description", true, "ldap", "dn=o");
   assertEquals(g.getGroupId(), 1L);
   assertEquals(g.getGroupName(), "g1");
   assertEquals(g.getDescription(), "group description");
   assertTrue(g.isNewUserDefault());
   assertEquals(g.getRealm(), "ldap");
   assertEquals(g.getRealmAttributes(), "dn=o");
 }
Esempio n. 5
0
 public void simpleGroupTest() {
   Group g = new Group(1L, "g1", null, false, null, null);
   assertEquals(g.getGroupId(), 1L);
   assertEquals(g.getGroupName(), "g1");
   assertNull(g.getDescription());
   assertFalse(g.isNewUserDefault());
   assertNull(g.getRealm());
   assertNull(g.getRealmAttributes());
 }
 public void newGroup(Group group) {
   new networkPostTask(
           new NetworkTaskListener() {
             @Override
             public void onTaskComplete(boolean taskSuccess) {}
           })
       .execute(
           GROUPCREATE, group.getCreator() + "", group.getGroupName(), group.getGroupPassword());
 }
Esempio n. 7
0
  @Test
  public void testAddAggregation() throws Exception {
    groupService.create(group);
    groupService.addAggregation(committee, group);

    Group fromDb = groupService.findById(group.getId());
    assertEquals(1, fromDb.getAggregations().size());
    Aggregation aggregation = fromDb.getAggregations().iterator().next();
    assertEquals(group.getGroupName(), aggregation.getGroups().iterator().next().getGroupName());
  }
  /**
   * tm_usergroup에 그룹을 인서트한다.
   *
   * @param group
   * @return
   * @throws DataAccessException
   */
  public int insertGroup(Group group) throws DataAccessException {

    String sql =
        QueryUtil.getStringQuery(
            "admin_sql", "admin.usergroup.insertgroup"); // 쿼리 프로퍼티파일의 키값에 해당되는 sql문을 읽어온다.
    // 넘겨받은 파라미터를 세팅한다.

    Map<String, Object> param = new HashMap<String, Object>();
    param.put("groupID", group.getGroupID());
    param.put("groupName", group.getGroupName());
    param.put("description", group.getDescription());

    return getSimpleJdbcTemplate().update(sql, param);
  }
Esempio n. 9
0
  @Test
  public void testCreateGroupFromMultipleAggregations() throws Exception {
    String id = groupService.create(group);
    groupService.addAggregation(committee, group);
    group = groupService.findById(group.getId());
    groupService.addAggregation(organization, group);
    group = groupService.findById(group.getId());
    groupService.addAggregation(event, group);
    group = groupService.findById(group.getId());
    contactService.addToGroup(topLevel, group);

    Group fromDb = groupService.findById(id);
    assertEquals(group.getGroupName(), fromDb.getGroupName());
    assertEquals(3, group.getAggregations().size());
    Set<Contact> allAggregationMembers = new HashSet<>();
    for (Aggregation aggregation : group.getAggregations()) {
      for (Contact c : aggregation.getAggregationMembers()) {
        allAggregationMembers.add(c);
      }
    }
    assertEquals(2, allAggregationMembers.size());
    assertEquals(1, group.getTopLevelMembers().size());
  }
 private static void fillInSubject(PolicyRule rule) throws Throwable {
   if (rule instanceof UserPolicyRule) {
     User user = ((UserPolicyRule<User>) rule).getSubject();
     User filledInUser = tbclient.getUserByUsername(USER_SERVICE_ROOT, user.getUserName());
     if (filledInUser == null) {
       throw new RuntimeException("Could not find real user for: " + user.getUserName());
     }
     rule.setSubject(filledInUser);
   } else if (rule instanceof GroupPolicyRule) {
     Group group = ((GroupPolicyRule<? extends Group>) rule).getSubject();
     Project filledInProject = getProjectByGroupName(group.getGroupName());
     if (filledInProject != null) {
       rule.setSubject(filledInProject);
     } else {
       Organisation filledInOrg = getOrganisationByGroupName(group.getGroupName());
       if (filledInOrg != null) {
         rule.setSubject(filledInOrg);
       } else {
         throw new RuntimeException(
             "Could not find project or organisation for group name: " + group.getGroupName());
       }
     }
   }
 }
Esempio n. 11
0
  private void printRemainingGroupsList(PrintWriter out, User user, ConnectToDB ctdb)
      throws SQLException {
    Vector remainingGroupList =
        ctdb.getGroupListsDifference(ctdb.getGroupList(), user.getGroupList());
    Group group = null;
    String groupName = null;
    String userName = user.getUserName();
    if (remainingGroupList.size() == 0) {
      out.println("<table class =transparenttable>");
      out.println("<tr><td><FONT COLOR=#000000>No group is available.</td></tr>");
      out.println("</table>");
    } else {
      out.println("<table>");
      out.println("<tr>");
      out.println("<th>group name</th>");
      out.println("<th>group structure</th>");
      out.println("<th>updates</th>");
      out.println("</tr>");

      for (int i = 0; i < remainingGroupList.size(); i++) {
        group = (Group) (remainingGroupList.get(i));
        groupName = group.getGroupName();
        out.println("<tr>");
        out.println("<td>" + groupName + "</td>");
        this.printGroupStructureLink(out, groupName);
        if (ctdb.valueExistsForThisColumnUnderTwoConditions(
                new Column("ISUSERWAITING", "yes"),
                new Column("GROUPNAME", groupName),
                new Column("USERNAME", userName),
                "ACUSER_ACGROUP")
            == false) {
          out.println("<FORM ACTION=/gsn/MyUpdateUserWaitingForGroupServlet METHOD=POST>");
          out.println("<INPUT  TYPE=HIDDEN NAME=groupname VALUE=" + groupName + ">");
          out.println("<INPUT  TYPE=HIDDEN NAME=addgroup VALUE=Yes>");
          out.println(
              "<td style=text-align:center><INPUT TYPE=SUBMIT class= buttonstyle VALUE=\"add\"></td>");
          out.println("</FORM>");
        } else {
          out.println("<td>" + "<FONT COLOR=#0000FF>in updates waiting list!</td>");
        }
        out.println("</tr>");
      }
      out.println("</table>");
    }
  }
  private void printGroupListModulo(PrintWriter out, User user, int index) {
    Group group = null;
    String label = null;
    String groupName = null;
    String groupType = null;
    String userName = user.getUserName();
    group = (Group) (user.getGroupList().get(index));
    groupName = group.getGroupName();
    groupType = group.getGroupType();
    if (groupType.equals("5")) {
      label = " user wants to add this group ";
    } else if (groupType.equals("0")) {
      label = " user wants to delete this group ";
    }

    out.println("<table class=\"transparenttable\">");
    out.println("<tr><td><B>groupname: </B>" + groupName + "</td></tr>");
    out.println("<tr><td><B>user choice: </B>" + label + " </td></tr>");
    out.println("</table>");
    out.println("<BR>");
    this.printGroupDataSourceList(out, group);
    out.println("<BR>");

    out.println("<FORM ACTION=/gsn/MyUpdateUserGroupServlet METHOD=POST>");
    out.println("<INPUT  TYPE=HIDDEN NAME=groupname VALUE=" + groupName + ">");
    out.println("<INPUT  TYPE=HIDDEN NAME=grouptype VALUE=" + groupType + ">");
    out.println("<INPUT TYPE=HIDDEN NAME=username VALUE= " + userName + ">");
    out.println("<INPUT TYPE=HIDDEN NAME=update VALUE= yes>");
    out.println("<table class=\"transparenttable\">");
    out.println(
        "<td><INPUT TYPE=SUBMIT class=creategroupbuttonstyle VALUE=\"agree to update\"></td>");
    out.println("</FORM>");

    out.println("<FORM ACTION=/gsn/MyUpdateUserGroupServlet METHOD=POST>");
    out.println("<INPUT  TYPE=HIDDEN NAME=groupname VALUE=" + groupName + ">");
    out.println("<INPUT  TYPE=HIDDEN NAME=grouptype VALUE=" + groupType + ">");
    out.println("<INPUT TYPE=HIDDEN NAME=username VALUE= " + userName + ">");
    out.println("<INPUT TYPE=HIDDEN NAME=update VALUE= no>");
    out.println(
        "<td><INPUT TYPE=SUBMIT class=creategroupbuttonstyle VALUE=\"refuse to update\"></td></tr>");
    out.println("</FORM>");

    out.println("</table>");
  }
  /**
   * Creates a notification to a Group coordinator signaling that a user wants to join their group
   *
   * <p>- Requires a groupId request parameter for the GET
   *
   * @param req The HTTP Request
   * @param res The HTTP Response
   */
  public void inviteAction(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>();

    int groupId = Integer.parseInt(req.getParameter("groupId"));

    try {

      // Get the session user
      HttpSession session = req.getSession();
      Session userSession = (Session) session.getAttribute("userSession");
      User user = userSession.getUser();

      // Get the coordinator for the group
      GroupManager groupMan = new GroupManager();
      Group group = groupMan.get(groupId);
      User coordinator = groupMan.getCoordinator(groupId);

      // Send a notification to the coordinator for them to permit access to the group
      NotificationManager notificationMan = new NotificationManager();
      Notification notification =
          new Notification(
              coordinator.getId(),
              coordinator,
              groupId,
              group,
              user.getFullName() + " wants to join your group " + group.getGroupName(),
              "/home/notifications?addUserId=" + user.getId() + "&groupId=" + group.getId());
      notificationMan.createNotification(notification);

      redirectToLocal(req, res, "/home/dashboard");
      return;

    } catch (Exception e) {
      redirectToLocal(req, res, "/home/dashboard");
    }
  }
  /**
   * 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);
    }
  }