From 6f757d6f9fa14a70963b73931b3975be9ed1a0f8 Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Thu, 1 Mar 2018 17:38:17 +0100
Subject: [PATCH] [REFACTORING] Service to src + clean core

---
 core/Models/ValidatorModel.php                | 94 -------------------
 core/Test/ContactControllerTest.php           |  4 +-
 .../Models/ProcessConvertModelAbstract.php    |  2 +-
 .../Models/ProcessFulltextModelAbstract.php   |  2 +-
 .../Models/ProcessThumbnailsModelAbstract.php |  2 +-
 modules/visa/Controllers/VisaController.php   |  2 +-
 modules/visa/Models/VisaModelAbstract.php     |  2 +-
 phpunit.xml                                   |  1 -
 .../action/controllers/ActionController.php   |  2 +-
 .../models/AttachmentModelAbstract.php        |  2 +-
 .../basket/controllers/BasketController.php   |  2 +-
 .../controllers/DocserverController.php       |  2 +-
 .../controllers/DocserverTypeController.php   |  2 +-
 .../doctype/controllers/DoctypeController.php |  2 +-
 .../controllers/FirstLevelController.php      |  2 +-
 .../controllers/SecondLevelController.php     |  2 +-
 .../entity/controllers/EntityController.php   |  2 +-
 .../controllers/ListTemplateController.php    |  2 +-
 src/app/group/controllers/GroupController.php |  2 +-
 src/app/group/models/GroupModelAbstract.php   |  2 +-
 .../app/group/models}/ServiceModel.php        |  4 +-
 .../group/models}/ServiceModelAbstract.php    | 39 +++++---
 .../history/controllers/HistoryController.php |  2 +-
 .../controllers/NotificationController.php    |  2 +-
 .../NotificationScheduleController.php        |  2 +-
 .../controllers/ParameterController.php       |  2 +-
 .../controllers/PriorityController.php        |  2 +-
 .../report/controllers/ReportController.php   |  2 +-
 .../resource/controllers/ResController.php    |  2 +-
 .../status/controllers/StatusController.php   |  2 +-
 src/app/user/controllers/UserController.php   |  2 +-
 src/app/user/models/UserModelAbstract.php     | 15 ---
 .../controllers/AutoCompleteController.php    |  2 +-
 src/core/controllers/CoreController.php       |  2 +-
 34 files changed, 57 insertions(+), 156 deletions(-)
 delete mode 100755 core/Models/ValidatorModel.php
 rename {core/Models => src/app/group/models}/ServiceModel.php (78%)
 mode change 100755 => 100644
 rename {core/Models => src/app/group/models}/ServiceModelAbstract.php (93%)
 mode change 100755 => 100644

