From a0958f728d7f018e9aa3a76e409cc3d724854fe3 Mon Sep 17 00:00:00 2001
From: Hugo Renard <hugo.renard@protonmail.com>
Date: Fri, 22 Apr 2022 17:17:05 +0200
Subject: [PATCH] fix role mapping

---
 .../java/sh/libre/scim/core/UserAdapter.java  | 27 ++++++-------------
 1 file changed, 8 insertions(+), 19 deletions(-)

diff --git a/src/main/java/sh/libre/scim/core/UserAdapter.java b/src/main/java/sh/libre/scim/core/UserAdapter.java
index 1aac599..00df936 100644
--- a/src/main/java/sh/libre/scim/core/UserAdapter.java
+++ b/src/main/java/sh/libre/scim/core/UserAdapter.java
@@ -100,26 +100,15 @@ public class UserAdapter extends Adapter<UserModel, UserResource> {
         user.getGroupsStream().flatMap(g -> g.getRoleMappingsStream())
                 .filter((r) -> r.getFirstAttribute("scim").equals("true")).map((r) -> r.getName())
                 .forEach(r -> rolesSet.add(r));
-        // Bug when new user.
-        try {
-            var roleStream = user.getRoleMappingsStream();
-            if (rolesSet == null) {
-                LOGGER.error("role stream is null");
+
+        user.getRoleMappingsStream().filter((r) -> {
+            var attr = r.getFirstAttribute("scim");
+            if (attr == null) {
+                return false;
             }
-            roleStream.filter((r) -> {
-                var attr = r.getFirstAttribute("scim");
-                if (attr == null) {
-                    LOGGER.debug("attribute is null");
-                    return false;
-                }
-                return attr.equals("true");
-            }).map((r) -> r.getName()).forEach(r -> rolesSet.add(r));
-
-            // user.getRoleMappingsStream().filter((r) -> r.getFirstAttribute("scim").equals("true"))
-            //         .map((r) -> r.getName()).forEach(r -> rolesSet.add(r));
-        } catch (Exception e) {
-            LOGGER.error(e);
-        }
+            return attr.equals("true");
+        }).map((r) -> r.getName()).forEach(r -> rolesSet.add(r));
+
         var roles = new String[rolesSet.size()];
         rolesSet.toArray(roles);
         setRoles(roles);
-- 
GitLab