This report will show who has access to what in the system. This report has to be used in conjunction with a report template such as the Bar Chart Template.
Meta-Data Script:
import com.urbancode.anthill3.domain.reporting.*;
import com.urbancode.anthill3.domain.security.*;
rmd = new ReportMetaData();
rmd.addColumn("Resource Type");
rmd.addColumn("Resource Name");
rmd.addColumn("Permission");
pmd = new SelectParamMetaData();
pmd.setLabel("User");
pmd.setName("userName");
pmd.setDescription("Select the user to report the permissions of.");
pmd.setRequired(true);
users = UserFactory.getInstance().restoreAll();
userNames = new String[users.length];
for (int u=0; u<users.length; u++) {
userNames[u] = users[u].getName();
}
pmd.setLabels(userNames);
pmd.setValues(userNames);
rmd.addParameter(pmd);
return rmd;
Context Script:
import com.urbancode.anthill3.domain.reporting.*;
import com.urbancode.anthill3.domain.security.*;
import java.util.*;
output = new ReportOutput(metaData);
user = UserFactory.getInstance().restoreForName(userName);
roles = RoleFactory.getInstance().restoreAllForUser(user);
permissions = PermissionFactory.getInstance().restoreAll();
comparator = new Comparator() {
public int compare(Object o1, Object o2) {
p1 = (Permission) o1;
p2 = (Permission) o2;
int result = p1.getResource().getResourceType().getName().compareTo(p2.getResource().getResourceType().getName());
if (result == 0) {
result = p1.getResource().getName().compareTo(p2.getResource().getName());
if (result == 0) {
result = p1.getAction().compareTo(p2.getAction());
}
}
return result;
}
};
rolePermissions = new ArrayList();
for (int p=0; p<permissions.length; p++) {
for (int r=0; r<roles.length; r++) {
if (roles[r].equals(permissions[p].getRole())) {
rolePermissions.add(permissions[p]);
}
}
}
Collections.sort(rolePermissions, comparator);
for (int p=0; p<rolePermissions.size(); p++) {
permission = rolePermissions.get(p);
row = new ReportRow(output, String.valueOf(p));
row.setColumnValue("Resource Type", permission.getResource().getResourceType().getName());
row.setColumnValue("Resource Name", permission.getResource().getName());
row.setColumnValue("Permission", permission.getAction());
output.addRow(row);
}
return output;
Related Content