diff --git a/rest/index.php b/rest/index.php
index eff4326f0fec4515273aea8011ebf6e424cf78d5..c7094e3b3ab087d49aa423bba8b808eb202488a0 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -247,7 +247,8 @@ $app->get('/natures', \Resource\controllers\ResController::class . ':getNatures'
 $app->get('/resources/{resId}/isAllowed', \Resource\controllers\ResController::class . ':isAllowedForCurrentUser');
 
 //ResourcesList
-$app->get('/resourcesList/users/{userId}/groups/{groupSerialId}/baskets/{basketId}', \Resource\controllers\ResourceListController::class . ':get');
+$app->get('/resourcesList/users/{userId}/groups/{groupId}/baskets/{basketId}', \Resource\controllers\ResourceListController::class . ':get');
+$app->get('/resourcesList/users/{userId}/groups/{groupId}/baskets/{basketId}/entities', \Resource\controllers\ResourceListController::class . ':getEntities');
 
 //Attachments
 $app->post('/attachments', \Attachment\controllers\AttachmentController::class . ':create');
diff --git a/src/app/resource/controllers/ResourceListController.php b/src/app/resource/controllers/ResourceListController.php
index b3fecfac5395391917418b25f9851170a44a6180..55a96378205eca35d8e9ae94c05dd9e96b4f399e 100644
--- a/src/app/resource/controllers/ResourceListController.php
+++ b/src/app/resource/controllers/ResourceListController.php
@@ -26,56 +26,22 @@ use Resource\models\ResourceListModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
 use SrcCore\controllers\PreparedClauseController;
+use SrcCore\models\ValidatorModel;
 use User\models\UserModel;
 
 class ResourceListController
 {
     public function get(Request $request, Response $response, array $aArgs)
     {
-        $group = GroupModel::getById(['id' => $aArgs['groupSerialId'], 'select' => ['group_id']]);
-        $basket = BasketModel::getById(['id' => $aArgs['basketId'], 'select' => ['basket_clause', 'basket_res_order', 'basket_name']]);
-        if (empty($group) || empty($basket)) {
-            return $response->withStatus(400)->withJson(['errors' => 'Group or basket does not exist']);
-        }
+        $currentUser = UserModel::getByLogin(['login' => $GLOBALS['userId'], 'select' => ['id']]);
 
-        $user = UserModel::getById(['id' => $aArgs['userId'], 'select' => ['user_id']]);
-        if ($user['user_id'] == $GLOBALS['userId']) {
-            $redirectedBasket = RedirectBasketModel::get([
-                'select'    => [1],
-                'where'     => ['owner_user_id = ?', 'basket_id = ?', 'group_id = ?'],
-                'data'      => [$aArgs['userId'], $aArgs['basketId'], $aArgs['groupSerialId']]
-            ]);
-            if (!empty($redirectedBasket[0])) {
-                return $response->withStatus(403)->withJson(['errors' => 'Basket out of perimeter (redirected)']);
-            }
-        } else {
-            $currentUser = UserModel::getByLogin(['login' => $GLOBALS['userId'], 'select' => ['id']]);
-            $redirectedBasket = RedirectBasketModel::get([
-                'select'    => ['actual_user_id'],
-                'where'     => ['owner_user_id = ?', 'basket_id = ?', 'group_id = ?'],
-                'data'      => [$aArgs['userId'], $aArgs['basketId'], $aArgs['groupSerialId']]
-            ]);
-            if (empty($redirectedBasket[0]) || $redirectedBasket[0]['actual_user_id'] != $currentUser['id']) {
-                return $response->withStatus(403)->withJson(['errors' => 'Basket out of perimeter']);
-            }
+        $errors = ResourceListController::listControl(['groupId' => $aArgs['groupId'], 'userId' => $aArgs['userId'], 'basketId' => $aArgs['basketId'], 'currentUserId' => $currentUser['id']]);
+        if (!empty($errors['errors'])) {
+            return $response->withStatus($errors['code'])->withJson(['errors' => $errors['errors']]);
         }
 
-        $groups = UserModel::getGroupsByUserId(['userId' => $user['user_id']]);
-        $groupFound = false;
-        foreach ($groups as $value) {
-            if ($value['id'] == $aArgs['groupSerialId']) {
-                $groupFound = true;
-            }
-        }
-        if (!$groupFound) {
-            return $response->withStatus(400)->withJson(['errors' => 'Group is not linked to this user']);
-        }
-
-        $isBasketLinked = GroupBasketModel::get(['select' => [1], 'where' => ['basket_id = ?', 'group_id = ?'], 'data' => [$aArgs['basketId'], $group['group_id']]]);
-        if (empty($isBasketLinked)) {
-            return $response->withStatus(400)->withJson(['errors' => 'Group is not linked to this basket']);
-        }
-        //END OF CONTROL
+        $basket = BasketModel::getById(['id' => $aArgs['basketId'], 'select' => ['basket_clause', 'basket_res_order', 'basket_name']]);
+        $user = UserModel::getById(['id' => $aArgs['userId'], 'select' => ['user_id']]);
 
         $data = $request->getQueryParams();
         $data['offset'] = (empty($data['offset']) || !is_numeric($data['offset']) ? 0 : $data['offset']);
@@ -144,7 +110,6 @@ class ResourceListController
         }
 
         $resources = [];
-        $entities = [];
         if (!empty($resIds)) {
             $attachments = AttachmentModel::getOnView([
                 'select'    => ['COUNT(res_id)', 'res_id_master'],
@@ -164,23 +129,92 @@ class ResourceListController
                 }
                 $resources[$key]['countNotes'] = NoteModel::countByResId(['resId' => $resource['res_id'], 'login' => $GLOBALS['userId']]);
             }
+        }
 
-            $rawEntities = ResModel::getOnView([
-                'select'    => ['count(res_id)', 'destination'],
-                'where'     => [$whereClause],
-                'groupBy'   => ['destination']
+        return $response->withJson(['resources' => $resources, 'count' => $count, 'basketLabel' => $basket['basket_name']]);
+    }
+
+    public function getEntities(Request $request, Response $response, array $aArgs)
+    {
+        $currentUser = UserModel::getByLogin(['login' => $GLOBALS['userId'], 'select' => ['id']]);
+
+        $errors = ResourceListController::listControl(['groupId' => $aArgs['groupId'], 'userId' => $aArgs['userId'], 'basketId' => $aArgs['basketId'], 'currentUserId' => $currentUser['id']]);
+        if (!empty($errors['errors'])) {
+            return $response->withStatus($errors['code'])->withJson(['errors' => $errors['errors']]);
+        }
+
+        $basket = BasketModel::getById(['id' => $aArgs['basketId'], 'select' => ['basket_clause']]);
+        $user = UserModel::getById(['id' => $aArgs['userId'], 'select' => ['user_id']]);
+
+        $whereClause = PreparedClauseController::getPreparedClause(['clause' => $basket['basket_clause'], 'login' => $user['user_id']]);
+        $rawEntities = ResModel::getOnView([
+            'select'    => ['count(res_id)', 'destination'],
+            'where'     => [$whereClause],
+            'groupBy'   => ['destination']
+        ]);
+
+        $entities = [];
+        foreach ($rawEntities as $key => $value) {
+            $entity = EntityModel::getByEntityId(['select' => ['entity_label'], 'entityId' => $value['destination']]);
+            $entities[] = [
+                'entityid'  => $value['destination'],
+                'label'     => $entity['entity_label'],
+                'count'     => $value['count']
+            ];
+        }
+
+        return $response->withJson(['entities' => $entities]);
+    }
+
+    private static function listControl(array $aArgs)
+    {
+        ValidatorModel::notEmpty($aArgs, ['groupId', 'userId', 'basketId', 'currentUserId']);
+        ValidatorModel::intVal($aArgs, ['groupId', 'userId', 'currentUserId']);
+        ValidatorModel::stringType($aArgs, ['basketId']);
+
+        $group = GroupModel::getById(['id' => $aArgs['groupId'], 'select' => ['group_id']]);
+        $basket = BasketModel::getById(['id' => $aArgs['basketId'], 'select' => ['basket_clause', 'basket_res_order', 'basket_name']]);
+        if (empty($group) || empty($basket)) {
+            return ['errors' => 'Group or basket does not exist', 'code' => 400];
+        }
+
+        if ($aArgs['userId'] == $aArgs['currentUserId']) {
+            $redirectedBasket = RedirectBasketModel::get([
+                'select'    => [1],
+                'where'     => ['owner_user_id = ?', 'basket_id = ?', 'group_id = ?'],
+                'data'      => [$aArgs['userId'], $aArgs['basketId'], $aArgs['groupId']]
+            ]);
+            if (!empty($redirectedBasket[0])) {
+                return ['errors' => 'Basket out of perimeter (redirected)', 'code' => 403];
+            }
+        } else {
+            $redirectedBasket = RedirectBasketModel::get([
+                'select'    => ['actual_user_id'],
+                'where'     => ['owner_user_id = ?', 'basket_id = ?', 'group_id = ?'],
+                'data'      => [$aArgs['userId'], $aArgs['basketId'], $aArgs['groupId']]
             ]);
+            if (empty($redirectedBasket[0]) || $redirectedBasket[0]['actual_user_id'] != $aArgs['currentUserId']) {
+                return ['errors' => 'Basket out of perimeter', 'code' => 403];
+            }
+        }
 
-            foreach ($rawEntities as $key => $value) {
-                $entity = EntityModel::getByEntityId(['select' => ['entity_label'], 'entityId' => $value['destination']]);
-                $entities[] = [
-                    'entityid'  => $value['destination'],
-                    'label'     => $entity['entity_label'],
-                    'count'     => $value['count']
-                ];
+        $user = UserModel::getById(['id' => $aArgs['userId'], 'select' => ['user_id']]);
+        $groups = UserModel::getGroupsByUserId(['userId' => $user['user_id']]);
+        $groupFound = false;
+        foreach ($groups as $value) {
+            if ($value['id'] == $aArgs['groupId']) {
+                $groupFound = true;
             }
         }
+        if (!$groupFound) {
+            return ['errors' => 'Group is not linked to this user', 'code' => 400];
+        }
+
+        $isBasketLinked = GroupBasketModel::get(['select' => [1], 'where' => ['basket_id = ?', 'group_id = ?'], 'data' => [$aArgs['basketId'], $group['group_id']]]);
+        if (empty($isBasketLinked)) {
+            return ['errors' => 'Group is not linked to this basket', 'code' => 400];
+        }
 
-        return $response->withJson(['resources' => $resources, 'count' => $count, 'entities' => $entities, 'basketLabel' => $basket['basket_name']]);
+        return ['success' => 'success'];
     }
 }