diff --git a/bin/notification/process_email_stack.php b/bin/notification/process_email_stack.php index ab5ff2ee964bb90971e2b2aceb354609c418cb66..629eaa55863f50a7292a2764f372e410d2baaa6b 100644 --- a/bin/notification/process_email_stack.php +++ b/bin/notification/process_email_stack.php @@ -29,7 +29,7 @@ while ($state <> 'END') { /* Load parameters and send an e-mail */ /**********************************************************************/ case 'SEND_AN_EMAIL': - $configuration = \Configuration\models\ConfigurationModel::getByService(['service' => 'admin_email_server', 'select' => ['value']]); + $configuration = \Configuration\models\ConfigurationModel::getByPrivilege(['privilege' => 'admin_email_server', 'select' => ['value']]); foreach ($emails as $key => $email) { $configuration = json_decode($configuration['value'], true); if (empty($configuration)) { diff --git a/install/scripts/testSmtp.php b/install/scripts/testSmtp.php index 585e123976e87a46b705eaaaf4a07cd40eac02a0..96122d0ecf310dc823527cad08fe6e9f440aa7ec 100755 --- a/install/scripts/testSmtp.php +++ b/install/scripts/testSmtp.php @@ -20,7 +20,7 @@ 'charset' => 'utf-8' ]; $data = json_encode($data); - \Configuration\models\ConfigurationModel::update(['set' => ['value' => $data], 'where' => ['service = ?'], 'data' => ['admin_email_server']]); + \Configuration\models\ConfigurationModel::update(['set' => ['value' => $data], 'where' => ['privilege = ?'], 'data' => ['admin_email_server']]); } include($_SESSION['config']['corepath'] diff --git a/migration/19.04/migrateSendmail.php b/migration/19.04/migrateSendmail.php index e61f50068b1792b590358dff3a36e731a60fcb99..454e442139c9a3cb6ab75b3d4a498d8bf55755d5 100644 --- a/migration/19.04/migrateSendmail.php +++ b/migration/19.04/migrateSendmail.php @@ -38,7 +38,7 @@ foreach ($customs as $custom) { 'charset' => 'utf-8' ]; $data = json_encode($data); - \Configuration\models\ConfigurationModel::update(['set' => ['value' => $data], 'where' => ['service = ?'], 'data' => ['admin_email_server']]); + \Configuration\models\ConfigurationModel::update(['set' => ['value' => $data], 'where' => ['privilege = ?'], 'data' => ['admin_email_server']]); $migrated++; } diff --git a/migration/20.10/2010.sql b/migration/20.10/2010.sql index 1d50afa7f52a1eecd64cc1675930cde3cf9bf68f..84437c075a35024fe167e2d4420c3e290cdfc4fc 100755 --- a/migration/20.10/2010.sql +++ b/migration/20.10/2010.sql @@ -260,6 +260,9 @@ INSERT INTO status (id, label_status, is_system, img_filename, maarch_module, ca DELETE FROM parameters WHERE id = 'traffic_record_summary_sheet'; INSERT INTO parameters (id, description, param_value_string) VALUES ('traffic_record_summary_sheet', 'Module circulation pour la fiche de liaison', ''); +ALTER TABLE configurations RENAME COLUMN service TO privilege; +DELETE FROM configurations WHERE privilege = 'admin_search'; +INSERT INTO configurations (privilege, value) VALUES ('admin_search', '{"listEvent": {"defaultTab": "dashboard"},"listDisplay":{"templateColumns":6,"subInfos":[{"value":"getPriority","cssClasses":["align_leftData"],"icon":"fa-traffic-light"},{"value":"getCreationAndProcessLimitDates","cssClasses":["align_leftData"],"icon":"fa-calendar"},{"value":"getAssignee","cssClasses":["align_leftData"],"icon":"fa-sitemap"},{"value":"getDoctype","cssClasses":["align_leftData"],"icon":"fa-suitcase"},{"value":"getRecipients","cssClasses":["align_leftData"],"icon":"fa-user"},{"value":"getSenders","cssClasses":["align_leftData"],"icon":"fa-book"}]}}'); /* RE CREATE VIEWS */ CREATE OR REPLACE VIEW res_view_letterbox AS diff --git a/rest/index.php b/rest/index.php index c4b176aa8af84a8fc0f0598031c5271d624b5609..7ef8f7822d10c3dbadf440561eb31d4f0e8caf79 100755 --- a/rest/index.php +++ b/rest/index.php @@ -124,8 +124,8 @@ $app->get('/sortedBaskets', \Basket\controllers\BasketController::class . ':getS $app->put('/sortedBaskets/{id}', \Basket\controllers\BasketController::class . ':updateSort'); //Configurations -$app->get('/configurations/{service}', \Configuration\controllers\ConfigurationController::class . ':getByService'); -$app->put('/configurations/{service}', \Configuration\controllers\ConfigurationController::class . ':update'); +$app->get('/configurations/{privilege}', \Configuration\controllers\ConfigurationController::class . ':getByPrivilege'); +$app->put('/configurations/{privilege}', \Configuration\controllers\ConfigurationController::class . ':update'); //Contacts $app->get('/contacts', \Contact\controllers\ContactController::class . ':get'); @@ -455,6 +455,8 @@ $app->post('/resourcesList/users/{userId}/groups/{groupId}/baskets/{basketId}/ac //Search $app->post('/search', \Search\controllers\SearchController::class . ':get'); +$app->get('/search/configuration', \Search\controllers\SearchAdministrationController::class . ':get'); +$app->put('/search/configuration', \Search\controllers\SearchAdministrationController::class . ':update'); //shipping $app->get('/administration/shippings', \Shipping\controllers\ShippingTemplateController::class . ':get'); diff --git a/sql/data_fr.sql b/sql/data_fr.sql index 8a640f5f2267ace2dd15279941b2ddf3d10e3081..757b7b8d4ff6a00e5efae15d0a7345be2578a91e 100755 --- a/sql/data_fr.sql +++ b/sql/data_fr.sql @@ -1647,7 +1647,8 @@ INSERT INTO contacts_filling (enable, first_threshold, second_threshold) VALUES /* Configurations */ TRUNCATE TABLE configurations; -INSERT INTO configurations (service, value) VALUES ('admin_email_server', '{"type":"smtp","host":"smtp.gmail.com","port":465,"user":"notifications.maarch@gmail.com","password":"1OkrZQPFNJmI7uY8::7e870f0f61ecc7e9fb6e7065dd31aea5","auth":true,"secure":"ssl","from":"notifications.maarch@gmail.com","charset":"utf-8"}'); +INSERT INTO configurations (privilege, value) VALUES ('admin_email_server', '{"type":"smtp","host":"smtp.gmail.com","port":465,"user":"notifications.maarch@gmail.com","password":"1OkrZQPFNJmI7uY8::7e870f0f61ecc7e9fb6e7065dd31aea5","auth":true,"secure":"ssl","from":"notifications.maarch@gmail.com","charset":"utf-8"}'); +INSERT INTO configurations (privilege, value) VALUES ('admin_search', '{"listEvent": {"defaultTab": "dashboard"},"listDisplay":{"templateColumns":6,"subInfos":[{"value":"getPriority","cssClasses":["align_leftData"],"icon":"fa-traffic-light"},{"value":"getCreationAndProcessLimitDates","cssClasses":["align_leftData"],"icon":"fa-calendar"},{"value":"getAssignee","cssClasses":["align_leftData"],"icon":"fa-sitemap"},{"value":"getDoctype","cssClasses":["align_leftData"],"icon":"fa-suitcase"},{"value":"getRecipients","cssClasses":["align_leftData"],"icon":"fa-user"},{"value":"getSenders","cssClasses":["align_leftData"],"icon":"fa-book"}]}}'); /* Modèle d’envois postaux */ TRUNCATE TABLE shipping_templates; diff --git a/sql/structure.sql b/sql/structure.sql index e8af8e0d4067fd1546794c4b81d6770b14361258..8ac5b62836f5e4d77d56cc0e03277f208acfed72 100755 --- a/sql/structure.sql +++ b/sql/structure.sql @@ -1267,7 +1267,7 @@ WITH (OIDS=FALSE); CREATE TABLE configurations ( id serial NOT NULL, -service character varying(64) NOT NULL, +privilege character varying(64) NOT NULL, value json DEFAULT '{}' NOT NULL, CONSTRAINT configuration_pkey PRIMARY KEY (id), CONSTRAINT configuration_unique_key UNIQUE (service) diff --git a/src/app/action/controllers/PreProcessActionController.php b/src/app/action/controllers/PreProcessActionController.php index b837b738f4dd231afc5df8306b324d8bc60e63e1..17a4b8f72e13402d7040fe1e0b03b40812a7e5b2 100755 --- a/src/app/action/controllers/PreProcessActionController.php +++ b/src/app/action/controllers/PreProcessActionController.php @@ -1537,7 +1537,7 @@ class PreProcessActionController } $body['resources'] = PreProcessActionController::getNonLockedResources(['resources' => $body['resources'], 'userId' => $GLOBALS['id']]); - $configuration = ConfigurationModel::getByService(['service' => 'admin_alfresco']); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => 'admin_alfresco']); if (empty($configuration)) { return $response->withStatus(400)->withJson(['errors' => 'Alfresco configuration is not enabled']); } diff --git a/src/app/configuration/controllers/ConfigurationController.php b/src/app/configuration/controllers/ConfigurationController.php index 4ab7b2a3c5992fe2e66e111c7b866dd3d390e65a..b8466a158f62f164659f2f76dfe2f9687c42e4a8 100755 --- a/src/app/configuration/controllers/ConfigurationController.php +++ b/src/app/configuration/controllers/ConfigurationController.php @@ -23,13 +23,13 @@ use SrcCore\models\PasswordModel; class ConfigurationController { - public function getByService(Request $request, Response $response, array $aArgs) + public function getByPrivilege(Request $request, Response $response, array $args) { - if (!PrivilegeController::hasPrivilege(['privilegeId' => $aArgs['service'], 'userId' => $GLOBALS['id']])) { + if (!PrivilegeController::hasPrivilege(['privilegeId' => $args['privilege'], 'userId' => $GLOBALS['id']])) { return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); } - $configuration = ConfigurationModel::getByService(['service' => $aArgs['service']]); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => $args['privilege']]); $configuration['value'] = json_decode($configuration['value'], true); if (!empty($configuration['value']['password'])) { $configuration['value']['password'] = ''; @@ -41,21 +41,21 @@ class ConfigurationController return $response->withJson(['configuration' => $configuration]); } - public function update(Request $request, Response $response, array $aArgs) + public function update(Request $request, Response $response, array $args) { - if (!PrivilegeController::hasPrivilege(['privilegeId' => $aArgs['service'], 'userId' => $GLOBALS['id']])) { + if (!PrivilegeController::hasPrivilege(['privilegeId' => $args['privilege'], 'userId' => $GLOBALS['id']])) { return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); } - if (empty(ConfigurationModel::getByService(['service' => $aArgs['service'], 'select' => [1]]))) { - return $response->withStatus(400)->withJson(['errors' => 'Service configuration does not exist']); + if (empty(ConfigurationModel::getByPrivilege(['privilege' => $args['privilege'], 'select' => [1]]))) { + return $response->withStatus(400)->withJson(['errors' => 'Privilege configuration does not exist']); } $data = $request->getParams(); - if ($aArgs['service'] == 'admin_email_server') { + if ($args['privilege'] == 'admin_email_server') { if ($data['auth'] && empty($data['password'])) { - $configuration = ConfigurationModel::getByService(['service' => $aArgs['service']]); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => $args['privilege']]); $configuration['value'] = json_decode($configuration['value'], true); if (!empty($configuration['value']['password'])) { $data['password'] = $configuration['value']['password']; @@ -72,29 +72,29 @@ class ConfigurationController } $data = json_encode($data); - ConfigurationModel::update(['set' => ['value' => $data], 'where' => ['service = ?'], 'data' => [$aArgs['service']]]); + ConfigurationModel::update(['set' => ['value' => $data], 'where' => ['privilege = ?'], 'data' => [$args['privilege']]]); return $response->withJson(['success' => 'success']); } - private static function checkMailer(array $aArgs) + private static function checkMailer(array $args) { - if (!Validator::stringType()->notEmpty()->validate($aArgs['type'])) { + if (!Validator::stringType()->notEmpty()->validate($args['type'])) { return ['errors' => 'Configuration type is missing', 'code' => 400]; } - if (!Validator::email()->notEmpty()->validate($aArgs['from'])) { + if (!Validator::email()->notEmpty()->validate($args['from'])) { return ['errors' => 'Configuration from is missing or not well formatted', 'code' => 400]; } - if (in_array($aArgs['type'], ['smtp', 'mail'])) { - $check = Validator::stringType()->notEmpty()->validate($aArgs['host']); - $check = $check && Validator::intVal()->notEmpty()->validate($aArgs['port']); - $check = $check && Validator::boolType()->validate($aArgs['auth']); - if ($aArgs['auth']) { - $check = $check && Validator::stringType()->notEmpty()->validate($aArgs['user']); - $check = $check && Validator::stringType()->notEmpty()->validate($aArgs['password']); + if (in_array($args['type'], ['smtp', 'mail'])) { + $check = Validator::stringType()->notEmpty()->validate($args['host']); + $check = $check && Validator::intVal()->notEmpty()->validate($args['port']); + $check = $check && Validator::boolType()->validate($args['auth']); + if ($args['auth']) { + $check = $check && Validator::stringType()->notEmpty()->validate($args['user']); + $check = $check && Validator::stringType()->notEmpty()->validate($args['password']); } - $check = $check && Validator::stringType()->validate($aArgs['secure']); + $check = $check && Validator::stringType()->validate($args['secure']); if (!$check) { return ['errors' => "Configuration data is missing or not well formatted", 'code' => 400]; } diff --git a/src/app/configuration/models/ConfigurationModel.php b/src/app/configuration/models/ConfigurationModel.php index c13070d83a9001eb4a859e619e6fe45f84f58a47..b0d90622db4d84e8c2f05d7b3a23a01282219d80 100755 --- a/src/app/configuration/models/ConfigurationModel.php +++ b/src/app/configuration/models/ConfigurationModel.php @@ -19,17 +19,17 @@ use SrcCore\models\ValidatorModel; class ConfigurationModel { - public static function getByService(array $args) + public static function getByPrivilege(array $args) { - ValidatorModel::notEmpty($args, ['service']); - ValidatorModel::stringType($args, ['service']); + ValidatorModel::notEmpty($args, ['privilege']); + ValidatorModel::stringType($args, ['privilege']); ValidatorModel::arrayType($args, ['select']); $configuration = DatabaseModel::select([ 'select' => empty($args['select']) ? ['*'] : $args['select'], 'table' => ['configurations'], - 'where' => ['service = ?'], - 'data' => [$args['service']], + 'where' => ['privilege = ?'], + 'data' => [$args['privilege']], ]); if (empty($configuration[0])) { @@ -41,13 +41,13 @@ class ConfigurationModel public static function create(array $args) { - ValidatorModel::notEmpty($args, ['service', 'value']); - ValidatorModel::stringType($args, ['service', 'value']); + ValidatorModel::notEmpty($args, ['privilege', 'value']); + ValidatorModel::stringType($args, ['privilege', 'value']); DatabaseModel::insert([ 'table' => 'configurations', 'columnsValues' => [ - 'service' => $args['service'], + 'privilege' => $args['privilege'], 'value' => $args['value'] ] ]); diff --git a/src/app/email/controllers/EmailController.php b/src/app/email/controllers/EmailController.php index ab3f0f22dadaa3213b0a5e485bc0d3245793ecda..c546b01a4d29b77e88948f92bb6d71c27fbfa065 100644 --- a/src/app/email/controllers/EmailController.php +++ b/src/app/email/controllers/EmailController.php @@ -500,7 +500,7 @@ class EmailController } } - $configuration = ConfigurationModel::getByService(['service' => 'admin_email_server', 'select' => ['value']]); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => 'admin_email_server', 'select' => ['value']]); $configuration = json_decode($configuration['value'], true); if (empty($configuration)) { return ['errors' => 'Configuration is missing']; @@ -756,7 +756,7 @@ class EmailController } if (!empty($args['data']['sender']['email'])) { - $configuration = ConfigurationModel::getByService(['service' => 'admin_email_server', 'select' => ['value']]); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => 'admin_email_server', 'select' => ['value']]); $configuration = json_decode($configuration['value'], true); $availableEmails = EmailController::getAvailableEmailsByUserId(['userId' => $args['userId']]); diff --git a/src/app/external/alfresco/controllers/AlfrescoController.php b/src/app/external/alfresco/controllers/AlfrescoController.php index c1948a43f8ee9de4bed01cabdfc4469c42edd857..7f8f1546ee9832e8fa08e29f8236c00f3c068ae8 100644 --- a/src/app/external/alfresco/controllers/AlfrescoController.php +++ b/src/app/external/alfresco/controllers/AlfrescoController.php @@ -38,7 +38,7 @@ class AlfrescoController return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); } - $configuration = ConfigurationModel::getByService(['service' => 'admin_alfresco']); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => 'admin_alfresco']); if (empty($configuration)) { return $response->withJson(['configuration' => null]); } @@ -62,11 +62,11 @@ class AlfrescoController $value = json_encode(['uri' => trim($body['uri'])]); - $configuration = ConfigurationModel::getByService(['service' => 'admin_alfresco']); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => 'admin_alfresco']); if (empty($configuration)) { - ConfigurationModel::create(['service' => 'admin_alfresco', 'value' => $value]); + ConfigurationModel::create(['privilege' => 'admin_alfresco', 'value' => $value]); } else { - ConfigurationModel::update(['set' => ['value' => $value], 'where' => ['service = ?'], 'data' => ['admin_alfresco']]); + ConfigurationModel::update(['set' => ['value' => $value], 'where' => ['privilege = ?'], 'data' => ['admin_alfresco']]); } return $response->withStatus(204); @@ -302,7 +302,7 @@ class AlfrescoController $body['password'] = PasswordModel::decrypt(['cryptedPassword' => $alfresco['alfresco']['password']]); } - $configuration = ConfigurationModel::getByService(['service' => 'admin_alfresco']); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => 'admin_alfresco']); if (empty($configuration)) { return $response->withStatus(400)->withJson(['errors' => 'Alfresco configuration is not enabled']); } @@ -358,7 +358,7 @@ class AlfrescoController public function getRootFolders(Request $request, Response $response) { - $configuration = ConfigurationModel::getByService(['service' => 'admin_alfresco']); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => 'admin_alfresco']); if (empty($configuration)) { return $response->withStatus(400)->withJson(['errors' => 'Alfresco configuration is not enabled']); } @@ -408,7 +408,7 @@ class AlfrescoController public function getChildrenFoldersById(Request $request, Response $response, array $args) { - $configuration = ConfigurationModel::getByService(['service' => 'admin_alfresco']); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => 'admin_alfresco']); if (empty($configuration)) { return $response->withStatus(400)->withJson(['errors' => 'Alfresco configuration is not enabled']); } @@ -465,7 +465,7 @@ class AlfrescoController return $response->withStatus(400)->withJson(['errors' => 'Query params search is too short']); } - $configuration = ConfigurationModel::getByService(['service' => 'admin_alfresco']); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => 'admin_alfresco']); if (empty($configuration)) { return $response->withStatus(400)->withJson(['errors' => 'Alfresco configuration is not enabled']); } @@ -527,7 +527,7 @@ class AlfrescoController ValidatorModel::intVal($args, ['resId', 'userId']); ValidatorModel::stringType($args, ['folderId', 'folderName']); - $configuration = ConfigurationModel::getByService(['service' => 'admin_alfresco']); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => 'admin_alfresco']); if (empty($configuration)) { return ['errors' => 'Alfresco configuration is not enabled']; } diff --git a/src/app/search/controllers/SearchAdministrationController.php b/src/app/search/controllers/SearchAdministrationController.php new file mode 100644 index 0000000000000000000000000000000000000000..e5ab7739e5bb5cafeda2f3ff18b3d7b23270de16 --- /dev/null +++ b/src/app/search/controllers/SearchAdministrationController.php @@ -0,0 +1,72 @@ +<?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 Search Administration Controller +* @author dev@maarch.org +*/ + +namespace Search\controllers; + +use Configuration\models\ConfigurationModel; +use Group\controllers\PrivilegeController; +use Respect\Validation\Validator; +use Slim\Http\Request; +use Slim\Http\Response; + +class SearchAdministrationController +{ + public function get(Request $request, Response $response) { + $configuration = ConfigurationModel::getByPrivilege(['privilege' => 'admin_search']); + $configuration = json_decode($configuration, true); + + return $response->withJson(['configuration' => $configuration]); + } + + public function update(Request $request, Response $response) + { + if (!PrivilegeController::hasPrivilege(['privilegeId' => 'admin_search', 'userId' => $GLOBALS['id']])) { + return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); + } + + $body = $request->getParsedBody(); + + if (!Validator::notEmpty()->arrayType()->validate($body['listDisplay'])) { + return $response->withStatus(400)->withJson(['errors' => 'Body listDisplay is empty or not an array']); + } + if (isset($body['listDisplay']['subInfos']) && !Validator::arrayType()->validate($body['listDisplay']['subInfos'])) { + return $response->withStatus(400)->withJson(['errors' => 'Body listDisplay[subInfos] is not set or not an array']); + } + if (!Validator::intVal()->validate($body['listDisplay']['templateColumns'])) { + return $response->withStatus(400)->withJson(['errors' => 'Body listDisplay[templateColumns] is not set or not an array']); + } + foreach ($body['listDisplay']['subInfos'] as $value) { + if (!Validator::stringType()->notEmpty()->validate($value['value'])) { + return $response->withStatus(400)->withJson(['errors' => 'Body listDisplay[subInfos][value] is empty or not a string']); + } elseif (!isset($value['cssClasses']) || !is_array($value['cssClasses'])) { + return $response->withStatus(400)->withJson(['errors' => 'Body listDisplay[subInfos][cssClasses] is not set or not an array']); + } + } + + if (empty($body['listEvent']['defaultTab'])) { + $body['listEvent']['defaultTab'] = 'dashboard'; + } + + $configuration = ['listDisplay' => $body['listDisplay'], 'listEvent' => $body['listEvent']]; + $configuration = json_encode($configuration); + + ConfigurationModel::update([ + 'set' => ['value' => $configuration], + 'where' => ['privilege = ?'], + 'data' => ['admin_search'] + ]); + + return $response->withStatus(204); + } +} diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php index 7d6a63bfe7d0cc8760b65453b9fdf832227c802e..ec2bf9aeaa4b8faf2a20679f10cd60fa435b4cf1 100755 --- a/src/app/user/controllers/UserController.php +++ b/src/app/user/controllers/UserController.php @@ -1883,7 +1883,7 @@ class UserController UserModel::update(['set' => ['reset_token' => $resetToken], 'where' => ['id = ?'], 'data' => [$user['id']]]); $url = UrlController::getCoreUrl() . 'dist/index.html#/reset-password?token=' . $resetToken; - $configuration = ConfigurationModel::getByService(['service' => 'admin_email_server', 'select' => ['value']]); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => 'admin_email_server', 'select' => ['value']]); $configuration = json_decode($configuration['value'], true); if (!empty($configuration['from'])) { $sender = $configuration['from']; diff --git a/src/core/controllers/AuthenticationController.php b/src/core/controllers/AuthenticationController.php index 29521172dafdd3cb1200cda69dc29c7adb443ce9..05e79c913e58addad86bd97ae5a82c6f0ab58941 100755 --- a/src/core/controllers/AuthenticationController.php +++ b/src/core/controllers/AuthenticationController.php @@ -378,7 +378,7 @@ class AuthenticationController $url = UrlController::getCoreUrl() . 'dist/index.html#/reset-password?token=' . $resetToken; - $configuration = ConfigurationModel::getByService(['service' => 'admin_email_server', 'select' => ['value']]); + $configuration = ConfigurationModel::getByPrivilege(['privilege' => 'admin_email_server', 'select' => ['value']]); $configuration = json_decode($configuration['value'], true); if (!empty($configuration['from'])) { $sender = $configuration['from'];