Careers: Allow to load career from external career id BT#18720

pull/3905/head
Julio Montoya 5 years ago
parent fe49af5623
commit 9b3f3648a6
  1. 1
      main/admin/career_diagram.php
  2. 6
      main/admin/careers.php
  3. 19
      main/inc/lib/career.lib.php
  4. 12
      main/user/career_diagram.php

@ -19,7 +19,6 @@ if (false === api_get_configuration_value('allow_career_diagram')) {
}
$careerId = isset($_GET['id']) ? (int) $_GET['id'] : 0;
//$userId = isset($_GET['user_id']) ? $_GET['user_id'] : api_get_user_id();
if (empty($careerId)) {
api_not_allowed(true);

@ -24,15 +24,15 @@ $interbreadcrumb[] = [
'name' => get_lang('CareersAndPromotions'),
];
$action = isset($_GET['action']) ? $_GET['action'] : null;
$action = $_GET['action'] ?? null;
$check = Security::check_token('request');
$token = Security::get_token();
if ($action == 'add') {
if ($action === 'add') {
$interbreadcrumb[] = ['url' => 'careers.php', 'name' => get_lang('Careers')];
$tool_name = get_lang('Add');
} elseif ($action == 'edit') {
} elseif ($action === 'edit') {
$interbreadcrumb[] = ['url' => 'careers.php', 'name' => get_lang('Careers')];
$interbreadcrumb[] = ['url' => '#', 'name' => get_lang('Edit')];
$tool_name = get_lang('Edit');

@ -20,14 +20,27 @@ class Career extends Model
'updated_at',
];
/**
* Constructor.
*/
public function __construct()
{
$this->table = Database::get_main_table(TABLE_CAREER);
}
public function getFromExternalExtraField($careerId, $extraFieldVariable = 'external_career_id')
{
$careerExtraFieldValue = new ExtraFieldValue('career');
$careerValue = $careerExtraFieldValue->get_item_id_from_field_variable_and_field_value(
$extraFieldVariable,
$careerId
);
$careerInfo = [];
if (isset($careerValue['item_id'])) {
$careerInfo = $this->get($careerValue['item_id']);
}
return $careerInfo;
}
/**
* Get the count of elements.
*

@ -36,13 +36,9 @@ if ($isInternal) {
$careerInfo = $career->get($careerId);
} else {
// Try with the external career id.
$careerExtraFieldValue = new ExtraFieldValue('career');
$careerValue = $careerExtraFieldValue->get_item_id_from_field_variable_and_field_value(
'external_career_id',
$careerId
);
if (isset($careerValue['item_id'])) {
$careerInfo = $career->get($careerValue['item_id']);
$careerInfo = $career->getFromExternalExtraField($careerId);
if (!empty($careerInfo)) {
$careerId = $careerInfo['id'];
}
}
@ -52,7 +48,7 @@ if (empty($careerInfo)) {
$allow = UserManager::userHasCareer($userId, $careerId) || api_is_platform_admin() || api_is_drh();
if ($allow === false) {
if (false === $allow) {
api_not_allowed(true);
}

Loading…
Cancel
Save