This is a report of all the roles a given user has in the system. 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.project.*;
import com.urbancode.anthill3.domain.reporting.*;
import com.urbancode.anthill3.domain.authentication.*;
ReportMetaData rmd = new ReportMetaData();
TextParamMetaData userNameParam = new TextParamMetaData();
userNameParam.setName("username");
userNameParam.setLabel("Username");
userNameParam.setDescription("The username to report on.");
userNameParam.setRequired(true);
rmd.addParameter(userNameParam);
AuthenticationRealm[] realms = AuthenticationRealmFactory.getInstance().restoreAllActive();
String[] labels = new String[realms.length];
String[] values = new String[realms.length];
for (int i = 0; i < realms.length; i++) {
labels[i] = realms[i].getName();
values[i] = realms[i].getName();
}
SelectParamMetaData params = new SelectParamMetaData();
params.setLabels(labels);
params.setValues(values);
params.setName("realmName");
params.setLabel("Authentication Realm");
params.setDescription("The User Authentication Realm");
params.setRequired(true);
rmd.addParameter(params);
// Configure columns
rmd.addColumn("RoleName");
return rmd;
Report Script:
import com.urbancode.anthill3.domain.security.*;
import com.urbancode.anthill3.domain.authentication.*;
import com.urbancode.anthill3.domain.reporting.*;
import java.util.*;
// The output of a report is based on the meta-data
ReportOutput output = new ReportOutput(metaData);
AuthenticationRealm realm = AuthenticationRealmFactory.getInstance().restore(realmName);
User user = UserFactory.getInstance().restoreForNameAndRealm(username, realm);
Role[] roles = user.getRoles();
for (int i = 0; i < roles.length; i++) {
Role role = roles[i];
ReportRow row = new ReportRow(output, "Row");
row.setColumnValue("RoleName", role.getName());
output.addRow(row);
}
return output;
Related Content