diff --git a/core/Models/ValidatorModel.php b/core/Models/ValidatorModel.php
deleted file mode 100755
index c021c0aac32..00000000000
--- a/core/Models/ValidatorModel.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-
-/**
-* Copyright Maarch since 2008 under licence GPLv3.
-* See LICENCE.txt file at the root folder for more details.
-* This file is part of Maarch software.
-*
-*/
-
-/**
-* @brief Validator Model
-* @author dev@maarch.org
-* @ingroup core
-*/
-
-namespace Core\Models;
-
-use Respect\Validation\Validator;
-
-class ValidatorModel
-{
-    public static function notEmpty(array $aArgs, $aKeys)
-    {
-        if (!Validator::arrayType()->notEmpty()->validate($aArgs)) {
-            throw new \Exception('First argument must be a non empty array');
-        }
-        foreach ($aKeys as $key) {
-            if (!Validator::notEmpty()->validate($aArgs[$key])) {
-                throw new \Exception("Argument {$key} is empty");
-            }
-        }
-    }
-
-    public static function intVal(array $aArgs, $aKeys)
-    {
-        foreach ($aKeys as $key) {
-            if (empty($aArgs[$key])) {
-                continue;
-            }
-            if (!Validator::intVal()->validate($aArgs[$key])) {
-                throw new \Exception("Argument {$key} is not an integer (value)");
-            }
-        }
-    }
-
-    public static function intType(array $aArgs, $aKeys)
-    {
-        foreach ($aKeys as $key) {
-            if (empty($aArgs[$key])) {
-                continue;
-            }
-            if (!Validator::intType()->validate($aArgs[$key])) {
-                throw new \Exception("Argument {$key} is not an integer (type)");
-            }
-        }
-    }
-
-    public static function stringType(array $aArgs, $aKeys)
-    {
-        foreach ($aKeys as $key) {
-            if (empty($aArgs[$key])) {
-                continue;
-            }
-            if (!Validator::stringType()->validate($aArgs[$key])) {
-                throw new \Exception("Argument {$key} is not a string (type)");
-            }
-        }
-    }
-
-    public static function arrayType(array $aArgs, $aKeys)
-    {
-        foreach ($aKeys as $key) {
-            if (empty($aArgs[$key])) {
-                continue;
-            }
-            if (!Validator::arrayType()->validate($aArgs[$key])) {
-                throw new \Exception("Argument {$key} is not an array (type)");
-            }
-        }
-    }
-
-    public static function boolType(array $aArgs, $aKeys)
-    {
-        foreach ($aKeys as $key) {
-            if (empty($aArgs[$key])) {
-                continue;
-            }
-            if (!Validator::boolType()->validate($aArgs[$key])) {
-                throw new \Exception("Argument {$key} is not a boolean (type)");
-            }
-        }
-    }
-
-}
diff --git a/core/Test/ContactControllerTest.php b/core/Test/ContactControllerTest.php
index 10ca06eb345..efefe7ea876 100644
--- a/core/Test/ContactControllerTest.php
+++ b/core/Test/ContactControllerTest.php
@@ -102,10 +102,10 @@ class ContactControllerTest extends TestCase
         //  READ
         $contact = \Contact\models\ContactModel::getById(['id' => self::$id]);
         $this->assertInternalType('array', $contact);
-        $this->assertEmpty(null, $contact);
+        $this->assertEmpty($contact);
 
         $contact = \Contact\models\ContactModel::getByAddressId(['addressId' => self::$addressId]);
         $this->assertInternalType('array', $contact);
-        $this->assertEmpty(null, $contact);
+        $this->assertEmpty($contact);
     }
 }
diff --git a/modules/convert/Models/ProcessConvertModelAbstract.php b/modules/convert/Models/ProcessConvertModelAbstract.php
index 67e9e0bc8c5..e4e17b99b30 100644
--- a/modules/convert/Models/ProcessConvertModelAbstract.php
+++ b/modules/convert/Models/ProcessConvertModelAbstract.php
@@ -15,9 +15,9 @@
 
 namespace Convert\Models;
 
-use Core\Models\ValidatorModel;
 use History\controllers\HistoryController;
 use SrcCore\models\DatabaseModel;
