in opensearch-notebooks/src/main/kotlin/org/opensearch/notebooks/security/UserAccessManager.kt [109:128]
fun getSearchAccessInfo(user: User?): List<String> {
if (user == null) { // Security is disabled
return listOf()
}
if (isUserPrivateTenant(user)) {
return listOf("$USER_TAG${user.name}") // No sharing allowed in private tenant.
}
if (canAdminViewAllItems(user)) {
return listOf()
}
return when (PluginSettings.filterBy) {
FilterBy.NoFilter -> listOf()
FilterBy.User -> listOf("$USER_TAG${user.name}")
FilterBy.Roles -> user.roles.stream()
.filter { !PluginSettings.ignoredRoles.contains(it) }
.map { "$ROLE_TAG$it" }
.collect(Collectors.toList())
FilterBy.BackendRoles -> user.backendRoles.map { "$BACKEND_ROLE_TAG$it" }
}
}