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