+use SrcCore\models\ValidatorModel;
 
 class ProcessConvertModelAbstract
 {
diff --git a/modules/convert/Models/ProcessFulltextModelAbstract.php b/modules/convert/Models/ProcessFulltextModelAbstract.php
index 14a1c8626bf..1bb191d8c82 100644
--- a/modules/convert/Models/ProcessFulltextModelAbstract.php
+++ b/modules/convert/Models/ProcessFulltextModelAbstract.php
@@ -15,9 +15,9 @@
 
 namespace Convert\Models;
 
-use Core\Models\ValidatorModel;
 use History\controllers\HistoryController;
 use SrcCore\models\DatabaseModel;
+use SrcCore\models\ValidatorModel;
 
 class ProcessFulltextModelAbstract
 {
diff --git a/modules/convert/Models/ProcessThumbnailsModelAbstract.php b/modules/convert/Models/ProcessThumbnailsModelAbstract.php
index f5e5e6be102..77aba37e90c 100644
--- a/modules/convert/Models/ProcessThumbnailsModelAbstract.php
+++ b/modules/convert/Models/ProcessThumbnailsModelAbstract.php
@@ -15,9 +15,9 @@
 
 namespace Convert\Models;
 
-use Core\Models\ValidatorModel;
 use History\controllers\HistoryController;
 use SrcCore\models\DatabaseModel;
+use SrcCore\models\ValidatorModel;
 
 class ProcessThumbnailsModelAbstract
 {
diff --git a/modules/visa/Controllers/VisaController.php b/modules/visa/Controllers/VisaController.php
index 54119c5cbf6..d2aed0ffc7c 100755
--- a/modules/visa/Controllers/VisaController.php
+++ b/modules/visa/Controllers/VisaController.php
@@ -19,8 +19,8 @@ use Action\models\ActionModel;
 use Contact\models\ContactModel;
 use Core\Models\LangModel;
 use Docserver\models\DocserverModel;
-use Core\Models\ServiceModel;
 use Entity\models\ListInstanceModel;
+use Group\models\ServiceModel;
 use Link\models\LinkModel;
 use Note\models\NoteModel;
 use Psr\Http\Message\RequestInterface;
diff --git a/modules/visa/Models/VisaModelAbstract.php b/modules/visa/Models/VisaModelAbstract.php
index 3f0ce0d8370..330413e117f 100755
--- a/modules/visa/Models/VisaModelAbstract.php
+++ b/modules/visa/Models/VisaModelAbstract.php
@@ -9,8 +9,8 @@
 
 namespace Visa\Models;
 
-use Core\Models\ValidatorModel;
 use SrcCore\models\DatabaseModel;
+use SrcCore\models\ValidatorModel;
 
 class VisaModelAbstract
 {
diff --git a/phpunit.xml b/phpunit.xml
index aee9cda8f0b..8df87220d6d 100755
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -27,7 +27,6 @@
       <whitelist>
           <directory suffix="Test.php">core/Test</directory>
           <directory suffix=".php">src</directory>
-          <directory suffix=".php">core/Models</directory>
           <directory suffix=".php">modules/visa/Controllers</directory>
           <directory suffix=".php">modules/visa/Models</directory>          
           <directory suffix=".php">modules/convert/Controllers</directory>
diff --git a/src/app/action/controllers/ActionController.php b/src/app/action/controllers/ActionController.php
index a7d49d97bc8..5f2785a6e43 100644
--- a/src/app/action/controllers/ActionController.php
+++ b/src/app/action/controllers/ActionController.php
@@ -16,7 +16,7 @@ use Respect\Validation\Validator;
 use Action\models\ActionModel;
 use SrcCore\models\CoreConfigModel;
 use Status\models\StatusModel;
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
 
diff --git a/src/app/attachment/models/AttachmentModelAbstract.php b/src/app/attachment/models/AttachmentModelAbstract.php
index e96d5be5bc9..953380669bc 100644
--- a/src/app/attachment/models/AttachmentModelAbstract.php
+++ b/src/app/attachment/models/AttachmentModelAbstract.php
@@ -14,9 +14,9 @@
 
 namespace Attachment\models;
 
-use Core\Models\ValidatorModel;
 use SrcCore\models\CoreConfigModel;
 use SrcCore\models\DatabaseModel;
+use SrcCore\models\ValidatorModel;
 
 class AttachmentModelAbstract
 {
diff --git a/src/app/basket/controllers/BasketController.php b/src/app/basket/controllers/BasketController.php
index 5393f3a0596..b1d38b1ddca 100644
--- a/src/app/basket/controllers/BasketController.php
+++ b/src/app/basket/controllers/BasketController.php
@@ -16,7 +16,7 @@ namespace Basket\controllers;
 
 use Basket\models\BasketModel;
 use Action\models\ActionModel;
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use SrcCore\models\ValidatorModel;
 use Group\models\GroupModel;
 use History\controllers\HistoryController;
diff --git a/src/app/docserver/controllers/DocserverController.php b/src/app/docserver/controllers/DocserverController.php
index d70edfe302d..ff603532323 100644
--- a/src/app/docserver/controllers/DocserverController.php
+++ b/src/app/docserver/controllers/DocserverController.php
@@ -14,7 +14,7 @@
 
 namespace Docserver\controllers;
 
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
 use SrcCore\models\ValidatorModel;
diff --git a/src/app/docserver/controllers/DocserverTypeController.php b/src/app/docserver/controllers/DocserverTypeController.php
index 39a35bc0a8b..0766d2ab446 100644
--- a/src/app/docserver/controllers/DocserverTypeController.php
+++ b/src/app/docserver/controllers/DocserverTypeController.php
@@ -14,7 +14,7 @@
 
 namespace Docserver\controllers;
 
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Docserver\models\DocserverTypeModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
diff --git a/src/app/doctype/controllers/DoctypeController.php b/src/app/doctype/controllers/DoctypeController.php
index 44eca38ea8b..bc8eda744cb 100644
--- a/src/app/doctype/controllers/DoctypeController.php
+++ b/src/app/doctype/controllers/DoctypeController.php
@@ -19,7 +19,7 @@ use Doctype\models\DoctypeModel;
 use Doctype\models\DoctypeExtModel;
 use Doctype\models\DoctypeIndexesModel;
 use Doctype\models\TemplateDoctypeModel;
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Template\models\TemplateModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
diff --git a/src/app/doctype/controllers/FirstLevelController.php b/src/app/doctype/controllers/FirstLevelController.php
index 9bc7a638349..1059867be35 100644
--- a/src/app/doctype/controllers/FirstLevelController.php
+++ b/src/app/doctype/controllers/FirstLevelController.php
@@ -17,7 +17,7 @@ use Doctype\models\FirstLevelModel;
 use Doctype\models\SecondLevelModel;
 use Doctype\models\DoctypeModel;
 use Folder\models\FolderTypeModel;
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
 use Template\models\TemplateModel;
diff --git a/src/app/doctype/controllers/SecondLevelController.php b/src/app/doctype/controllers/SecondLevelController.php
index 8c495e8f3c8..196f499ba49 100644
--- a/src/app/doctype/controllers/SecondLevelController.php
+++ b/src/app/doctype/controllers/SecondLevelController.php
@@ -17,7 +17,7 @@ use Respect\Validation\Validator;
 use Doctype\models\FirstLevelModel;
 use Doctype\models\SecondLevelModel;
 use Doctype\models\DoctypeModel;
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
 
diff --git a/src/app/entity/controllers/EntityController.php b/src/app/entity/controllers/EntityController.php
index 47601df20d6..e4f542fd032 100644
--- a/src/app/entity/controllers/EntityController.php
+++ b/src/app/entity/controllers/EntityController.php
@@ -15,11 +15,11 @@
 namespace Entity\controllers;
 
 use Basket\models\BasketModel;
-use Core\Models\ServiceModel;
 use Entity\models\EntityModel;
 use Entity\models\ListInstanceModel;
 use Entity\models\ListTemplateModel;
 use Entity\models\UserEntityModel;
+use Group\models\ServiceModel;
 use History\controllers\HistoryController;
 use Resource\models\ResModel;
 use Respect\Validation\Validator;
diff --git a/src/app/entity/controllers/ListTemplateController.php b/src/app/entity/controllers/ListTemplateController.php
index cbe4b4797bb..98b2c558865 100644
--- a/src/app/entity/controllers/ListTemplateController.php
+++ b/src/app/entity/controllers/ListTemplateController.php
@@ -14,7 +14,7 @@
 
 namespace Entity\controllers;
 
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use SrcCore\models\ValidatorModel;
 use Entity\models\EntityModel;
 use Entity\models\ListTemplateModel;
diff --git a/src/app/group/controllers/GroupController.php b/src/app/group/controllers/GroupController.php
index 52f8d2c2c99..10e517f762f 100644
--- a/src/app/group/controllers/GroupController.php
+++ b/src/app/group/controllers/GroupController.php
@@ -2,7 +2,7 @@
 
 namespace Group\controllers;
 
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Group\models\GroupModel;
 use Respect\Validation\Validator;
 use Slim\Http\Request;
diff --git a/src/app/group/models/GroupModelAbstract.php b/src/app/group/models/GroupModelAbstract.php
index 70a1f0b2dd3..f16efba9343 100644
--- a/src/app/group/models/GroupModelAbstract.php
+++ b/src/app/group/models/GroupModelAbstract.php
@@ -14,7 +14,7 @@
 
 namespace Group\models;
 
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Group\controllers\GroupController;
 use SrcCore\models\DatabaseModel;
 use SrcCore\models\ValidatorModel;
diff --git a/core/Models/ServiceModel.php b/src/app/group/models/ServiceModel.php
old mode 100755
new mode 100644
similarity index 78%
rename from core/Models/ServiceModel.php
rename to src/app/group/models/ServiceModel.php
index 3b326f569b8..fcb29eb9d70
--- a/core/Models/ServiceModel.php
+++ b/src/app/group/models/ServiceModel.php
@@ -10,12 +10,10 @@
 /**
 * @brief Service Model
 * @author dev@maarch.org
-* @ingroup core
 */
 
-namespace Core\Models;
+namespace Group\models;
 
 class ServiceModel extends ServiceModelAbstract
 {
-    // Do your stuff in this class
 }
diff --git a/core/Models/ServiceModelAbstract.php b/src/app/group/models/ServiceModelAbstract.php
old mode 100755
new mode 100644
similarity index 93%
rename from core/Models/ServiceModelAbstract.php
rename to src/app/group/models/ServiceModelAbstract.php
index b5038d0103b..a7667d0b565
--- a/core/Models/ServiceModelAbstract.php
+++ b/src/app/group/models/ServiceModelAbstract.php
@@ -10,13 +10,13 @@
  * @brief Service Model
  *
  * @author dev@maarch.org
- * @ingroup core
  */
 
-namespace Core\Models;
+namespace Group\models;
 
 use SrcCore\models\CoreConfigModel;
-use User\models\UserModel;
+use SrcCore\models\DatabaseModel;
+use SrcCore\models\ValidatorModel;
 
 class ServiceModelAbstract
 {
@@ -252,16 +252,14 @@ class ServiceModelAbstract
             if ($path) {
                 $xmlfile = simplexml_load_file($path);
                 foreach ($xmlfile->MENU as $value) {
-                    $id = (string) $value->id;
-
                     $label = defined((string) $value->libconst) ? constant((string) $value->libconst) : (string) $value->libconst;
 
                     $modulesServices['menuList'][] = [
-                        'id' => (string) $value->id,
-                        'label' => $label,
-                        'link' => (string) $value->url,
-                        'icon' => (string) $value->style,
-                        'angular' => empty((string) $value->angular) ? 'false' : (string) $value->angular,
+                        'id'        => (string) $value->id,
+                        'label'     => $label,
+                        'link'      => (string) $value->url,
+                        'icon'      => (string) $value->style,
+                        'angular'   => empty((string) $value->angular) ? 'false' : (string) $value->angular,
                     ];
                 }
             }
@@ -270,7 +268,7 @@ class ServiceModelAbstract
         return $modulesServices;
     }
 
-    public static function getApplicationAdministrationMenuByUserServices(array $aArgs = [])
+    public static function getApplicationAdministrationMenuByUserServices(array $aArgs)
     {
         ValidatorModel::notEmpty($aArgs, ['userServices']);
         ValidatorModel::arrayType($aArgs, ['userServices']);
@@ -341,7 +339,7 @@ class ServiceModelAbstract
         ValidatorModel::notEmpty($aArgs, ['userId']);
         ValidatorModel::stringType($aArgs, ['userId']);
 
-        $rawServicesStoredInDB = UserModel::getServicesById(['userId' => $aArgs['userId']]);
+        $rawServicesStoredInDB = ServiceModel::getByUserId(['userId' => $aArgs['userId']]);
         $servicesStoredInDB = [];
         foreach ($rawServicesStoredInDB as $value) {
             $servicesStoredInDB[] = $value['service_id'];
@@ -358,6 +356,21 @@ class ServiceModelAbstract
         return $administration;
     }
 
+    public static function getByUserId(array $aArgs)
+    {
+        ValidatorModel::notEmpty($aArgs, ['userId']);
+        ValidatorModel::stringType($aArgs, ['userId']);
+
+        $aServices = DatabaseModel::select([
+            'select'    => ['usergroups_services.service_id'],
+            'table'     => ['usergroup_content, usergroups_services'],
+            'where'     => ['usergroup_content.group_id = usergroups_services.group_id', 'usergroup_content.user_id = ?'],
+            'data'      => [$aArgs['userId']]
+        ]);
+
+        return $aServices;
+    }
+
     public static function hasService(array $aArgs)
     {
         ValidatorModel::notEmpty($aArgs, ['id', 'userId', 'location', 'type']);
@@ -366,7 +379,7 @@ class ServiceModelAbstract
         if ($aArgs['userId'] == 'superadmin') {
             return true;
         }
-        $rawServicesStoredInDB = UserModel::getServicesById(['userId' => $aArgs['userId']]);
+        $rawServicesStoredInDB = ServiceModel::getByUserId(['userId' => $aArgs['userId']]);
         $servicesStoredInDB = [];
         foreach ($rawServicesStoredInDB as $value) {
             $servicesStoredInDB[] = $value['service_id'];
diff --git a/src/app/history/controllers/HistoryController.php b/src/app/history/controllers/HistoryController.php
index ee854eedaf3..68882e3ab2c 100644
--- a/src/app/history/controllers/HistoryController.php
+++ b/src/app/history/controllers/HistoryController.php
@@ -14,7 +14,7 @@
 
 namespace History\controllers;
 
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use SrcCore\models\TextFormatModel;
 use SrcCore\models\ValidatorModel;
 use History\models\HistoryModel;
diff --git a/src/app/notification/controllers/NotificationController.php b/src/app/notification/controllers/NotificationController.php
index f1fc61ab09f..3c45e59ed6a 100644
--- a/src/app/notification/controllers/NotificationController.php
+++ b/src/app/notification/controllers/NotificationController.php
@@ -19,7 +19,7 @@ use History\controllers\HistoryController;
 use Respect\Validation\Validator;
 use Notification\models\NotificationModel;
 use Notification\models\NotificationScheduleModel;
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
 use SrcCore\models\CoreConfigModel;
diff --git a/src/app/notification/controllers/NotificationScheduleController.php b/src/app/notification/controllers/NotificationScheduleController.php
index 6a92e0074f4..ef0da3f79e7 100644
--- a/src/app/notification/controllers/NotificationScheduleController.php
+++ b/src/app/notification/controllers/NotificationScheduleController.php
@@ -18,7 +18,7 @@ namespace Notification\controllers;
 use Respect\Validation\Validator;
 use Notification\models\NotificationModel;
 use Notification\models\NotificationScheduleModel;
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
 use SrcCore\models\CoreConfigModel;
diff --git a/src/app/parameter/controllers/ParameterController.php b/src/app/parameter/controllers/ParameterController.php
index 261d73c742d..a9676789d23 100644
--- a/src/app/parameter/controllers/ParameterController.php
+++ b/src/app/parameter/controllers/ParameterController.php
@@ -17,7 +17,7 @@
 
 namespace Parameter\controllers;
 
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use History\controllers\HistoryController;
 use Parameter\models\ParameterModel;
 use Respect\Validation\Validator;
diff --git a/src/app/priority/controllers/PriorityController.php b/src/app/priority/controllers/PriorityController.php
index 24ac49d6b3d..880ab5e60f0 100644
--- a/src/app/priority/controllers/PriorityController.php
+++ b/src/app/priority/controllers/PriorityController.php
@@ -2,7 +2,7 @@
 
 namespace Priority\controllers;
 
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use History\controllers\HistoryController;
 use Priority\models\PriorityModel;
 use Respect\Validation\Validator;
diff --git a/src/app/report/controllers/ReportController.php b/src/app/report/controllers/ReportController.php
index c2326b2c1e7..6af4bdceff9 100644
--- a/src/app/report/controllers/ReportController.php
+++ b/src/app/report/controllers/ReportController.php
@@ -14,7 +14,7 @@
 
 namespace Report\controllers;
 
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Group\models\GroupModel;
 use History\controllers\HistoryController;
 use Report\models\ReportModel;
diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php
index 8c1f7dccf16..5c912a91e84 100755
--- a/src/app/resource/controllers/ResController.php
+++ b/src/app/resource/controllers/ResController.php
@@ -17,7 +17,7 @@ namespace Resource\controllers;
 use Basket\models\BasketModel;
 use Note\models\NoteModel;
 use SrcCore\controllers\StoreController;
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Status\models\StatusModel;
 use SrcCore\models\ValidatorModel;
 use History\controllers\HistoryController;
diff --git a/src/app/status/controllers/StatusController.php b/src/app/status/controllers/StatusController.php
index 939948fb5b3..f29985a9044 100755
--- a/src/app/status/controllers/StatusController.php
+++ b/src/app/status/controllers/StatusController.php
@@ -15,11 +15,11 @@
 
 namespace Status\controllers;
 
+use Group\models\ServiceModel;
 use History\controllers\HistoryController;
 use Respect\Validation\Validator;
 use Status\models\StatusModel;
 use Status\models\StatusImagesModel;
-use Core\Models\ServiceModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
 
diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php
index eb99d0b6085..e86117126df 100644
--- a/src/app/user/controllers/UserController.php
+++ b/src/app/user/controllers/UserController.php
@@ -15,7 +15,7 @@
 namespace User\controllers;
 
 use Basket\models\BasketModel;
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Entity\models\EntityModel;
 use Entity\models\ListTemplateModel;
 use Group\models\GroupModel;
diff --git a/src/app/user/models/UserModelAbstract.php b/src/app/user/models/UserModelAbstract.php
index 2f0511eaa4a..9da6e5f9f70 100644
--- a/src/app/user/models/UserModelAbstract.php
+++ b/src/app/user/models/UserModelAbstract.php
@@ -513,21 +513,6 @@ class UserModelAbstract
         return $aEntities;
     }
 
-    public static function getServicesById(array $aArgs = [])
-    {
-        ValidatorModel::notEmpty($aArgs, ['userId']);
-        ValidatorModel::stringType($aArgs, ['userId']);
-
-        $aServices = DatabaseModel::select([
-            'select'    => ['usergroups_services.service_id'],
-            'table'     => ['usergroup_content, usergroups_services'],
-            'where'     => ['usergroup_content.group_id = usergroups_services.group_id', 'usergroup_content.user_id = ?'],
-            'data'      => [$aArgs['userId']]
-        ]);
-
-        return $aServices;
-    }
-
     public static function updateStatus(array $aArgs)
     {
         ValidatorModel::notEmpty($aArgs, ['id', 'status']);
diff --git a/src/core/controllers/AutoCompleteController.php b/src/core/controllers/AutoCompleteController.php
index c1eda78876d..ea5162adbcc 100644
--- a/src/core/controllers/AutoCompleteController.php
+++ b/src/core/controllers/AutoCompleteController.php
@@ -14,7 +14,7 @@
 
 namespace SrcCore\controllers;
 
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
 use Entity\models\EntityModel;
diff --git a/src/core/controllers/CoreController.php b/src/core/controllers/CoreController.php
index 49020c9edbb..ed68d240ae1 100644
--- a/src/core/controllers/CoreController.php
+++ b/src/core/controllers/CoreController.php
@@ -15,7 +15,7 @@
 
 namespace SrcCore\controllers;
 
-use Core\Models\ServiceModel;
+use Group\models\ServiceModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
 use SrcCore\models\CoreConfigModel;
-- 
GitLab