Applying Permission to
a Managed Entity
The following
example shows some of the code required to create a user account and apply a
permission to an entity that grants access to the user account based on a role.
The role with role ID 4, assigned in this
example, is defined as a “Virtual Machine Power User.” The sample uses
AuthorizationManager
to grant
permissions to the user and to associate the permission with the managed entity
in the inventory—in this example, the
rootFolder
. The example uses
the
apputil
helper classes to
access the objects.
Creating a User Account
... ManagedObjectReference _authManRef = _sic.getAuthorizationManager(); public class CreateUser { private static AppUtil appUtil= null; private void createUser() throws Exception { ManagedObjectReference hostLocalAccountManager = appUtil.getConnection().getServiceContent().getAccountManager(); ManagedObjectReference hostAuthorizationManager = appUtil.getConnection().getServiceContent().getAuthorizationManager(); // Create a user HostAccountSpec hostAccountSpec = new HostAccountSpec(); hostAccountSpec.setId(userName); hostAccountSpec.setPassword(password); hostAccountSpec.setDescription("my delegated admin auto-agent software"); appUtil.getConnection().getService().createUser(hostLocalAccountManager, hostAccountSpec); ManagedObjectReference rootFolder = appUtil.getConnection().getServiceContent().getRootFolder(); Permission permission = new Permission(); permission.setGroup(false); permission.setPrincipal(userName); // Assign the Virtual Machine Power User role permission.setRoleId(4); permission.setPropagate(true); permission.setEntity(rootFolder); appUtil.getConnection().getService().setEntityPermissions(hostAuthorizationManager, rootFolder, new Permission [] {permission}); ...