JcrRepositoryFileAclUtils.setAclMetadata( session, absPath, acList, new AclMetadata( acl.getOwner().getName(), acl
.isEntriesInheriting() ) );
// add entries to now empty list but only if not inheriting; force user to start with clean slate
boolean adminPrincipalExist = false;
ITenant principalTenant = null;
if ( !acl.isEntriesInheriting() ) {
for ( RepositoryFileAce ace : acl.getAces() ) {
Principal principal = null;
if ( RepositoryFileSid.Type.ROLE == ace.getSid().getType() ) {
String principalName = JcrTenantUtils.getRoleNameUtils().getPrincipleName( ace.getSid().getName() );
if ( tenantAdminAuthorityName.equals( principalName ) ) {
adminPrincipalExist = true;
}
principal = new SpringSecurityRolePrincipal( JcrTenantUtils.getTenantedRole( ace.getSid().getName() ) );
} else {
principal = new SpringSecurityUserPrincipal( JcrTenantUtils.getTenantedUser( ace.getSid().getName() ) );
}
acList.addAccessControlEntry( principal, permissionConversionHelper.pentahoPermissionsToPrivileges( session,
ace.getPermissions() ) );
}
if ( !adminPrincipalExist ) {
if ( acl.getAces() != null && acl.getAces().size() > 0 ) {
principalTenant = JcrTenantUtils.getRoleNameUtils().getTenant( acl.getAces().get( 0 ).getSid().getName() );
}
if ( principalTenant == null || principalTenant.getId() == null ) {
principalTenant = JcrTenantUtils.getTenant();
}
List<RepositoryFilePermission> permissionList = new ArrayList<RepositoryFilePermission>();
permissionList.add( RepositoryFilePermission.ALL );