From 453e7ebbd08eda9632f94981ee7c60c71e45eb56 Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Tue, 11 Jun 2019 17:24:06 +0200 Subject: [PATCH] FEAT #10769 TIME 1:30 Handle user when deleted --- sql/structure.sql | 2 +- src/app/document/controllers/DocumentController.php | 5 ++--- src/app/history/controllers/HistoryController.php | 7 +++---- src/app/history/models/HistoryModel.php | 7 +++---- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/sql/structure.sql b/sql/structure.sql index f8def1fef7..e0ea853526 100755 --- a/sql/structure.sql +++ b/sql/structure.sql @@ -125,7 +125,7 @@ CREATE TABLE history object_type CHARACTER VARYING(128) NOT NULL, object_id CHARACTER VARYING(32) NOT NULL, type CHARACTER VARYING(64) NOT NULL, - user_id INTEGER NOT NULL, + "user" text NOT NULL, date TIMESTAMP without TIME ZONE NOT NULL, message text NOT NULL, data jsonb NOT NULL DEFAULT '{}', diff --git a/src/app/document/controllers/DocumentController.php b/src/app/document/controllers/DocumentController.php index 82ab0c896c..e665e77b9c 100755 --- a/src/app/document/controllers/DocumentController.php +++ b/src/app/document/controllers/DocumentController.php @@ -156,10 +156,9 @@ class DocumentController $date = new \DateTime($document['process_date']); $value['process_date'] = $date->format('d-m-Y H:i'); } - $user = UserModel::getById(['select' => ['id', 'firstname', 'lastname'], 'id' => $value['user_id']]); $formattedDocument['workflow'][] = [ - 'userId' => $user['id'], - 'userDisplay' => "{$user['firstname']} {$user['lastname']}", + 'userId' => $value['user_id'], + 'userDisplay' => UserModel::getLabelledUserById(['id' => $value['user_id']]), 'mode' => $value['mode'], 'processDate' => $value['process_date'], 'current' => !$currentFound && empty($value['process_date']) diff --git a/src/app/history/controllers/HistoryController.php b/src/app/history/controllers/HistoryController.php index d88b181d2c..2eb0660db1 100755 --- a/src/app/history/controllers/HistoryController.php +++ b/src/app/history/controllers/HistoryController.php @@ -38,7 +38,7 @@ class HistoryController 'object_type' => $args['objectType'], 'object_id' => $args['objectId'], 'type' => $args['type'], - 'user_id' => $GLOBALS['id'], + 'user' => UserModel::getLabelledUserById(['id' => $GLOBALS['id']]), 'message' => $args['message'], 'data' => empty($args['data']) ? '{}' : json_encode($args['data']), 'ip' => empty($_SERVER['REMOTE_ADDR']) ? 'script' : $_SERVER['REMOTE_ADDR'] @@ -59,7 +59,7 @@ class HistoryController } $history = HistoryModel::get([ - 'select' => ['code', 'type', 'user_id', 'date', 'message', 'data'], + 'select' => ['code', 'type', '"user"', 'date', 'message', 'data'], 'where' => ["(object_type = ? AND object_id = ?) OR (data->>'mainDocumentId' = ?)"], 'data' => ['main_documents', $args['id'], $args['id']], 'orderBy' => ['date'] @@ -76,13 +76,12 @@ class HistoryController } foreach ($history as $value) { - $user = UserModel::getById(['select' => ['login'], 'id' => $value['user_id']]); $date = new \DateTime($value['date']); $formattedHistory[] = [ 'code' => $value['code'], 'type' => $value['type'], - 'userLogin' => $user['login'], + 'user' => $value['user'], 'date' => $date->format('d-m-Y H:i'), 'message' => preg_replace($langKeys, $langValues, $value['message']), 'data' => json_decode($value['data'], true) diff --git a/src/app/history/models/HistoryModel.php b/src/app/history/models/HistoryModel.php index 949d2a0fcd..ba27183800 100755 --- a/src/app/history/models/HistoryModel.php +++ b/src/app/history/models/HistoryModel.php @@ -40,9 +40,8 @@ class HistoryModel public static function create(array $args) { - ValidatorModel::notEmpty($args, ['code', 'object_type', 'object_id', 'type', 'user_id', 'message', 'data', 'ip']); - ValidatorModel::stringType($args, ['code', 'objectType', 'type', 'message', 'data', 'ip']); - ValidatorModel::intVal($args, ['user_id']); + ValidatorModel::notEmpty($args, ['code', 'object_type', 'object_id', 'type', 'user', 'message', 'data', 'ip']); + ValidatorModel::stringType($args, ['code', 'object_type', 'type', 'user', 'message', 'data', 'ip']); DatabaseModel::insert([ 'table' => 'history', @@ -51,7 +50,7 @@ class HistoryModel 'object_type' => $args['object_type'], 'object_id' => $args['object_id'], 'type' => $args['type'], - 'user_id' => $args['user_id'], + '"user"' => $args['user'], 'date' => 'CURRENT_TIMESTAMP', 'message' => $args['message'], 'data' => $args['data'], -- GitLab