List<TopicRolePermission> topicRolePermissions = new ArrayList<TopicRolePermission>();
UserRealm userRealm = CarbonContext.getCurrentContext().getUserRealm();
String adminRole =
EventBrokerHolder.getInstance().getRealmService().
getBootstrapRealmConfiguration().getAdminRoleName();
TopicRolePermission topicRolePermission;
try {
for (String role : userRealm.getUserStoreManager().getRoleNames()) {
// remove admin role and anonymous role related permissions
if (!(role.equals(adminRole) ||
CarbonConstants.REGISTRY_ANONNYMOUS_ROLE_NAME.equals(adminRole))) {
topicRolePermission = new TopicRolePermission();
topicRolePermission.setRoleName(role);
topicRolePermission.setAllowedToSubscribe(
userRealm.getAuthorizationManager().isRoleAuthorized(
role, topicResoucePath, EventBrokerConstants.EB_PERMISSION_SUBSCRIBE));
topicRolePermission.setAllowedToPublish(
userRealm.getAuthorizationManager().isRoleAuthorized(
role, topicResoucePath, EventBrokerConstants.EB_PERMISSION_PUBLISH));
topicRolePermissions.add(topicRolePermission);
}
}