@Override public Set<PrivilegeObject> getPrivilegesByRole(final String component, final Set<String> roles) throws Exception { Preconditions.checkNotNull(roles); if (roles.isEmpty()) { return Collections.emptySet(); } return delegate.getTransactionManager().executeTransaction( pm -> { pm.setDetachAllOnCommit(false); // No need to detach objects Set<MSentryRole> mRoles = new HashSet<>(); for (String role : roles) { MSentryRole mRole = getRole(toTrimmedLower(role), pm); if (mRole != null) { mRoles.add(mRole); } } return new HashSet<>(privilegeOperator.getPrivilegesByRole(mRoles, pm)); }); }
@Override public Set<PrivilegeObject> getPrivilegesByRole(String component, Set<String> roles) throws SentryUserException { Preconditions.checkNotNull(roles); Set<PrivilegeObject> privileges = Sets.newHashSet(); if (roles.isEmpty()) { return privileges; } PersistenceManager pm = null; try { pm = openTransaction(); Set<MSentryRole> mRoles = Sets.newHashSet(); for (String role : roles) { MSentryRole mRole = getRole(toTrimmedLower(role), pm); if (mRole != null) { mRoles.add(mRole); } } privileges.addAll(privilegeOperator.getPrivilegesByRole(mRoles, pm)); } finally { if (pm != null) { commitTransaction(pm); } } return privileges; }