diff --git a/src/main/java/de/ids_mannheim/korap/dto/UserGroupMemberDto.java b/src/main/java/de/ids_mannheim/korap/dto/UserGroupMemberDto.java
index 40ea6d4..f311248 100644
--- a/src/main/java/de/ids_mannheim/korap/dto/UserGroupMemberDto.java
+++ b/src/main/java/de/ids_mannheim/korap/dto/UserGroupMemberDto.java
@@ -1,6 +1,7 @@
 package de.ids_mannheim.korap.dto;
 
 import java.util.List;
+import java.util.Set;
 
 import de.ids_mannheim.korap.constant.PrivilegeType;
 import lombok.Getter;
@@ -17,5 +18,6 @@
 @Getter
 public class UserGroupMemberDto {
     private String userId;
+    private Set<String> roles;
     private List<PrivilegeType> privileges;
 }
diff --git a/src/main/java/de/ids_mannheim/korap/dto/converter/UserGroupConverter.java b/src/main/java/de/ids_mannheim/korap/dto/converter/UserGroupConverter.java
index 7fbaa10..f959264 100644
--- a/src/main/java/de/ids_mannheim/korap/dto/converter/UserGroupConverter.java
+++ b/src/main/java/de/ids_mannheim/korap/dto/converter/UserGroupConverter.java
@@ -2,6 +2,7 @@
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -43,6 +44,7 @@
 
                 UserGroupMemberDto memberDto = new UserGroupMemberDto();
                 memberDto.setUserId(member.getUserId());
+                memberDto.setRoles(createUniqueRoles(member.getRoles()));
                 memberDto.setPrivileges(createPrivilegeList(member.getRoles()));
                 memberDtos.add(memberDto);
             }
@@ -55,6 +57,14 @@
         return dto;
     }
 
+    private Set<String> createUniqueRoles (Set<Role> roles) {
+        Set<String> uniqueRoles = new HashSet<String>();
+        for (Role r : roles) {
+            uniqueRoles.add(r.getName().name());
+        }
+        return uniqueRoles;
+    }
+
     private List<PrivilegeType> createPrivilegeList (Set<Role> roles) {
         List<PrivilegeType> privileges = new ArrayList<>(roles.size());
         for (Role r : roles) {
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupListTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupListTest.java
index b96467a..51c1d50 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupListTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupListTest.java
@@ -28,6 +28,15 @@
         assertEquals(group.at("/owner").asText(), "dory");
         assertEquals(3, group.at("/members").size());
         
+        assertEquals(group.at("/members/0/userId").asText(), "dory");
+        assertEquals(group.at("/members/0/roles").size(), 1);
+        assertEquals(group.at("/members/0/roles/0").asText(), "GROUP_ADMIN");
+        assertEquals(group.at("/members/0/privileges").size(), 5);
+        
+        assertEquals(group.at("/members/1/userId").asText(), "marlin");
+        assertEquals(group.at("/members/1/roles").size(), 1);
+        assertEquals(group.at("/members/1/roles/0").asText(), "GROUP_MEMBER");
+        
         testListNemoGroups();
         testListMarlinGroups();
         
