Working with ACLs
Updating an ACL.
Sample_Admin_ACL_Operations.java
The following code sample illustrates how to update an ACL of a known T-Tag (hidden link) by adding or removing users or changing the privileges of existing users.
import java.util.TreeSet;
import com.eruces.teadmin.ACLEntry;
import com.eruces.teadmin.ACLInfo;
import com.eruces.teadmin.Administration;
import com.eruces.teadmin.UserAndPasswordInfo;
import com.eruces.teagent.TEAgentConnection;
public class Sample_Admin_ACL_Operations {
public static void addEntry(TEAgentConnection conn, String t_tag, String user_name) {
try {
Administration admin = new Administration();
admin.attachConnection(conn);
UserAndPasswordInfo user = admin.getUserByName(user_name);
ACLInfo original_info = admin.getACL(t_tag);
ACLInfo modified_info = new ACLInfo();
modified_info.setACLID(original_info.getACLID());
ACLEntry entry = new ACLEntry(modified_info);
entry.setPrincipalID(user.getPrincipalID());
entry.setFlag(7);
entry.setMaxUsage(0);
entry.setStartTime(0);
entry.setEndTime(0);
entry.setSystemID(admin.getSystemID());
entry.setUserRight(ACLEntry.ACL_RIGHT_READ);
admin.updateACL(Administration.ADD_ACLENTRY, modified_info);
System.out.println("Added ACL entry with T-tag \"" + t_tag + "\" to user \"" + user_name + "\".");
admin.detachConnection();
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void removeEntry(TEAgentConnection conn, String t_tag, String user_name) {
try {
Administration admin = new Administration();
admin.attachConnection(conn);
UserAndPasswordInfo user = admin.getUserByName(user_name);
long user_id = user.getPrincipalID();
ACLInfo original_info = admin.getACL(t_tag);
ACLInfo modified_info = new ACLInfo();
modified_info.setACLID(original_info.getACLID());
@SuppressWarnings("unchecked")
TreeSet<ACLEntry> all_entries = original_info.getAllEntries();
ACLEntry entry = null;
for (ACLEntry e : all_entries) {
if (e.getPrincipalID() == user_id) {
entry = e;
break;
}
}
modified_info.addACLEntry(entry);
admin.updateACL(Administration.REMOVE_ACLENTRY, modified_info);
System.out.println("Removed ACL entry with T-tag \"" + t_tag + "\" from user \"" + user_name + "\".");
admin.detachConnection();
}
catch (Exception e) {
e.printStackTrace();
}
}
}