diff --git a/apps/maarch_entreprise/Models/ActionModelAbstract.php b/apps/maarch_entreprise/Models/ActionModelAbstract.php index 9dce15e8928d7c9ca847766051299f65f526a952..36c56a98dc0250f015afef020623d272ce437ceb 100755 --- a/apps/maarch_entreprise/Models/ActionModelAbstract.php +++ b/apps/maarch_entreprise/Models/ActionModelAbstract.php @@ -20,24 +20,6 @@ use Core\Models\ValidatorModel; class ActionModelAbstract { - public static function getActionPageById(array $aArgs = []) { - ValidatorModel::notEmpty($aArgs, ['id']); - ValidatorModel::intVal($aArgs, ['id']); - - $action = DatabaseModel::select([ - 'select' => ['action_page'], - 'table' => ['actions'], - 'where' => ['id = ? AND enabled = ?'], - 'data' => [$aArgs['id'], 'Y'] - ]); - - if (empty($action[0])) { - return ''; - } - - return $action[0]['action_page']; - } - public static function getDefaultActionByGroupBasketId(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['groupId', 'basketId']); ValidatorModel::stringType($aArgs, ['groupId', 'basketId']); diff --git a/apps/maarch_entreprise/class/class_lists_Abstract.php b/apps/maarch_entreprise/class/class_lists_Abstract.php index 3d1db4c02b8d9cd334e9f9d65d80a1a37a074b8b..432c257fbba24770e3995082d7c94cb03ff195d3 100755 --- a/apps/maarch_entreprise/class/class_lists_Abstract.php +++ b/apps/maarch_entreprise/class/class_lists_Abstract.php @@ -1423,7 +1423,7 @@ abstract class lists_Abstract extends Database $keyValue = $resultTheLine[$i]['value']; } } - $sAction = \Apps\Models\ActionModel::getActionPageById(['id' => $this->params['defaultAction']]); + $sAction = \Core\Models\ActionModel::getActionPageById(['id' => $this->params['defaultAction']]); if ($sAction == 'visa_mail') { if (PROD_MODE) { $return = 'onmouseover="this.style.cursor=\'pointer\';" onClick="islockForSignatureBook(\'' .$keyValue. '\', \'' .$_SESSION['current_basket']['id']. '\', \'' .$_SESSION['current_basket']['group_id']. '\', true)"'; @@ -3299,7 +3299,7 @@ abstract class lists_Abstract extends Database !empty($this->params['defaultAction']) && $lineIsDisabled === false ) { - $sAction = \Apps\Models\ActionModel::getActionPageById(['id' => $this->params['defaultAction']]); + $sAction = \Core\Models\ActionModel::getActionPageById(['id' => $this->params['defaultAction']]); if ($sAction == 'visa_mail') { if (PROD_MODE) { $content .= '<td'.$columnStyle.' onmouseover="this.style.cursor=\'pointer\';" ' diff --git a/core/Controllers/ActionsController.php b/core/Controllers/ActionController.php old mode 100755 new mode 100644 similarity index 88% rename from core/Controllers/ActionsController.php rename to core/Controllers/ActionController.php index 65a23db241469bfe619c5f5032c6fe45b423c308..58beb2b37d85d5bb18c453dd28708303723b0633 --- a/core/Controllers/ActionsController.php +++ b/core/Controllers/ActionController.php @@ -4,7 +4,7 @@ * See LICENCE.txt file at the root folder for more details. * This file is part of Maarch software. -* @brief ActionsController +* @brief ActionController * @author dev <dev@maarch.org> * @ingroup core */ @@ -14,16 +14,16 @@ namespace Core\Controllers; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ResponseInterface; use Respect\Validation\Validator; -use Core\Models\ActionsModel; +use Core\Models\ActionModel; use Core\Models\StatusModel; use Core\Models\LangModel; -class ActionsController +class ActionController { public function getForAdministration(RequestInterface $request, ResponseInterface $response) { - $obj ['actions']= ActionsModel::getList(); + $obj ['actions']= ActionModel::getList(); return $response->withJson($obj); } @@ -32,7 +32,7 @@ class ActionsController { if (isset($aArgs['id'])) { $id = $aArgs['id']; - $obj['action'] = ActionsModel::getById(['id' => $id]); + $obj['action'] = ActionModel::getById(['id' => $id]); } else { return $response ->withStatus(500) @@ -69,7 +69,7 @@ class ActionsController } $obj['action']['actionCategories'] = $arrActionCategories; - $obj['categoriesList'] = ActionsModel:: getLettersBoxCategories(); + $obj['categoriesList'] = ActionModel:: getLettersBoxCategories(); //array of id categoriesList foreach ($obj['categoriesList'] as $key => $category) { @@ -83,9 +83,9 @@ class ActionsController $obj['statusList'] = StatusModel::getList(); array_unshift($obj['statusList'], ['id'=>'_NOSTATUS_','label_status'=> _UNCHANGED]); - $obj['action_pagesList']=ActionsModel::getAction_pages(); + $obj['action_pagesList']=ActionModel::getAction_pages(); array_unshift($obj['action_pagesList']['actionsPageList'], ['id'=>'','label'=> _NO_PAGE, 'name'=>'', 'origin'=>'']); - $obj['keywordsList']=ActionsModel::getKeywords(); + $obj['keywordsList']=ActionModel::getKeywords(); return $response->withJson($obj); } @@ -107,12 +107,12 @@ class ActionsController ->withJson(['errors' => $errors]); } - $return = ActionsModel::create($aArgs); + $return = ActionModel::create($aArgs); if ($return) { $id = $aArgs['id']; - $obj = max(ActionsModel::getList()); + $obj = max(ActionModel::getList()); } else { return $response ->withStatus(500) @@ -144,11 +144,11 @@ class ActionsController ->withJson(['errors' => $errors]); } - $return = ActionsModel::update($obj); + $return = ActionModel::update($obj); if ($return) { $id = $aArgs['id']; - $obj = ActionsModel::getById(['id' => $id]); + $obj = ActionModel::getById(['id' => $id]); } else { return $response ->withStatus(500) @@ -168,7 +168,7 @@ class ActionsController { if (isset($aArgs['id'])) { $id = $aArgs['id']; - $obj = ActionsModel::delete(['id' => $id]); + ActionModel::delete(['id' => $id]); } else { return $response ->withStatus(500) @@ -178,7 +178,7 @@ class ActionsController return $response->withJson( [ 'success' => _ACTION. ' <b>' . $id .'</b> ' ._DELETED, - 'action' => ActionsModel::getList() + 'action' => ActionModel::getList() ] ); } @@ -199,7 +199,7 @@ class ActionsController } if ($mode == 'update') { - $obj = ActionsModel::getById(['id' => $aArgs['id']]); + $obj = ActionModel::getById(['id' => $aArgs['id']]); if (empty($obj)) { @@ -244,16 +244,16 @@ class ActionsController $obj['action']['action_page'] = ''; $obj['action']['id_status'] = '_NOSTATUS_'; $obj['action']['create_id'] = false; - $obj['categoriesList'] = ActionsModel::getLettersBoxCategories(); + $obj['categoriesList'] = ActionModel::getLettersBoxCategories(); foreach ($obj['categoriesList'] as $key => $value) { $obj['categoriesList'][$key]['selected'] = true; } $obj['statusList'] = StatusModel::getList(); array_unshift($obj['statusList'], ['id'=>'_NOSTATUS_','label_status'=> _UNCHANGED]); - $obj['action_pagesList'] = ActionsModel::getAction_pages(); + $obj['action_pagesList'] = ActionModel::getAction_pages(); array_unshift($obj['action_pagesList']['actionsPageList'], ['id'=>'','label'=> _NO_PAGE, 'name'=>'', 'origin'=>'']); - $obj['keywordsList']=ActionsModel::getKeywords(); + $obj['keywordsList'] = ActionModel::getKeywords(); $obj['lang'] = LangModel::getActionsForAdministrationLang(); return $response->withJson($obj); diff --git a/core/Controllers/HistoryController.php b/core/Controllers/HistoryController.php index a6c4cb7785c47649bb44642ae725c265d64b979a..f9d670de83e73cb2f3bf7046e2cf90f031ca999b 100755 --- a/core/Controllers/HistoryController.php +++ b/core/Controllers/HistoryController.php @@ -22,7 +22,6 @@ use Psr\Http\Message\ResponseInterface; use Core\Models\HistoryModel; use Core\Models\ServiceModel; use Core\Models\ValidatorModel; -use Core\Controllers\UtilsController; use Notifications\Controllers\NotificationsEventsController; class HistoryController @@ -47,11 +46,6 @@ class HistoryController if(empty($aArgs['level'])){ $aArgs['level'] = 'DEBUG'; } - if (empty($_SESSION['user']['UserId'])) { - $user = 'BOT'; - } else { - $user = $_SESSION['user']['UserId']; - } $traceInformations = [ 'WHERE' => $aArgs['tableName'], @@ -158,7 +152,7 @@ class HistoryController ); $logLine = TextFormatModel::htmlWasher($logLine); - $logLine = UtilsController::wd_remove_accents(['string' => $logLine]); + $logLine = TextFormatModel::removeAccent(['string' => $logLine]); HistoryModel::writeLog([ 'logger' => $logger, diff --git a/core/Controllers/LogsController.php b/core/Controllers/LogsController.php index 3018b047332439bf4c61687140bcb00bf4f435a2..666c49a1ba2209fe5e53549fcfac80f336eda92d 100644 --- a/core/Controllers/LogsController.php +++ b/core/Controllers/LogsController.php @@ -15,11 +15,11 @@ namespace Core\Controllers; +use Core\Models\TextFormatModel; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ResponseInterface; use Core\Models\ValidatorModel; use Core\Controllers\HistoryController; -use Core\Controllers\UtilsController; if (!defined('_LOG4PHP')) define( @@ -194,11 +194,8 @@ class LogsController $aArgs['message'] = str_replace("\n", '\n', $aArgs['message']); // Old method : - $aArgs['message'] = UtilsController::wash_html( - $aArgs['message'], - '' - ); - $aArgs['message'] = UtilsController::wd_remove_accents(['string' => $aArgs['message']]); + $aArgs['message'] = TextFormatModel::htmlWasher($aArgs['message'], ''); + $aArgs['message'] = TextFormatModel::removeAccent(['string' => $aArgs['message']]); if(!empty($_SESSION['user']['UserId'])){ $aArgs['message'] = '[' . $_SESSION['user']['UserId'] . '] ' . $aArgs['message']; diff --git a/core/Controllers/UtilsController.php b/core/Controllers/UtilsController.php deleted file mode 100644 index a1e136301e8141d0d48cd99d2fd7ec6983d3761f..0000000000000000000000000000000000000000 --- a/core/Controllers/UtilsController.php +++ /dev/null @@ -1,118 +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 Utils Controller - * @author dev@maarch.org - * @ingroup core - */ - -namespace Core\Controllers; - -use Psr\Http\Message\RequestInterface; -use Psr\Http\Message\ResponseInterface; - - -class UtilsController -{ - public static function wd_remove_accents(array $aArgs = []) - { - if(empty($aArgs['charset'])){ - $aArgs['charset'] = 'utf-8'; - } - - $str = htmlentities($aArgs['string'], ENT_NOQUOTES, $aArgs['charset']); - - $str = preg_replace( - '#\&([A-za-z])(?:uml|circ|tilde|acute|grave|cedil|ring)\;#', - '\1', - $str - ); - $str = preg_replace( - '#\&([A-za-z]{2})(?:lig)\;#', - '\1', - $str - ); - $str = preg_replace( - '#\&[^;]+\;#', - '', - $str - ); - - return $str; - } - - /** - * Cleans html string, replacing entities by utf-8 code - * - * @param $var string String to clean - * @return Cleaned string - */ - public function wash_html($var, $mode="UNICODE") - { - if($mode == "UNICODE") - { - $var = str_replace("<br/>","\\n",$var); - $var = str_replace("<br />","\\n",$var); - $var = str_replace("<br/>","\\n",$var); - $var = str_replace(" "," ",$var); - $var = str_replace("é", "\u00e9",$var); - $var = str_replace("è","\u00e8",$var); - $var = str_replace("ê","\00ea",$var); - $var = str_replace("à","\u00e0",$var); - $var = str_replace("â","\u00e2",$var); - $var = str_replace("î","\u00ee",$var); - $var = str_replace("ô","\u00f4",$var); - $var = str_replace("û","\u00fb",$var); - $var = str_replace("´","\u0027",$var); - $var = str_replace("°","\u00b0",$var); - $var = str_replace("’", "\u2019",$var); - } - else if($mode == 'NO_ACCENT') - { - $var = str_replace("<br/>","\\n",$var); - $var = str_replace("<br />","\\n",$var); - $var = str_replace("<br/>","\\n",$var); - $var = str_replace(" "," ",$var); - $var = str_replace("é", "e",$var); - $var = str_replace("è","e",$var); - $var = str_replace("ê","e",$var); - $var = str_replace("à","a",$var); - $var = str_replace("â","a",$var); - $var = str_replace("î","i",$var); - $var = str_replace("ô","o",$var); - $var = str_replace("û","u",$var); - $var = str_replace("´","",$var); - $var = str_replace("°","o",$var); - $var = str_replace("’", "'",$var); - - // AT LAST - $var = str_replace("&", " et ",$var); - } - else - { - $var = str_replace("<br/>","\\n",$var); - $var = str_replace("<br />","\\n",$var); - $var = str_replace("<br/>","\\n",$var); - $var = str_replace(" "," ",$var); - $var = str_replace("é", "é",$var); - $var = str_replace("è","è",$var); - $var = str_replace("ê","ê",$var); - $var = str_replace("à","à ",$var); - $var = str_replace("â","â",$var); - $var = str_replace("î","î",$var); - $var = str_replace("ô","ô",$var); - $var = str_replace("û","û",$var); - $var = str_replace("´","",$var); - $var = str_replace("°","°",$var); - $var = str_replace("’", "'",$var); - } - return $var; - } -} diff --git a/core/Models/ActionsModel.php b/core/Models/ActionModel.php old mode 100755 new mode 100644 similarity index 80% rename from core/Models/ActionsModel.php rename to core/Models/ActionModel.php index 107e345f99534d31a4a3484cbb199fcdd79122d3..766e34a783f71e2c4d94eabfc543f2b3b5d08526 --- a/core/Models/ActionsModel.php +++ b/core/Models/ActionModel.php @@ -8,14 +8,14 @@ */ /** -* @brief Status Model +* @brief Action Model * @author dev@maarch.org * @ingroup core */ namespace Core\Models; -class ActionsModel extends ActionsModelAbstract +class ActionModel extends ActionModelAbstract { // Do your stuff in this class } diff --git a/core/Models/ActionsModelAbstract.php b/core/Models/ActionModelAbstract.php old mode 100755 new mode 100644 similarity index 88% rename from core/Models/ActionsModelAbstract.php rename to core/Models/ActionModelAbstract.php index 15fed6435c298484c4356bd357ffedf8c6ffd693..773d231741fe8ed21f05b823d9a3bf54cba2d8ed --- a/core/Models/ActionsModelAbstract.php +++ b/core/Models/ActionModelAbstract.php @@ -4,14 +4,14 @@ * See LICENCE.txt file at the root folder for more details. * This file is part of Maarch software. -* @brief ActionsModelAbstract +* @brief ActionModelAbstract * @author dev <dev@maarch.org> * @ingroup core */ namespace Core\Models; -class ActionsModelAbstract +class ActionModelAbstract { public static function getList() { @@ -67,7 +67,7 @@ class ActionsModelAbstract ] ); - $tab['action_id'] = max(ActionsModel::getList())['id']; + $tab['action_id'] = max(ActionModel::getList())['id']; for ($i=0;$i<count($actioncategories);$i++) { @@ -285,5 +285,43 @@ class ActionsModelAbstract return $tabKeyword; } + + public static function getActionPageById(array $aArgs) + { + ValidatorModel::notEmpty($aArgs, ['id']); + ValidatorModel::intVal($aArgs, ['id']); + + $action = DatabaseModel::select([ + 'select' => ['action_page'], + 'table' => ['actions'], + 'where' => ['id = ? AND enabled = ?'], + 'data' => [$aArgs['id'], 'Y'] + ]); + + if (empty($action[0])) { + return ''; + } + + return $action[0]['action_page']; + } + + public static function getDefaultActionByGroupBasketId(array $aArgs) + { + ValidatorModel::notEmpty($aArgs, ['groupId', 'basketId']); + ValidatorModel::stringType($aArgs, ['groupId', 'basketId']); + + $action = DatabaseModel::select([ + 'select' => ['id_action'], + 'table' => ['actions_groupbaskets'], + 'where' => ['group_id = ?', 'basket_id = ?', 'default_action_list = ?'], + 'data' => [$aArgs['groupId'], $aArgs['basketId'], 'Y'] + ]); + + if (empty($action[0])) { + return ''; + } + + return $action[0]['id_action']; + } } diff --git a/core/Models/TextFormatModelAbstract.php b/core/Models/TextFormatModelAbstract.php index b9d5f4fd2ae33febecc15d4a695c03b27b4bf5f7..af8816d5ee049ae59c8cd71b8ae3cd54856f1d79 100755 --- a/core/Models/TextFormatModelAbstract.php +++ b/core/Models/TextFormatModelAbstract.php @@ -50,23 +50,59 @@ class TextFormatModelAbstract return $last_date; } - public static function htmlWasher($html) + public static function removeAccent(array $aArgs) { - $html = str_replace("<br/>", "\\n", $html); - $html = str_replace("<br />", "\\n", $html); - $html = str_replace("<br/>", "\\n", $html); - $html = str_replace(" ", " ", $html); - $html = str_replace("é", "\u00e9", $html); - $html = str_replace("è", "\u00e8", $html); - $html = str_replace("ê", "\00ea", $html); - $html = str_replace("à", "\u00e0", $html); - $html = str_replace("â", "\u00e2", $html); - $html = str_replace("î", "\u00ee", $html); - $html = str_replace("ô", "\u00f4", $html); - $html = str_replace("û", "\u00fb", $html); - $html = str_replace("´", "\u0027", $html); - $html = str_replace("°", "\u00b0", $html); - $html = str_replace("’", "\u2019", $html); + ValidatorModel::notEmpty($aArgs, ['string']); + ValidatorModel::stringType($aArgs, ['string', 'charset']); + + if(empty($aArgs['charset'])){ + $aArgs['charset'] = 'utf-8'; + } + + $string = htmlentities($aArgs['string'], ENT_NOQUOTES, $aArgs['charset']); + + $string = preg_replace('#\&([A-za-z])(?:uml|circ|tilde|acute|grave|cedil|ring)\;#', '\1', $string); + $string = preg_replace('#\&([A-za-z]{2})(?:lig)\;#', '\1', $string); + $string = preg_replace('#\&[^;]+\;#', '', $string); + + return $string; + } + + public static function htmlWasher($html, $mode = 'unicode') + { + if ($mode == 'unicode') { + $html = str_replace("<br/>", "\\n", $html); + $html = str_replace("<br />", "\\n", $html); + $html = str_replace("<br/>", "\\n", $html); + $html = str_replace(" ", " ", $html); + $html = str_replace("é", "\u00e9", $html); + $html = str_replace("è", "\u00e8", $html); + $html = str_replace("ê", "\00ea", $html); + $html = str_replace("à", "\u00e0", $html); + $html = str_replace("â", "\u00e2", $html); + $html = str_replace("î", "\u00ee", $html); + $html = str_replace("ô", "\u00f4", $html); + $html = str_replace("û", "\u00fb", $html); + $html = str_replace("´", "\u0027", $html); + $html = str_replace("°", "\u00b0", $html); + $html = str_replace("’", "\u2019", $html); + } else { + $html = str_replace("<br/>", "\\n", $html); + $html = str_replace("<br />", "\\n", $html); + $html = str_replace("<br/>", "\\n", $html); + $html = str_replace(" ", " ", $html); + $html = str_replace("é", "é", $html); + $html = str_replace("è", "è", $html); + $html = str_replace("ê", "ê", $html); + $html = str_replace("à", "à ", $html); + $html = str_replace("â", "â", $html); + $html = str_replace("î", "î", $html); + $html = str_replace("ô", "ô", $html); + $html = str_replace("û", "û", $html); + $html = str_replace("´", "", $html); + $html = str_replace("°", "°", $html); + $html = str_replace("’", "'", $html); + } return $html; } diff --git a/core/Models/UserModelAbstract.php b/core/Models/UserModelAbstract.php index 45eeb5d9897703ce6aaaf12194656a252efe4830..6b2df2607c38888290cc37abf68e428948fb9ee6 100755 --- a/core/Models/UserModelAbstract.php +++ b/core/Models/UserModelAbstract.php @@ -459,7 +459,7 @@ class UserModelAbstract return $aGroup[0]; } - public static function getPrimaryEntityByUserId(array $aArgs = []) + public static function getPrimaryEntityByUserId(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['userId']); ValidatorModel::stringType($aArgs, ['userId']); diff --git a/core/Test/ActionsControllerTest.php b/core/Test/ActionsControllerTest.php index eb2d0798680487d62c91b0d3646566400d0ec0b1..47086af9ce67822b385f016be648a323588738bb 100755 --- a/core/Test/ActionsControllerTest.php +++ b/core/Test/ActionsControllerTest.php @@ -17,7 +17,7 @@ class ActionsControllerTest extends TestCase { public function testCRUD() { - $actionController = new \Core\Controllers\ActionsController(); + $actionController = new \Core\Controllers\ActionController(); // CREATE $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']); diff --git a/modules/basket/Models/BasketsModelAbstract.php b/modules/basket/Models/BasketsModelAbstract.php index ee8800360774ab7546a1be61729e4b3d5159491c..f67de2b60a9ee4768c411bb78482234b57d7fcfa 100755 --- a/modules/basket/Models/BasketsModelAbstract.php +++ b/modules/basket/Models/BasketsModelAbstract.php @@ -18,6 +18,7 @@ namespace Baskets\Models; use Core\Models\DatabaseModel; use Core\Models\UserModel; use Core\Models\ValidatorModel; +use Entities\Models\EntityModel; require_once 'core/class/SecurityControler.php'; @@ -169,12 +170,12 @@ class BasketsModelAbstract return true; } - public static function updateBasketsRedirection(array $aArgs = []) + public static function updateBasketsRedirection(array $aArgs) { - static::checkRequired($aArgs, ['userId', 'basketOwner', 'basketId', 'userAbs', 'newUser']); - static::checkString($aArgs, ['userId']); + ValidatorModel::notEmpty($aArgs, ['userId', 'basketOwner', 'basketId', 'userAbs', 'newUser']); + ValidatorModel::stringType($aArgs, ['userId']); - $isUpdated = parent::update([ + DatabaseModel::update([ 'table' => 'user_abs', 'set' => [ 'new_user' => $aArgs['newUser'] @@ -200,7 +201,8 @@ class BasketsModelAbstract return true; } - public static function getRedirectedBasketsByUserId(array $aArgs) { + public static function getRedirectedBasketsByUserId(array $aArgs) + { ValidatorModel::notEmpty($aArgs, ['userId']); ValidatorModel::stringType($aArgs, ['userId']); @@ -284,4 +286,57 @@ class BasketsModelAbstract return $coloredBaskets; } + + // TODO In Progress + public static function getPreparedClauseById(array $aArgs) + { + ValidatorModel::notEmpty($aArgs, ['id', 'userId']); + ValidatorModel::stringType($aArgs, ['id', 'userId']); + + $aBasket = DatabaseModel::select([ + 'select' => ['basket_clause'], + 'table' => ['baskets'], + 'where' => ['basket_id = ?'], + 'data' => [$aArgs['id']] + ]); + + $clause = $aBasket[0]['basket_clause']; + + if (preg_match('/@user/', $clause)) { + $clause = str_replace('@user', "'{$aArgs['userId']}'", $clause); + } + if (preg_match('/@email/', $clause)) { + $user = UserModel::getByUserId(['userId' => $aArgs['userId'], 'select' => ['mail']]); + $clause = str_replace('@email', "'{$user['mail']}'", $clause); + } + if (preg_match('/@my_entities/', $clause)) { + $entities = EntityModel::getByUserId(['userId' => $aArgs['userId'], 'select' => ['entity_id']]); + + $myEntitiesClause = ''; + foreach ($entities as $key => $entity) { + if ($key > 0) { + $myEntitiesClause .= ", "; + } + $myEntitiesClause .= "'{$entity['entity_id']}'"; + } + + if (empty($myEntitiesClause)) { + $myEntitiesClause = "''"; + } + + $clause = str_replace('@my_entities', $myEntitiesClause, $clause); + } + if (preg_match('/@my_primary_entity/', $clause)) { + $entity = UserModel::getPrimaryEntityByUserId(['userId' => $aArgs['userId']]); + + $primaryEntity = $entity['entity_id']; + if (empty($entity)) { + $primaryEntity = "''"; + } + + $clause = str_replace('@my_primary_entity', $primaryEntity, $clause); + } + + return $clause; + } } \ No newline at end of file diff --git a/modules/entities/Models/EntityModelAbstract.php b/modules/entities/Models/EntityModelAbstract.php index da49cf51fe1a3791f5fe95840b773a7c820bc6e7..7bf89607b9326f62b24ebf9575830e0e1332f10d 100755 --- a/modules/entities/Models/EntityModelAbstract.php +++ b/modules/entities/Models/EntityModelAbstract.php @@ -77,19 +77,20 @@ class EntityModelAbstract return $aReturn; } - public static function getByUserId(array $aArgs = []) + public static function getByUserId(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['userId']); ValidatorModel::stringType($aArgs, ['userId']); + ValidatorModel::arrayType($aArgs, ['select']); - $aReturn = DatabaseModel::select([ + $aEntities = DatabaseModel::select([ 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], 'table' => ['users_entities'], 'where' => ['user_id = ?'], 'data' => [$aArgs['userId']] ]); - return $aReturn; + return $aEntities; } private static function getEntityChilds(array $aArgs = []) diff --git a/modules/visa/Controllers/VisaController.php b/modules/visa/Controllers/VisaController.php index 8e5dbe5a708315f4db6b4d4036f1df209385c334..d7e2e3d9cdcee9ceed8dbca8478999b425c138eb 100755 --- a/modules/visa/Controllers/VisaController.php +++ b/modules/visa/Controllers/VisaController.php @@ -13,8 +13,8 @@ */ namespace Visa\Controllers; -use Apps\Models\ActionModel; use Attachments\Models\AttachmentsModel; +use Core\Models\ActionModel; use Core\Models\ContactModel; use Core\Models\LinkModel; use Core\Models\ListinstanceModel; diff --git a/rest/index.php b/rest/index.php index 9921d8d09baafdb704c7be10bfc161b1be4823b8..7815d23323588deb3ea526ba261d18066d7e86aa 100755 --- a/rest/index.php +++ b/rest/index.php @@ -226,12 +226,12 @@ $app->get('/administration/history/eventDate/{date}', \Core\Controllers\HistoryC $app->get('/administration/historyBatch/eventDate/{date}', \Core\Controllers\HistoryController::class . ':getBatchForAdministration'); //actions -$app->get('/administration/actions', \Core\Controllers\ActionsController::class . ':getForAdministration'); -$app->get('/initAction', \Core\Controllers\ActionsController::class . ':initAction'); -$app->get('/administration/actions/{id}', \Core\Controllers\ActionsController::class . ':getByIdForAdministration'); -$app->post('/actions', \Core\Controllers\ActionsController::class . ':create'); -$app->put('/actions/{id}', \Core\Controllers\ActionsController::class . ':update'); -$app->delete('/actions/{id}', \Core\Controllers\ActionsController::class . ':delete'); +$app->get('/administration/actions', \Core\Controllers\ActionController::class . ':getForAdministration'); +$app->get('/initAction', \Core\Controllers\ActionController::class . ':initAction'); +$app->get('/administration/actions/{id}', \Core\Controllers\ActionController::class . ':getByIdForAdministration'); +$app->post('/actions', \Core\Controllers\ActionController::class . ':create'); +$app->put('/actions/{id}', \Core\Controllers\ActionController::class . ':update'); +$app->delete('/actions/{id}', \Core\Controllers\ActionController::class . ':delete'); //Notifications $app->get('/notifications', \Notifications\Controllers\NotificationController::class . ':get');