diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/ShoppingListController.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/ShoppingListController.java
index 352447b28b4114bf14b0b099861f19b9a1580c34..4c4d085f99b2945c199416201739a3ecb7e3b978 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/ShoppingListController.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/ShoppingListController.java
@@ -44,7 +44,9 @@ public class ShoppingListController {
      * @return the shopping list, or an error if the ID is invalid
      */
     @GetMapping("/{id}")
-    public ResponseEntity<ShoppingList> getShoppingListById(@PathVariable("id") long id) {
+    public ResponseEntity<ShoppingList> getShoppingListById(@PathVariable("id") long id, Authentication auth) {
+        shoppingListService.isUserInShoppinglist(id, auth.getName());
+
         Optional<ShoppingList> shoppingList = shoppingListService.getShoppingListById(id);
         return shoppingList.map(list -> ResponseEntity.status(HttpStatus.OK).body(list))
                            .orElseGet(() -> ResponseEntity.status(HttpStatus.NOT_FOUND).build());
diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/repository/ShoppingListRepository.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/repository/ShoppingListRepository.java
index 8bbc768488033a41fb1baa73a02619db73028503..b4dfbe259e81c36e2a8bfbd9170f9b7945d6d9d6 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/repository/ShoppingListRepository.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/repository/ShoppingListRepository.java
@@ -1,5 +1,6 @@
 package ntnu.idatt2016.v233.SmartMat.repository;
 
+import java.util.List;
 import java.util.Optional;
 
 import ntnu.idatt2016.v233.SmartMat.entity.ShoppingList;
@@ -23,5 +24,13 @@ public interface ShoppingListRepository extends JpaRepository<ShoppingList, Long
      */
     Optional<ShoppingList> getByGroupGroupId(long id);
 
-   
+
+    /**
+     * Gets all shopping lists by the username of the user
+     * @param username the username of the user
+     * @return a list of shopping lists
+     */
+    List<ShoppingList> findAllByGroupUserUserUsername(String username);
+
+
 }
diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/ShoppingListService.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/ShoppingListService.java
index c7867e9c482e064e58117c78f316d604d4aed7f6..d77c53a8398e9d2689cad058678032d38595c7a0 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/ShoppingListService.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/ShoppingListService.java
@@ -105,4 +105,16 @@ public class ShoppingListService {
 
         return shoppingListRepository.findById(shoppingListId);
     }
+
+    /**
+     * Check if user can edit/get shoppinglist
+     * @param id id of shoppinglist
+     * @param name name of user
+     * @return true if user is in shoppinglist, false if not
+     */
+    public boolean isUserInShoppinglist(long id, String name) {
+        return shoppingListRepository.findAllByGroupUserUserUsername(name).stream()
+                .anyMatch(shoppingList -> shoppingList.getShoppingListID() == id);
+
+    }
 }
diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/controller/ShoppingListControllerTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/controller/ShoppingListControllerTest.java
index 04b1935e766b21b94a2acc063927598aca5fa024..cf325eb32a5f09e644ba684497e82bb5c36652d1 100644
--- a/src/test/java/ntnu/idatt2016/v233/SmartMat/controller/ShoppingListControllerTest.java
+++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/controller/ShoppingListControllerTest.java
@@ -1,5 +1,6 @@
 package ntnu.idatt2016.v233.SmartMat.controller;
 
+import ntnu.idatt2016.v233.SmartMat.dto.enums.Authority;
 import ntnu.idatt2016.v233.SmartMat.dto.request.ShoppingListRequest;
 import ntnu.idatt2016.v233.SmartMat.entity.ShoppingList;
 import ntnu.idatt2016.v233.SmartMat.service.ShoppingListService;
@@ -11,7 +12,12 @@ import org.mockito.Mock;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
 
+import java.util.Collection;
+import java.util.List;
 import java.util.Optional;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -28,6 +34,80 @@ public class ShoppingListControllerTest {
 
     private ShoppingList shoppingList;
 
+    private final Authentication regularUser = new Authentication() {
+        @Override
+        public Collection<? extends GrantedAuthority> getAuthorities() {
+            return List.of(new SimpleGrantedAuthority(Authority.USER.name()));
+        }
+
+        @Override
+        public Object getCredentials() {
+            return null;
+        }
+
+        @Override
+        public Object getDetails() {
+            return null;
+        }
+
+        @Override
+        public Object getPrincipal() {
+            return null;
+        }
+
+        @Override
+        public boolean isAuthenticated() {
+            return true;
+        }
+
+        @Override
+        public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException {
+
+        }
+
+        @Override
+        public String getName() {
+            return "test";
+        }
+    };
+
+    private Authentication adminUser = new Authentication() {
+        @Override
+        public Collection<? extends GrantedAuthority> getAuthorities() {
+            return List.of(new SimpleGrantedAuthority(Authority.ADMIN.name()));
+        }
+
+        @Override
+        public Object getCredentials() {
+            return null;
+        }
+
+        @Override
+        public Object getDetails() {
+            return null;
+        }
+
+        @Override
+        public Object getPrincipal() {
+            return null;
+        }
+
+        @Override
+        public boolean isAuthenticated() {
+            return true;
+        }
+
+        @Override
+        public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException {
+
+        }
+
+        @Override
+        public String getName() {
+            return "test";
+        }
+    };
+
     @BeforeEach
     public void setUp() {
         shoppingList = new ShoppingList();
@@ -39,7 +119,7 @@ public class ShoppingListControllerTest {
         long id = 1;
         when(shoppingListService.getShoppingListById(id)).thenReturn(Optional.of(shoppingList));
 
-        ResponseEntity<ShoppingList> response = shoppingListController.getShoppingListById(id);
+        ResponseEntity<ShoppingList> response = shoppingListController.getShoppingListById(id, adminUser);
 
         assertEquals(HttpStatus.OK, response.getStatusCode());
         assertEquals(shoppingList, response.getBody());
@@ -50,7 +130,7 @@ public class ShoppingListControllerTest {
         long id = 1;
         when(shoppingListService.getShoppingListById(id)).thenReturn(Optional.empty());
 
-        ResponseEntity<ShoppingList> response = shoppingListController.getShoppingListById(id);
+        ResponseEntity<ShoppingList> response = shoppingListController.getShoppingListById(id, adminUser);
 
         assertEquals(HttpStatus.NOT_FOUND, response.getStatusCode());
     }
diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeControllerTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeControllerTest.java
index 418ef509f48c3a13f2da69ffb80655f6129e6a0a..4ae6df8aac66e0ef2cbba6b0e93cd51f4550b154 100644
--- a/src/test/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeControllerTest.java
+++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeControllerTest.java
@@ -51,7 +51,7 @@ public class FridgeControllerTest {
     private FridgeProductRequest fridgeProductRequest;
 
 
-    private Authentication regularUser = new Authentication() {
+    private final Authentication regularUser = new Authentication() {
         @Override
         public Collection<? extends GrantedAuthority> getAuthorities() {
             return List.of(new SimpleGrantedAuthority(Authority.USER.name()));
diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/ShoppingListRepositoryTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/ShoppingListRepositoryTest.java
index 0a9c74ca48672e56d6bdbbac4382ca2af4b1fe7a..a379523dff34f9c5189f923f6b0b70b601babf19 100644
--- a/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/ShoppingListRepositoryTest.java
+++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/ShoppingListRepositoryTest.java
@@ -6,6 +6,9 @@ import java.util.List;
 import java.util.Optional;
 
 import ntnu.idatt2016.v233.SmartMat.entity.group.Group;
+import ntnu.idatt2016.v233.SmartMat.entity.group.UserGroupAsso;
+import ntnu.idatt2016.v233.SmartMat.entity.group.UserGroupId;
+import ntnu.idatt2016.v233.SmartMat.entity.user.User;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
@@ -96,4 +99,54 @@ public class ShoppingListRepositoryTest {
         List<ShoppingList> shoppingLists = shoppingListRepository.findAll();
         assertEquals(2, shoppingLists.size());
     }
+
+    @Test
+    void getbyusername(){
+        Group group = Group.builder()
+                .build();
+        ShoppingList shoppingList1 = ShoppingList.builder()
+                .group(group)
+                .build();
+
+        Group group2 = Group.builder()
+                .build();
+        ShoppingList shoppingList2 = ShoppingList.builder()
+                .group(group2)
+                .build();
+
+        User user = User.builder()
+                .username("username")
+                .password("password")
+                .build();
+
+        entityManager.persist(user);
+        entityManager.persist(group);
+
+        group.addUser(UserGroupAsso.builder()
+                        .id(new UserGroupId(user.getUsername(), group.getGroupId()))
+                        .group(group)
+                        .user(user)
+                .build());
+
+
+
+        shoppingListRepository.save(shoppingList1);
+        shoppingListRepository.save(shoppingList2);
+
+        List<ShoppingList> shoppingLists = shoppingListRepository.findAll();
+
+        assertEquals(2, shoppingLists.size());
+
+        List<ShoppingList> shoppingListsByUsername = shoppingListRepository
+                .findAllByGroupUserUserUsername(user.getUsername());
+
+        assertEquals(1, shoppingListsByUsername.size());
+
+        ShoppingList tempShoppingList = shoppingListsByUsername.get(0);
+
+        assertEquals(group.getGroupId(), tempShoppingList.getGroup().getGroupId());
+
+
+
+    }
 }
diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/service/ShoppingListServiceTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/service/ShoppingListServiceTest.java
index c304217d779327491fe8d03debc7e4d5e72a463c..954761ab742f9c055b1540fa3a154d2b5e3f33cb 100644
--- a/src/test/java/ntnu/idatt2016/v233/SmartMat/service/ShoppingListServiceTest.java
+++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/service/ShoppingListServiceTest.java
@@ -1,6 +1,8 @@
 package ntnu.idatt2016.v233.SmartMat.service;
 
 import ntnu.idatt2016.v233.SmartMat.entity.group.Group;
+import ntnu.idatt2016.v233.SmartMat.entity.group.UserGroupAsso;
+import ntnu.idatt2016.v233.SmartMat.entity.user.User;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
@@ -79,4 +81,33 @@ class ShoppingListServiceTest {
 
         verify(shoppingListRepository, times(1)).deleteById(1L);
     }
+
+    @Test
+    void isUserInGroupWithShoppinglist(){
+        ShoppingList shoppingList = new ShoppingList();
+        Group group = new Group();
+        shoppingList.setGroup(group);
+
+        User user = User.builder()
+                .username("test")
+                .password("test")
+                .build();
+
+        group.addUser(UserGroupAsso.builder()
+                        .user(user)
+                        .group(group)
+                .build());
+
+
+        when(shoppingListRepository.findAllByGroupUserUserUsername(user.getUsername()))
+                .thenReturn(List.of(shoppingList));
+
+        boolean result = shoppingListService.isUserInShoppinglist(
+                shoppingList.getShoppingListID(), user.getUsername());
+
+        assertTrue(result);
+
+        verify(shoppingListRepository, times(1))
+                .findAllByGroupUserUserUsername(user.getUsername());
+    }
 }