Went through todos

This commit is contained in:
Dennis Eichhorn 2024-05-02 22:54:38 +00:00
parent a463db65df
commit fbbc8a12a9
5 changed files with 40 additions and 1 deletions

View File

@ -37,6 +37,7 @@ use phpOMS\Message\Http\RequestStatusCode;
use phpOMS\Message\NotificationLevel; use phpOMS\Message\NotificationLevel;
use phpOMS\Message\RequestAbstract; use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract; use phpOMS\Message\ResponseAbstract;
use phpOMS\Security\EncryptionHelper;
use phpOMS\Stdlib\Base\AddressType; use phpOMS\Stdlib\Base\AddressType;
/** /**
@ -46,6 +47,9 @@ use phpOMS\Stdlib\Base\AddressType;
* @license OMS License 2.0 * @license OMS License 2.0
* @link https://jingga.app * @link https://jingga.app
* @since 1.0.0 * @since 1.0.0
*
* @feature List of assets and documents handed over to employees (to be returned on leave)
* https://github.com/Karaka-Management/oms-HumanResourceManagement/issues/4
*/ */
final class ApiController extends Controller final class ApiController extends Controller
{ {
@ -423,9 +427,12 @@ final class ApiController extends Controller
$history->start = $request->getDataDateTime('start') ?? new \DateTime('now'); $history->start = $request->getDataDateTime('start') ?? new \DateTime('now');
$history->end = $request->getDataDateTime('end'); $history->end = $request->getDataDateTime('end');
$history->educationTitle = $request->getDataString('title') ?? ''; $history->educationTitle = $request->getDataString('title') ?? '';
$history->score = $request->getDataString('score') ?? '';
$history->passed = $request->getDataBool('passed') ?? true; $history->passed = $request->getDataBool('passed') ?? true;
$history->score = !empty($request->getDataString('score') ?? '') && !empty($_SERVER['OMS_PRIVATE_KEY_I'] ?? '')
? (EncryptionHelper::encryptShared($request->getDataString('score') ?? '', $_SERVER['OMS_PRIVATE_KEY_I']))
: ($request->getDataString('score') ?? '');
$history->address = $this->app->moduleManager->get('Admin', 'Api')->createAddressFromRequest($request); $history->address = $this->app->moduleManager->get('Admin', 'Api')->createAddressFromRequest($request);
$history->address->type = AddressType::EDUCATION; $history->address->type = AddressType::EDUCATION;
@ -467,6 +474,7 @@ final class ApiController extends Controller
account: $request->header->account, account: $request->header->account,
basePath: __DIR__ . '/../../../Modules/Media/Files' . $path, basePath: __DIR__ . '/../../../Modules/Media/Files' . $path,
virtualPath: $path, virtualPath: $path,
encryptionKey: $_SERVER['OMS_PRIVATE_KEY_I'] ?? '',
pathSettings: PathSettings::FILE_PATH, pathSettings: PathSettings::FILE_PATH,
hasAccountRelation: false, hasAccountRelation: false,
readContent: $request->getDataBool('parse_content') ?? false, readContent: $request->getDataBool('parse_content') ?? false,
@ -553,7 +561,10 @@ final class ApiController extends Controller
return; return;
} }
$request->setData('isencrypted', true, true);
$request->setData('isvisible', false, true);
$request->setData('virtualpath', '/Modules/HumanResourceManagement/Employee/' . $request->getData('id'), true); $request->setData('virtualpath', '/Modules/HumanResourceManagement/Employee/' . $request->getData('id'), true);
$this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data); $this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data);
if ($response->header->status !== RequestStatusCode::R_200) { if ($response->header->status !== RequestStatusCode::R_200) {

View File

@ -30,6 +30,7 @@ use phpOMS\DataStorage\Database\Query\OrderType;
use phpOMS\Message\Http\RequestStatusCode; use phpOMS\Message\Http\RequestStatusCode;
use phpOMS\Message\RequestAbstract; use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract; use phpOMS\Message\ResponseAbstract;
use phpOMS\Security\EncryptionHelper;
use phpOMS\Stdlib\Base\SmartDateTime; use phpOMS\Stdlib\Base\SmartDateTime;
use phpOMS\Views\View; use phpOMS\Views\View;
@ -153,6 +154,24 @@ final class BackendController extends Controller
return $view; return $view;
} }
if (!empty($_SERVER['OMS_PRIVATE_KEY_I'] ?? '')) {
foreach ($view->data['employee']->educationHistory as $history) {
$history->score = !empty($history->score)
? (EncryptionHelper::decryptShared($history->score, $_SERVER['OMS_PRIVATE_KEY_I']))
: $history->score;
}
foreach ($view->data['employee']->notes as $note) {
$note->plain = !empty($note->plain)
? (EncryptionHelper::decryptShared($note->plain, $_SERVER['OMS_PRIVATE_KEY_I']))
: $note->plain;
$note->content = !empty($note->content)
? (EncryptionHelper::decryptShared($note->content, $_SERVER['OMS_PRIVATE_KEY_I']))
: $note->content;
}
}
$view->setTemplate('/Modules/HumanResourceManagement/Theme/Backend/staff-view'); $view->setTemplate('/Modules/HumanResourceManagement/Theme/Backend/staff-view');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002402001, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002402001, $request, $response);

View File

@ -26,6 +26,12 @@ use Modules\Profile\Models\Profile;
* @license OMS License 2.0 * @license OMS License 2.0
* @link https://jingga.app * @link https://jingga.app
* @since 1.0.0 * @since 1.0.0
*
* @question Consider to add employee status (active, inactive, ...)
* We might not need it because we can see the activity from the workHistory.
* However, we have no easy way to see if someone is on maternity leave etc.
* We would have to parse TimeRecording for this which may not be installed.
* https://github.com/Karaka-Management/oms-HumanResourceManagement/issues/10
*/ */
class Employee implements \JsonSerializable class Employee implements \JsonSerializable
{ {
@ -40,6 +46,9 @@ class Employee implements \JsonSerializable
/** /**
* Account profile. * Account profile.
* *
* @question Employees are linked to profiles, they should probably be linked to accounts?
* https://github.com/Karaka-Management/oms-HumanResourceManagement/issues/11
*
* @var Profile * @var Profile
* @since 1.0.0 * @since 1.0.0
*/ */