Version Differences for Permissions a User Has to Agent

Line 1:
    + This script shows you all the agents in the system a given user can access. This report has to be used in conjunction with a report template such as the [[Bar Chart Template]].  
       
    + ----  
       
    + ''Meta-Data Script:''  
       
    + <pre>// Meta Data  
    + 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("AgentName");  
       
    + return rmd;  
    + </pre>  
       
    + ----  
       
    + ''Context Script:''  
       
    + <pre>import com.urbancode.anthill3.domain.security.*;  
    + import com.urbancode.anthill3.domain.servergroup.*;  
    + import com.urbancode.anthill3.domain.reporting.*;  
    + import com.urbancode.anthill3.domain.agent.*;  
    + import com.urbancode.devilfish.client.*;  
    + import java.util.*;  
       
    + Set environments = new HashSet();  
    + Set agents = new HashSet();  
       
    + ServerGroup[] serverGroups = ServerGroupFactory.getInstance().restoreAll();  
       
    + for (int i = 0; i < serverGroups.length; i++) {  
       
    + User[] users = Authority.getInstance().getUsersWithPermissionToPersistent(serverGroups[i], "read");  
       
    + for (int j = 0; j < users.length; j++) {  
    + User user = users[j];  
    + if (user.getName().equals(username) &&  
    + user.getAuthenticationRealm().getName().equals(realmName)) {  
    + environments.add(serverGroups[i]);  
    + }  
    + }  
    + }  
       
    + Iterator itr = environments.iterator();  
       
    + while (itr.hasNext()) {  
    + ServerGroup serverGroup = (ServerGroup) itr.next();  
    + agents.addAll(Arrays.asList(serverGroup.getServerArray()));  
    + }  
       
    + ReportOutput output = new ReportOutput(metaData);  
    + itr = agents.iterator();  
    + while (itr.hasNext()) {  
    + ServiceEndpoint serviceEndpoint = (ServiceEndpoint) itr.next();  
    + Agent agent = AgentFactory.getInstance().restoreByEndpoint(serviceEndpoint);  
    + ReportRow row = new ReportRow(output, "Agent");  
    + row.setColumnValue("AgentName", agent.getName());  
    + output.addRow(row);  
    + }  
       
    + return output;  
    + </pre>  
       
    + ----  
       
    + '''Related Content'''  
       
    + [[AnthillPro Template Reports]]<br/>  
    + [[Report Templates]]