コード例 #1
0
  public void writeReport(OutputStream os) throws ReportException {
    UserManager userManager = securitySystem.getUserManager();

    List allUsers = userManager.getUsers();
    List allRoles;
    Map assignmentsMap;

    try {
      allRoles = rbacManager.getAllRoles();
      Collections.sort(allRoles, new RoleSorter());

      List allAssignments = rbacManager.getAllUserAssignments();
      assignmentsMap = new HashMap();

      Iterator it = allAssignments.iterator();
      while (it.hasNext()) {
        UserAssignment assignment = (UserAssignment) it.next();
        assignmentsMap.put(assignment.getPrincipal(), assignment.getRoleNames());
      }
    } catch (RbacManagerException e) {
      throw new ReportException("Unable to obtain list of all roles.", e);
    }

    Collections.sort(allUsers, new UserComparator("username", true));

    PrintWriter out = new PrintWriter(os);

    writeCsvHeader(out, allRoles);

    Iterator itUsers = allUsers.iterator();
    while (itUsers.hasNext()) {
      User user = (User) itUsers.next();
      writeCsvRow(out, user, assignmentsMap, allRoles);
    }

    out.flush();
  }