You need to be admin to see everything, you have an option to select a particular role. It only shows active roles. This report has to be used in conjunction with a report template such as the HTML Template.
Meta-Data Script:
import com.urbancode.anthill3.domain.reporting.ReportMetaData; import com.urbancode.anthill3.domain.reporting.SelectParamMetaData; import com.urbancode.anthill3.domain.security.Role; import com.urbancode.anthill3.domain.security.RoleFactory; ReportMetaData rmd = new ReportMetaData(); // Add some parameters to the report SelectParamMetaData params = new SelectParamMetaData(); Role[] roleArray = RoleFactory.getInstance().restoreAllActive(); String[] labels = new String[roleArray.length + 1]; String[] values = new String[roleArray.length + 1]; for (int i = 0; i < roleArray.length; i++) { labels[i] = roleArray[i].getName(); values[i] = roleArray[i].getId().toString(); } labels[roleArray.length] = "All"; values[roleArray.length] = "all"; params.setLabels(labels); params.setValues(values); params.setName("role"); params.setLabel("Role"); params.setDescription( "Select the role to display. Or select ''All'' to display all roles together."); rmd.addParameter(params); // Configure columns rmd.addColumn("Role"); rmd.addColumn("Users"); return rmd;
Report Script:
import com.urbancode.anthill3.domain.reporting.ReportOutput; import com.urbancode.anthill3.domain.reporting.ReportRow; import com.urbancode.anthill3.domain.security.Role; import com.urbancode.anthill3.domain.security.RoleFactory; import com.urbancode.anthill3.domain.security.User; import com.urbancode.anthill3.domain.security.UserFactory; Role[] roleArray = null; if ("all".equals(role)) { roleArray = RoleFactory.getInstance().restoreAll(); } else { roleArray = new Role[1]; roleArray[0] = RoleFactory.getInstance().restore(Long.valueOf(role)); } ReportOutput output = new ReportOutput(metaData); for(Role role : roleArray) { if (role != null) { ReportRow row = new ReportRow(output, role.getName()); StringBuffer sb = new StringBuffer(); User[] userArray = UserFactory.getInstance().restoreAllForRole(role); for (User user : userArray) { if (user != null) { sb.append(user.getName()).append("<br>"); } } row.setColumnValue("Role", role.getName()); row.setColumnValue("Users", sb.toString()); output.addRow(row); } } return output;
Related Content