@Override
public TListSentryPrivilegesForProviderResponse list_sentry_privileges_for_provider(
final TListSentryPrivilegesForProviderRequest request) throws TException {
Response<Set<String>> respose = requestHandle(new RequestHandler<Set<String>>() {
@Override
public Response<Set<String>> handle() throws Exception {
validateClientVersion(request.getProtocol_version());
Set<String> activeRoleNames = toTrimmedLower(request.getRoleSet().getRoles());
Set<String> roleNamesForGroups = store.getRolesByGroups(request.getComponent(), request.getGroups());
Set<String> rolesToQuery = request.getRoleSet().isAll() ? roleNamesForGroups : Sets.intersection(activeRoleNames, roleNamesForGroups);
Set<PrivilegeObject> privileges = store.getPrivilegesByProvider(request.getComponent(),
request.getServiceName(),
rolesToQuery, null,
toAuthorizables(request.getAuthorizables()));
return new Response<Set<String>>(Status.OK(), buildPermissions(privileges));
}
});
TListSentryPrivilegesForProviderResponse tResponse = new TListSentryPrivilegesForProviderResponse();
tResponse.setStatus(respose.status);
tResponse.setPrivileges(respose.content);
return tResponse;
}