FIX : travis + User::hasRight() function modification to take care of hrm specific rights

This commit is contained in:
Gauthier PC portable 024 2021-10-05 12:42:42 +02:00
parent 75c7502922
commit bea17e8d78
3 changed files with 36 additions and 91 deletions

View File

@ -71,7 +71,7 @@ class Evaluation extends CommonObject
const STATUS_DRAFT = 0; const STATUS_DRAFT = 0;
const STATUS_VALIDATED = 1; const STATUS_VALIDATED = 1;
const STATUS_CANCELED = 9; const STATUS_CANCELED = 9;
const STATUS_CLOSED = 2; const STATUS_CLOSED = 6;
/** /**
@ -107,7 +107,7 @@ class Evaluation extends CommonObject
public $fields=array( public $fields=array(
'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>0, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"), 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>0, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"),
'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>'1', 'position'=>20, 'notnull'=>1, 'visible'=>4, 'noteditable'=>'1', 'default'=>'(PROV)', 'index'=>1, 'searchall'=>1, 'showoncombobox'=>'1', 'comment'=>"Reference of object"), 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>'1', 'position'=>20, 'notnull'=>1, 'visible'=>4, 'noteditable'=>'1', 'default'=>'(PROV)', 'index'=>1, 'searchall'=>1, 'showoncombobox'=>'1', 'comment'=>"Reference of object"),
'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'searchall'=>1, 'css'=>'minwidth300', 'cssview'=>'wordbreak', 'showoncombobox'=>'2',), 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>'1', 'position'=>30, 'notnull'=>0, 'visible'=>1, 'searchall'=>1, 'css'=>'minwidth300', 'cssview'=>'wordbreak', 'showoncombobox'=>'2',),
'description' => array('type'=>'text', 'label'=>'Description', 'enabled'=>'1', 'position'=>60, 'notnull'=>0, 'visible'=>3,), 'description' => array('type'=>'text', 'label'=>'Description', 'enabled'=>'1', 'position'=>60, 'notnull'=>0, 'visible'=>3,),
'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>'1', 'position'=>61, 'notnull'=>0, 'visible'=>0,), 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>'1', 'position'=>61, 'notnull'=>0, 'visible'=>0,),
'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>'1', 'position'=>62, 'notnull'=>0, 'visible'=>0,), 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>'1', 'position'=>62, 'notnull'=>0, 'visible'=>0,),
@ -154,7 +154,7 @@ class Evaluation extends CommonObject
/** /**
* @var string Name of subtable class that manage subtable lines * @var string Name of subtable class that manage subtable lines
*/ */
public $class_element_line = 'Evaluationdet'; public $class_element_line = 'Evaluationline';
// /** // /**
// * @var array List of child tables. To test if we can delete object. // * @var array List of child tables. To test if we can delete object.
@ -166,10 +166,10 @@ class Evaluation extends CommonObject
// * If name matches '@ClassNAme:FilePathClass;ParentFkFieldName' it will // * If name matches '@ClassNAme:FilePathClass;ParentFkFieldName' it will
// * call method deleteByParentField(parentId, ParentFkFieldName) to fetch and delete child object // * call method deleteByParentField(parentId, ParentFkFieldName) to fetch and delete child object
// */ // */
protected $childtablesoncascade = array('@Evaluationdet:hrm/class/evaluationdet.class.php:fk_evaluation'); protected $childtablesoncascade = array('@Evaluationline:hrm/class/evaluationdet.class.php:fk_evaluation');
/** /**
* @var Evaluationdet[] Array of subtable lines * @var Evaluationline[] Array of subtable lines
*/ */
public $lines = array(); public $lines = array();
@ -233,7 +233,7 @@ class Evaluation extends CommonObject
if (is_array($TRequiredRanks) && !empty($TRequiredRanks)) { if (is_array($TRequiredRanks) && !empty($TRequiredRanks)) {
$this->lines = array(); $this->lines = array();
foreach ($TRequiredRanks as $required) { foreach ($TRequiredRanks as $required) {
$line = new Evaluationdet($this->db); $line = new Evaluationline($this->db);
$line->fk_evaluation = $resultcreate; $line->fk_evaluation = $resultcreate;
$line->fk_skill = $required->fk_skill; $line->fk_skill = $required->fk_skill;
$line->required_rank = $required->rank; $line->required_rank = $required->rank;
@ -372,42 +372,8 @@ class Evaluation extends CommonObject
{ {
$this->lines = array(); $this->lines = array();
$objectlineclassname = get_class($this).'det'; $result = $this->fetchLinesCommon();
if (!class_exists($objectlineclassname)) { return $result;
$this->error = 'Error, class '.$objectlineclassname.' not found during call of fetchLinesCommon';
return -1;
}
$objectline = new $objectlineclassname($this->db);
$sql = 'SELECT '.$objectline->getFieldList('l');
$sql .= ' FROM '.MAIN_DB_PREFIX.$objectline->table_element.' as l';
$sql .= ' WHERE l.fk_'.$this->element.' = '.$this->id;
if (isset($objectline->fields['position'])) {
$sql .= $this->db->order('position', 'ASC');
}
$resql = $this->db->query($sql);
if ($resql) {
$num_rows = $this->db->num_rows($resql);
$i = 0;
while ($i < $num_rows) {
$obj = $this->db->fetch_object($resql);
if ($obj) {
$newline = new $objectlineclassname($this->db);
$newline->setVarsFromFetchObj($obj);
$this->lines[] = $newline;
}
$i++;
}
return 1;
} else {
$this->error = $this->db->lasterror();
$this->errors[] = $this->error;
return -1;
}
} }
@ -965,7 +931,7 @@ class Evaluation extends CommonObject
{ {
$this->lines = array(); $this->lines = array();
$objectline = new Evaluationdet($this->db); $objectline = new Evaluationline($this->db);
$result = $objectline->fetchAll('ASC', '', 0, 0, array('customsql'=>'fk_evaluation = '.$this->id)); $result = $objectline->fetchAll('ASC', '', 0, 0, array('customsql'=>'fk_evaluation = '.$this->id));
if (is_numeric($result)) { if (is_numeric($result)) {

View File

@ -32,9 +32,9 @@ require_once DOL_DOCUMENT_ROOT . '/hrm/class/skillrank.class.php';
//require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; //require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php';
/** /**
* Class for Evaluationdet * Class for Evaluationline
*/ */
class Evaluationdet extends CommonObject class Evaluationline extends CommonObject
{ {
/** /**
* @var string ID of module. * @var string ID of module.
@ -133,7 +133,7 @@ class Evaluationdet extends CommonObject
// /** // /**
// * @var string Name of subtable line // * @var string Name of subtable line
// */ // */
// public $table_element_line = 'hrm_evaluationdetline'; // public $table_element_line = 'hrm_evaluationline';
// /** // /**
// * @var string Field with ID of parent key if this object has a parent // * @var string Field with ID of parent key if this object has a parent
@ -143,7 +143,7 @@ class Evaluationdet extends CommonObject
// /** // /**
// * @var string Name of subtable class that manage subtable lines // * @var string Name of subtable class that manage subtable lines
// */ // */
// public $class_element_line = 'Evaluationdetline'; // public $class_element_line = 'Evaluationline';
// /** // /**
// * @var array List of child tables. To test if we can delete object. // * @var array List of child tables. To test if we can delete object.
@ -158,7 +158,7 @@ class Evaluationdet extends CommonObject
// protected $childtablesoncascade = array('hrm_evaluationdetdet'); // protected $childtablesoncascade = array('hrm_evaluationdetdet');
// /** // /**
// * @var EvaluationdetLine[] Array of subtable lines // * @var EvaluationLine[] Array of subtable lines
// */ // */
// public $lines = array(); // public $lines = array();
@ -543,7 +543,7 @@ class Evaluationdet extends CommonObject
if (!$error && !$notrigger) { if (!$error && !$notrigger) {
// Call trigger // Call trigger
$result = $this->call_trigger('EVALUATIONDET_VALIDATE', $user); $result = $this->call_trigger('EVALUATIONLINE_VALIDATE', $user);
if ($result < 0) { if ($result < 0) {
$error++; $error++;
} }
@ -557,8 +557,8 @@ class Evaluationdet extends CommonObject
// Rename directory if dir was a temporary ref // Rename directory if dir was a temporary ref
if (preg_match('/^[\(]?PROV/i', $this->ref)) { if (preg_match('/^[\(]?PROV/i', $this->ref)) {
// Now we rename also files into index // Now we rename also files into index
$sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref) + 1).")), filepath = 'evaluationdet/".$this->db->escape($this->newref)."'"; $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref) + 1).")), filepath = 'evaluationline/".$this->db->escape($this->newref)."'";
$sql .= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'evaluationdet/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $sql .= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'evaluationline/".$this->db->escape($this->ref)."' and entity = ".$conf->entity;
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (!$resql) { if (!$resql) {
$error++; $this->error = $this->db->lasterror(); $error++; $this->error = $this->db->lasterror();
@ -567,15 +567,15 @@ class Evaluationdet extends CommonObject
// We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments
$oldref = dol_sanitizeFileName($this->ref); $oldref = dol_sanitizeFileName($this->ref);
$newref = dol_sanitizeFileName($num); $newref = dol_sanitizeFileName($num);
$dirsource = $conf->hrm->dir_output.'/evaluationdet/'.$oldref; $dirsource = $conf->hrm->dir_output.'/evaluationline/'.$oldref;
$dirdest = $conf->hrm->dir_output.'/evaluationdet/'.$newref; $dirdest = $conf->hrm->dir_output.'/evaluationline/'.$newref;
if (!$error && file_exists($dirsource)) { if (!$error && file_exists($dirsource)) {
dol_syslog(get_class($this)."::validate() rename dir ".$dirsource." into ".$dirdest); dol_syslog(get_class($this)."::validate() rename dir ".$dirsource." into ".$dirdest);
if (@rename($dirsource, $dirdest)) { if (@rename($dirsource, $dirdest)) {
dol_syslog("Rename ok"); dol_syslog("Rename ok");
// Rename docs starting with $oldref with $newref // Rename docs starting with $oldref with $newref
$listoffiles = dol_dir_list($conf->hrm->dir_output.'/evaluationdet/'.$newref, 'files', 1, '^'.preg_quote($oldref, '/')); $listoffiles = dol_dir_list($conf->hrm->dir_output.'/evaluationline/'.$newref, 'files', 1, '^'.preg_quote($oldref, '/'));
foreach ($listoffiles as $fileentry) { foreach ($listoffiles as $fileentry) {
$dirsource = $fileentry['name']; $dirsource = $fileentry['name'];
$dirdest = preg_replace('/^'.preg_quote($oldref, '/').'/', $newref, $dirsource); $dirdest = preg_replace('/^'.preg_quote($oldref, '/').'/', $newref, $dirsource);
@ -625,7 +625,7 @@ class Evaluationdet extends CommonObject
return -1; return -1;
}*/ }*/
return $this->setStatusCommon($user, self::STATUS_DRAFT, $notrigger, 'EVALUATIONDET_UNVALIDATE'); return $this->setStatusCommon($user, self::STATUS_DRAFT, $notrigger, 'EVALUATIONLINE_UNVALIDATE');
} }
/** /**
@ -649,7 +649,7 @@ class Evaluationdet extends CommonObject
return -1; return -1;
}*/ }*/
return $this->setStatusCommon($user, self::STATUS_CANCELED, $notrigger, 'EVALUATIONDET_CANCEL'); return $this->setStatusCommon($user, self::STATUS_CANCELED, $notrigger, 'EVALUATIONLINE_CANCEL');
} }
/** /**
@ -673,7 +673,7 @@ class Evaluationdet extends CommonObject
return -1; return -1;
}*/ }*/
return $this->setStatusCommon($user, self::STATUS_VALIDATED, $notrigger, 'EVALUATIONDET_REOPEN'); return $this->setStatusCommon($user, self::STATUS_VALIDATED, $notrigger, 'EVALUATIONLINE_REOPEN');
} }
/** /**
@ -779,7 +779,7 @@ class Evaluationdet extends CommonObject
//if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : ''); //if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : '');
global $action, $hookmanager; global $action, $hookmanager;
$hookmanager->initHooks(array('evaluationdetdao')); $hookmanager->initHooks(array('evaluationlinedao'));
$parameters = array('id'=>$this->id, 'getnomurl'=>$result); $parameters = array('id'=>$this->id, 'getnomurl'=>$result);
$reshook = $hookmanager->executeHooks('getNomUrl', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks $reshook = $hookmanager->executeHooks('getNomUrl', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks
if ($reshook > 0) { if ($reshook > 0) {
@ -903,7 +903,7 @@ class Evaluationdet extends CommonObject
{ {
$this->lines = array(); $this->lines = array();
$objectline = new EvaluationdetLine($this->db); $objectline = new EvaluationLine($this->db);
$result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_evaluationdet = '.$this->id)); $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_evaluationdet = '.$this->id));
if (is_numeric($result)) { if (is_numeric($result)) {
@ -926,15 +926,15 @@ class Evaluationdet extends CommonObject
global $langs, $conf; global $langs, $conf;
$langs->load("hrm"); $langs->load("hrm");
if (empty($conf->global->hrm_EVALUATIONDET_ADDON)) { if (empty($conf->global->hrm_EVALUATIONLINE_ADDON)) {
$conf->global->hrm_EVALUATIONDET_ADDON = 'mod_evaluationdet_standard'; $conf->global->hrm_EVALUATIONLINE_ADDON = 'mod_evaluationdet_standard';
} }
if (!empty($conf->global->hrm_EVALUATIONDET_ADDON)) { if (!empty($conf->global->hrm_EVALUATIONLINE_ADDON)) {
$mybool = false; $mybool = false;
$file = $conf->global->hrm_EVALUATIONDET_ADDON.".php"; $file = $conf->global->hrm_EVALUATIONLINE_ADDON.".php";
$classname = $conf->global->hrm_EVALUATIONDET_ADDON; $classname = $conf->global->hrm_EVALUATIONLINE_ADDON;
// Include file with class // Include file with class
$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
@ -996,8 +996,8 @@ class Evaluationdet extends CommonObject
if (!empty($this->model_pdf)) { if (!empty($this->model_pdf)) {
$modele = $this->model_pdf; $modele = $this->model_pdf;
} elseif (!empty($conf->global->EVALUATIONDET_ADDON_PDF)) { } elseif (!empty($conf->global->EVALUATIONLINE_ADDON_PDF)) {
$modele = $conf->global->EVALUATIONDET_ADDON_PDF; $modele = $conf->global->EVALUATIONLINE_ADDON_PDF;
} }
} }
@ -1043,27 +1043,3 @@ class Evaluationdet extends CommonObject
require_once DOL_DOCUMENT_ROOT.'/core/class/commonobjectline.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/commonobjectline.class.php';
/**
* Class EvaluationdetLine. You can also remove this and generate a CRUD class for lines objects.
*/
class EvaluationdetLine extends CommonObjectLine
{
// To complete with content of an object EvaluationdetLine
// We should have a field rowid, fk_evaluationdet and position
/**
* @var int Does object support extrafields ? 0=No, 1=Yes
*/
public $isextrafieldmanaged = 0;
/**
* Constructor
*
* @param DoliDb $db Database handler
*/
public function __construct(DoliDB $db)
{
$this->db = $db;
}
}

View File

@ -686,7 +686,10 @@ class User extends CommonObject
'fichinter' => 'ficheinter', 'fichinter' => 'ficheinter',
'invoice' => 'facture', 'invoice' => 'facture',
'invoice_supplier' => 'fournisseur', 'invoice_supplier' => 'fournisseur',
'knowledgerecord' => 'knowledgerecord@knowledgemanagement' 'knowledgerecord' => 'knowledgerecord@knowledgemanagement',
'skill@hrm' => 'all@hrm', // skill / job / position objects rights are for the moment grouped into right level "all"
'job@hrm' => 'all@hrm', // skill / job / position objects rights are for the moment grouped into right level "all"
'position@hrm' => 'all@hrm' // skill / job / position objects rights are for the moment grouped into right level "all"
); );
if (!empty($moduletomoduletouse[$module])) { if (!empty($moduletomoduletouse[$module])) {
$module = $moduletomoduletouse[$module]; $module = $moduletomoduletouse[$module];