Merge remote-tracking branch 'upstream/develop' into emailsubscription
This commit is contained in:
commit
f0d6029d60
@ -7,7 +7,7 @@
|
|||||||
* Copyright (C) 2009-2017 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2009-2017 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2014-2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2014-2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2015-2018 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2015-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
* Copyright (C) 2016 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2016 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2018-2019 Thibault FOUCART <support@ptibogxiv.net>
|
* Copyright (C) 2018-2019 Thibault FOUCART <support@ptibogxiv.net>
|
||||||
@ -60,6 +60,9 @@ class Adherent extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public $ismultientitymanaged = 1;
|
public $ismultientitymanaged = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string picto
|
||||||
|
*/
|
||||||
public $picto = 'member';
|
public $picto = 'member';
|
||||||
|
|
||||||
|
|
||||||
@ -70,13 +73,19 @@ class Adherent extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public $login;
|
public $login;
|
||||||
|
|
||||||
//! Clear password in memory
|
/**
|
||||||
|
* @var Clear password in memory
|
||||||
|
*/
|
||||||
public $pass;
|
public $pass;
|
||||||
|
|
||||||
//! Clear password in database (defined if DATABASE_PWD_ENCRYPTED=0)
|
/**
|
||||||
|
* @var Clear password in database (defined if DATABASE_PWD_ENCRYPTED=0)
|
||||||
|
*/
|
||||||
public $pass_indatabase;
|
public $pass_indatabase;
|
||||||
|
|
||||||
//! Encrypted password in database (always defined)
|
/**
|
||||||
|
* @var Encrypted password in database (always defined)
|
||||||
|
*/
|
||||||
public $pass_indatabase_crypted;
|
public $pass_indatabase_crypted;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -169,6 +178,11 @@ class Adherent extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public $phone_perso;
|
public $phone_perso;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Professional Phone number
|
||||||
|
*/
|
||||||
|
public $phone_pro;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string Mobile phone number
|
* @var string Mobile phone number
|
||||||
*/
|
*/
|
||||||
@ -184,6 +198,9 @@ class Adherent extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public $poste;
|
public $poste;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string mor or phy
|
||||||
|
*/
|
||||||
public $morphy;
|
public $morphy;
|
||||||
|
|
||||||
public $public;
|
public $public;
|
||||||
@ -191,6 +208,10 @@ class Adherent extends CommonObject
|
|||||||
// -1:brouillon, 0:resilie, >=1:valide,paye
|
// -1:brouillon, 0:resilie, >=1:valide,paye
|
||||||
// def in common object
|
// def in common object
|
||||||
//public $status;
|
//public $status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string photo of member
|
||||||
|
*/
|
||||||
public $photo;
|
public $photo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -209,6 +230,9 @@ class Adherent extends CommonObject
|
|||||||
|
|
||||||
public $datevalid;
|
public $datevalid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string gender
|
||||||
|
*/
|
||||||
public $gender;
|
public $gender;
|
||||||
|
|
||||||
public $birth;
|
public $birth;
|
||||||
@ -258,7 +282,11 @@ class Adherent extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public $entity;
|
public $entity;
|
||||||
|
|
||||||
public $fields = array('rowid' => array('type' => 'integer', 'label' => 'TechnicalID', 'enabled' => 1, 'visible' => -1, 'notnull' => 1, 'position' => 10),
|
/**
|
||||||
|
* @var array fields
|
||||||
|
*/
|
||||||
|
public $fields = array(
|
||||||
|
'rowid' => array('type' => 'integer', 'label' => 'TechnicalID', 'enabled' => 1, 'visible' => -1, 'notnull' => 1, 'position' => 10),
|
||||||
'entity' => array('type' => 'integer', 'label' => 'Entity', 'default' => 1, 'enabled' => 1, 'visible' => -2, 'notnull' => 1, 'position' => 15, 'index' => 1),
|
'entity' => array('type' => 'integer', 'label' => 'Entity', 'default' => 1, 'enabled' => 1, 'visible' => -2, 'notnull' => 1, 'position' => 15, 'index' => 1),
|
||||||
'ref_ext' => array('type' => 'varchar(128)', 'label' => 'Ref ext', 'enabled' => 1, 'visible' => 0, 'position' => 20),
|
'ref_ext' => array('type' => 'varchar(128)', 'label' => 'Ref ext', 'enabled' => 1, 'visible' => 0, 'position' => 20),
|
||||||
'civility' => array('type' => 'varchar(6)', 'label' => 'Civility', 'enabled' => 1, 'visible' => -1, 'position' => 25),
|
'civility' => array('type' => 'varchar(6)', 'label' => 'Civility', 'enabled' => 1, 'visible' => -1, 'position' => 25),
|
||||||
@ -298,7 +326,8 @@ class Adherent extends CommonObject
|
|||||||
'statut' => array('type' => 'smallint(6)', 'label' => 'Statut', 'enabled' => 1, 'visible' => -1, 'notnull' => 1, 'position' => 500,
|
'statut' => array('type' => 'smallint(6)', 'label' => 'Statut', 'enabled' => 1, 'visible' => -1, 'notnull' => 1, 'position' => 500,
|
||||||
'arrayofkeyval' => array(0 => 'Draft', 1 => 'Validated', -1 => 'MemberStatusResiliatedShort')),
|
'arrayofkeyval' => array(0 => 'Draft', 1 => 'Validated', -1 => 'MemberStatusResiliatedShort')),
|
||||||
'model_pdf' => array('type' => 'varchar(255)', 'label' => 'Model pdf', 'enabled' => 1, 'visible' => 0, 'position' => 800),
|
'model_pdf' => array('type' => 'varchar(255)', 'label' => 'Model pdf', 'enabled' => 1, 'visible' => 0, 'position' => 800),
|
||||||
'import_key' => array('type' => 'varchar(14)', 'label' => 'ImportId', 'enabled' => 1, 'visible' => -2, 'position' => 805));
|
'import_key' => array('type' => 'varchar(14)', 'label' => 'ImportId', 'enabled' => 1, 'visible' => -2, 'position' => 805)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -407,7 +436,8 @@ class Adherent extends CommonObject
|
|||||||
$infos .= $langs->transnoentities("Public").": ".yn($this->public);
|
$infos .= $langs->transnoentities("Public").": ".yn($this->public);
|
||||||
|
|
||||||
// Substitutions
|
// Substitutions
|
||||||
$substitutionarray = array('__ID__' => $this->id, '__MEMBER_ID__' => $this->id, '__CIVILITY__' => $this->getCivilityLabel(),
|
$substitutionarray = array(
|
||||||
|
'__ID__' => $this->id, '__MEMBER_ID__' => $this->id, '__CIVILITY__' => $this->getCivilityLabel(),
|
||||||
'__FIRSTNAME__' => $msgishtml ? dol_htmlentitiesbr($this->firstname) : ($this->firstname ? $this->firstname : ''),
|
'__FIRSTNAME__' => $msgishtml ? dol_htmlentitiesbr($this->firstname) : ($this->firstname ? $this->firstname : ''),
|
||||||
'__LASTNAME__' => $msgishtml ? dol_htmlentitiesbr($this->lastname) : ($this->lastname ? $this->lastname : ''),
|
'__LASTNAME__' => $msgishtml ? dol_htmlentitiesbr($this->lastname) : ($this->lastname ? $this->lastname : ''),
|
||||||
'__FULLNAME__' => $msgishtml ? dol_htmlentitiesbr($this->getFullName($langs)) : $this->getFullName($langs),
|
'__FULLNAME__' => $msgishtml ? dol_htmlentitiesbr($this->getFullName($langs)) : $this->getFullName($langs),
|
||||||
@ -422,7 +452,8 @@ class Adherent extends CommonObject
|
|||||||
'__PHONE__' => $msgishtml ? dol_htmlentitiesbr($this->phone) : ($this->phone ? $this->phone : ''),
|
'__PHONE__' => $msgishtml ? dol_htmlentitiesbr($this->phone) : ($this->phone ? $this->phone : ''),
|
||||||
'__PHONEPRO__' => $msgishtml ? dol_htmlentitiesbr($this->phone_perso) : ($this->phone_perso ? $this->phone_perso : ''),
|
'__PHONEPRO__' => $msgishtml ? dol_htmlentitiesbr($this->phone_perso) : ($this->phone_perso ? $this->phone_perso : ''),
|
||||||
'__PHONEMOBILE__' => $msgishtml ? dol_htmlentitiesbr($this->phone_mobile) : ($this->phone_mobile ? $this->phone_mobile : ''),
|
'__PHONEMOBILE__' => $msgishtml ? dol_htmlentitiesbr($this->phone_mobile) : ($this->phone_mobile ? $this->phone_mobile : ''),
|
||||||
'__TYPE__' => $msgishtml ? dol_htmlentitiesbr($this->type) : ($this->type ? $this->type : ''));
|
'__TYPE__' => $msgishtml ? dol_htmlentitiesbr($this->type) : ($this->type ? $this->type : '')
|
||||||
|
);
|
||||||
|
|
||||||
complete_substitutions_array($substitutionarray, $langs, $this);
|
complete_substitutions_array($substitutionarray, $langs, $this);
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
/* Copyright (C) 2016 Xebax Christy <xebax@wanadoo.fr>
|
/* Copyright (C) 2016 Xebax Christy <xebax@wanadoo.fr>
|
||||||
* Copyright (C) 2017 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2017 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2020 Thibault FOUCART<support@ptibogxiv.net>
|
* Copyright (C) 2020 Thibault FOUCART<support@ptibogxiv.net>
|
||||||
|
* Copyright (C) 2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -85,7 +86,7 @@ class Members extends DolibarrApi
|
|||||||
*
|
*
|
||||||
* @param int $thirdparty ID of third party
|
* @param int $thirdparty ID of third party
|
||||||
*
|
*
|
||||||
* @return array|mixed Data without useless information
|
* @return Object Data without useless information
|
||||||
*
|
*
|
||||||
* @url GET thirdparty/{thirdparty}
|
* @url GET thirdparty/{thirdparty}
|
||||||
*
|
*
|
||||||
@ -118,7 +119,7 @@ class Members extends DolibarrApi
|
|||||||
*
|
*
|
||||||
* @param string $email Email of third party
|
* @param string $email Email of third party
|
||||||
*
|
*
|
||||||
* @return array|mixed Data without useless information
|
* @return Object Data without useless information
|
||||||
*
|
*
|
||||||
* @url GET thirdparty/email/{email}
|
* @url GET thirdparty/email/{email}
|
||||||
*
|
*
|
||||||
@ -157,7 +158,7 @@ class Members extends DolibarrApi
|
|||||||
*
|
*
|
||||||
* @param string $barcode Barcode of third party
|
* @param string $barcode Barcode of third party
|
||||||
*
|
*
|
||||||
* @return array|mixed Data without useless information
|
* @return Object Data without useless information
|
||||||
*
|
*
|
||||||
* @url GET thirdparty/barcode/{barcode}
|
* @url GET thirdparty/barcode/{barcode}
|
||||||
*
|
*
|
||||||
@ -301,7 +302,7 @@ class Members extends DolibarrApi
|
|||||||
*
|
*
|
||||||
* @param int $id ID of member to update
|
* @param int $id ID of member to update
|
||||||
* @param array $request_data Datas
|
* @param array $request_data Datas
|
||||||
* @return int
|
* @return Object Updated object
|
||||||
*/
|
*/
|
||||||
public function put($id, $request_data = null)
|
public function put($id, $request_data = null)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2020 Tobias Sekan <tobias.sekan@startmail.com>
|
* Copyright (C) 2020 Tobias Sekan <tobias.sekan@startmail.com>
|
||||||
|
* Copyright (C) 2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -39,8 +40,7 @@ $result = restrictedArea($user, 'adherent', $id, '', '', 'socid', 'rowid', $objc
|
|||||||
|
|
||||||
|
|
||||||
$result = $adherent->fetch($id);
|
$result = $adherent->fetch($id);
|
||||||
if ($result <= 0)
|
if ($result <= 0) {
|
||||||
{
|
|
||||||
dol_print_error($adherent->error);
|
dol_print_error($adherent->error);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -48,8 +48,7 @@ if ($result <= 0)
|
|||||||
$physicalperson = 1;
|
$physicalperson = 1;
|
||||||
|
|
||||||
$company = new Societe($db);
|
$company = new Societe($db);
|
||||||
if ($adherent->socid)
|
if ($adherent->socid) {
|
||||||
{
|
|
||||||
$result = $company->fetch($adherent->socid);
|
$result = $company->fetch($adherent->socid);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,37 +71,35 @@ $v->setAddress("", "", $adherent->address, $adherent->town, $adherent->state, $a
|
|||||||
$v->setLabel("", "", $adherent->address, $adherent->town, $adherent->state, $adherent->zip, $country, "TYPE=WORK");
|
$v->setLabel("", "", $adherent->address, $adherent->town, $adherent->state, $adherent->zip, $country, "TYPE=WORK");
|
||||||
|
|
||||||
$v->setEmail($adherent->email);
|
$v->setEmail($adherent->email);
|
||||||
$v->setNote($adherent->note);
|
$v->setNote($adherent->note_public);
|
||||||
$v->setTitle($adherent->poste);
|
$v->setTitle($adherent->poste);
|
||||||
|
|
||||||
// Data from linked company
|
// Data from linked company
|
||||||
if ($company->id)
|
if ($company->id) {
|
||||||
{
|
|
||||||
$v->setURL($company->url, "TYPE=WORK");
|
$v->setURL($company->url, "TYPE=WORK");
|
||||||
if (!$adherent->phone_pro) $v->setPhoneNumber($company->phone, "TYPE=WORK;VOICE");
|
if (!$adherent->phone_pro) {
|
||||||
if (!$adherent->fax) $v->setPhoneNumber($company->fax, "TYPE=WORK;FAX");
|
$v->setPhoneNumber($company->phone, "TYPE=WORK;VOICE");
|
||||||
if (!$adherent->zip) $v->setAddress("", "", $company->address, $company->town, $company->state, $company->zip, $company->country, "TYPE=WORK;POSTAL");
|
}
|
||||||
|
if (!$adherent->fax) {
|
||||||
|
$v->setPhoneNumber($company->fax, "TYPE=WORK;FAX");
|
||||||
|
}
|
||||||
|
if (!$adherent->zip) {
|
||||||
|
$v->setAddress("", "", $company->address, $company->town, $company->state, $company->zip, $company->country, "TYPE=WORK;POSTAL");
|
||||||
|
}
|
||||||
// when company e-mail is empty, use only adherent e-mail
|
// when company e-mail is empty, use only adherent e-mail
|
||||||
if (empty(trim($company->email)))
|
if (empty(trim($company->email))) {
|
||||||
{
|
|
||||||
// was set before, don't set twice
|
// was set before, don't set twice
|
||||||
}
|
} elseif (empty(trim($adherent->email))) {
|
||||||
// when adherent e-mail is empty, use only company e-mail
|
// when adherent e-mail is empty, use only company e-mail
|
||||||
elseif (empty(trim($adherent->email)))
|
|
||||||
{
|
|
||||||
$v->setEmail($company->email);
|
$v->setEmail($company->email);
|
||||||
}
|
} elseif (strtolower(end(explode("@", $adherent->email))) == strtolower(end(explode("@", $company->email)))) {
|
||||||
// when e-mail domain of adherent and company are the same, use adherent e-mail at first (and company e-mail at second)
|
// when e-mail domain of adherent and company are the same, use adherent e-mail at first (and company e-mail at second)
|
||||||
elseif (strtolower(end(explode("@", $adherent->email))) == strtolower(end(explode("@", $company->email))))
|
|
||||||
{
|
|
||||||
$v->setEmail($adherent->email);
|
$v->setEmail($adherent->email);
|
||||||
|
|
||||||
// support by Microsoft Outlook (2019 and possible earlier)
|
// support by Microsoft Outlook (2019 and possible earlier)
|
||||||
$v->setEmail($company->email, 'INTERNET');
|
$v->setEmail($company->email, 'INTERNET');
|
||||||
}
|
} else {
|
||||||
// when e-mail of adherent and company complete different use company e-mail at first (and adherent e-mail at second)
|
// when e-mail of adherent and company complete different use company e-mail at first (and adherent e-mail at second)
|
||||||
else {
|
|
||||||
$v->setEmail($company->email);
|
$v->setEmail($company->email);
|
||||||
|
|
||||||
// support by Microsoft Outlook (2019 and possible earlier)
|
// support by Microsoft Outlook (2019 and possible earlier)
|
||||||
@ -115,7 +112,9 @@ if ($company->id)
|
|||||||
|
|
||||||
// Personal informations
|
// Personal informations
|
||||||
$v->setPhoneNumber($adherent->phone_perso, "TYPE=HOME;VOICE");
|
$v->setPhoneNumber($adherent->phone_perso, "TYPE=HOME;VOICE");
|
||||||
if ($adherent->birthday) $v->setBirthday($adherent->birthday);
|
if ($adherent->birth) {
|
||||||
|
$v->setBirthday($adherent->birth);
|
||||||
|
}
|
||||||
|
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|
||||||
|
|||||||
@ -92,10 +92,13 @@ class DolGeoIP
|
|||||||
} elseif (function_exists('geoip_open'))
|
} elseif (function_exists('geoip_open'))
|
||||||
{
|
{
|
||||||
$this->gi = geoip_open($datfile, GEOIP_STANDARD);
|
$this->gi = geoip_open($datfile, GEOIP_STANDARD);
|
||||||
} else {
|
}
|
||||||
|
elseif (function_exists('geoip_country_code_by_name')) {
|
||||||
$this->gi = 'NOGI'; // We are using embedded php geoip functions
|
$this->gi = 'NOGI'; // We are using embedded php geoip functions
|
||||||
//print 'function_exists(geoip_country_code_by_name))='.function_exists('geoip_country_code_by_name');
|
//print 'function_exists(geoip_country_code_by_name))='.function_exists('geoip_country_code_by_name');
|
||||||
//print geoip_database_info();
|
//print geoip_database_info();
|
||||||
|
} else {
|
||||||
|
$this->gi = ''; // For avoid error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -86,7 +86,9 @@ class Users extends DolibarrApi
|
|||||||
$sql .= ", ".MAIN_DB_PREFIX."categorie_user as c";
|
$sql .= ", ".MAIN_DB_PREFIX."categorie_user as c";
|
||||||
}
|
}
|
||||||
$sql .= ' WHERE t.entity IN ('.getEntity('user').')';
|
$sql .= ' WHERE t.entity IN ('.getEntity('user').')';
|
||||||
if ($user_ids) $sql .= " AND t.rowid IN (".$user_ids.")";
|
if ($user_ids) {
|
||||||
|
$sql .= " AND t.rowid IN (".$user_ids.")";
|
||||||
|
}
|
||||||
|
|
||||||
// Select products of given category
|
// Select products of given category
|
||||||
if ($category > 0) {
|
if ($category > 0) {
|
||||||
@ -95,10 +97,8 @@ class Users extends DolibarrApi
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add sql filters
|
// Add sql filters
|
||||||
if ($sqlfilters)
|
if ($sqlfilters) {
|
||||||
{
|
if (!DolibarrApi::_checkFilters($sqlfilters)) {
|
||||||
if (!DolibarrApi::_checkFilters($sqlfilters))
|
|
||||||
{
|
|
||||||
throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
|
throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
|
||||||
}
|
}
|
||||||
$regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
|
$regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
|
||||||
@ -107,8 +107,7 @@ class Users extends DolibarrApi
|
|||||||
|
|
||||||
$sql .= $this->db->order($sortfield, $sortorder);
|
$sql .= $this->db->order($sortfield, $sortorder);
|
||||||
if ($limit) {
|
if ($limit) {
|
||||||
if ($page < 0)
|
if ($page < 0) {
|
||||||
{
|
|
||||||
$page = 0;
|
$page = 0;
|
||||||
}
|
}
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
@ -118,13 +117,11 @@ class Users extends DolibarrApi
|
|||||||
|
|
||||||
$result = $this->db->query($sql);
|
$result = $this->db->query($sql);
|
||||||
|
|
||||||
if ($result)
|
if ($result) {
|
||||||
{
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
$num = $this->db->num_rows($result);
|
$num = $this->db->num_rows($result);
|
||||||
$min = min($num, ($limit <= 0 ? $num : $limit));
|
$min = min($num, ($limit <= 0 ? $num : $limit));
|
||||||
while ($i < $min)
|
while ($i < $min) {
|
||||||
{
|
|
||||||
$obj = $this->db->fetch_object($result);
|
$obj = $this->db->fetch_object($result);
|
||||||
$user_static = new User($this->db);
|
$user_static = new User($this->db);
|
||||||
if ($user_static->fetch($obj->rowid)) {
|
if ($user_static->fetch($obj->rowid)) {
|
||||||
@ -158,13 +155,11 @@ class Users extends DolibarrApi
|
|||||||
//}
|
//}
|
||||||
|
|
||||||
$result = $this->useraccount->fetch($id);
|
$result = $this->useraccount->fetch($id);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
throw new RestException(404, 'User not found');
|
throw new RestException(404, 'User not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user'))
|
if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user')) {
|
||||||
{
|
|
||||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,13 +189,11 @@ class Users extends DolibarrApi
|
|||||||
//}
|
//}
|
||||||
|
|
||||||
$result = $this->useraccount->fetch('', $login);
|
$result = $this->useraccount->fetch('', $login);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
throw new RestException(404, 'User not found');
|
throw new RestException(404, 'User not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user'))
|
if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user')) {
|
||||||
{
|
|
||||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -230,13 +223,11 @@ class Users extends DolibarrApi
|
|||||||
//}
|
//}
|
||||||
|
|
||||||
$result = $this->useraccount->fetch('', '', '', 0, -1, $email);
|
$result = $this->useraccount->fetch('', '', '', 0, -1, $email);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
throw new RestException(404, 'User not found');
|
throw new RestException(404, 'User not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user'))
|
if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user')) {
|
||||||
{
|
|
||||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -301,8 +292,7 @@ class Users extends DolibarrApi
|
|||||||
if (!isset($request_data["lastname"]))
|
if (!isset($request_data["lastname"]))
|
||||||
throw new RestException(400, "lastname field missing");*/
|
throw new RestException(400, "lastname field missing");*/
|
||||||
//assign field values
|
//assign field values
|
||||||
foreach ($request_data as $field => $value)
|
foreach ($request_data as $field => $value) {
|
||||||
{
|
|
||||||
$this->useraccount->$field = $value;
|
$this->useraccount->$field = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -329,13 +319,11 @@ class Users extends DolibarrApi
|
|||||||
//}
|
//}
|
||||||
|
|
||||||
$result = $this->useraccount->fetch($id);
|
$result = $this->useraccount->fetch($id);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
throw new RestException(404, 'Account not found');
|
throw new RestException(404, 'Account not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user'))
|
if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user')) {
|
||||||
{
|
|
||||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -356,8 +344,7 @@ class Users extends DolibarrApi
|
|||||||
|
|
||||||
// If there is no error, update() returns the number of affected
|
// If there is no error, update() returns the number of affected
|
||||||
// rows so if the update is a no op, the return value is zezo.
|
// rows so if the update is a no op, the return value is zezo.
|
||||||
if ($this->useraccount->update(DolibarrApiAccess::$user) >= 0)
|
if ($this->useraccount->update(DolibarrApiAccess::$user) >= 0) {
|
||||||
{
|
|
||||||
return $this->get($id);
|
return $this->get($id);
|
||||||
} else {
|
} else {
|
||||||
throw new RestException(500, $this->useraccount->error);
|
throw new RestException(500, $this->useraccount->error);
|
||||||
@ -419,18 +406,15 @@ class Users extends DolibarrApi
|
|||||||
//throw new RestException(401);
|
//throw new RestException(401);
|
||||||
//}
|
//}
|
||||||
$result = $this->useraccount->fetch($id);
|
$result = $this->useraccount->fetch($id);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
throw new RestException(404, 'User not found');
|
throw new RestException(404, 'User not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user'))
|
if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user')) {
|
||||||
{
|
|
||||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($conf->multicompany->enabled) && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE) && !empty(DolibarrApiAccess::$user->admin) && empty(DolibarrApiAccess::$user->entity))
|
if (!empty($conf->multicompany->enabled) && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE) && !empty(DolibarrApiAccess::$user->admin) && empty(DolibarrApiAccess::$user->entity)) {
|
||||||
{
|
|
||||||
$entity = (!empty($entity) ? $entity : $conf->entity);
|
$entity = (!empty($entity) ? $entity : $conf->entity);
|
||||||
} else {
|
} else {
|
||||||
// When using API, action is done on entity of logged user because a user of entity X with permission to create user should not be able to
|
// When using API, action is done on entity of logged user because a user of entity X with permission to create user should not be able to
|
||||||
@ -439,8 +423,7 @@ class Users extends DolibarrApi
|
|||||||
}
|
}
|
||||||
|
|
||||||
$result = $this->useraccount->SetInGroup($group, $entity);
|
$result = $this->useraccount->SetInGroup($group, $entity);
|
||||||
if (!($result > 0))
|
if (!($result > 0)) {
|
||||||
{
|
|
||||||
throw new RestException(500, $this->useraccount->error);
|
throw new RestException(500, $this->useraccount->error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -480,10 +463,8 @@ class Users extends DolibarrApi
|
|||||||
$sql .= ' WHERE t.entity IN ('.getEntity('user').')';
|
$sql .= ' WHERE t.entity IN ('.getEntity('user').')';
|
||||||
if ($group_ids) $sql .= " AND t.rowid IN (".$group_ids.")";
|
if ($group_ids) $sql .= " AND t.rowid IN (".$group_ids.")";
|
||||||
// Add sql filters
|
// Add sql filters
|
||||||
if ($sqlfilters)
|
if ($sqlfilters) {
|
||||||
{
|
if (!DolibarrApi::_checkFilters($sqlfilters)) {
|
||||||
if (!DolibarrApi::_checkFilters($sqlfilters))
|
|
||||||
{
|
|
||||||
throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
|
throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
|
||||||
}
|
}
|
||||||
$regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
|
$regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
|
||||||
@ -492,8 +473,7 @@ class Users extends DolibarrApi
|
|||||||
|
|
||||||
$sql .= $this->db->order($sortfield, $sortorder);
|
$sql .= $this->db->order($sortfield, $sortorder);
|
||||||
if ($limit) {
|
if ($limit) {
|
||||||
if ($page < 0)
|
if ($page < 0) {
|
||||||
{
|
|
||||||
$page = 0;
|
$page = 0;
|
||||||
}
|
}
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
@ -548,8 +528,7 @@ class Users extends DolibarrApi
|
|||||||
$group_static = new UserGroup($this->db);
|
$group_static = new UserGroup($this->db);
|
||||||
$result = $group_static->fetch($group, '', $load_members);
|
$result = $group_static->fetch($group, '', $load_members);
|
||||||
|
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
throw new RestException(404, 'Group not found');
|
throw new RestException(404, 'Group not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -568,13 +547,11 @@ class Users extends DolibarrApi
|
|||||||
//throw new RestException(401);
|
//throw new RestException(401);
|
||||||
//}
|
//}
|
||||||
$result = $this->useraccount->fetch($id);
|
$result = $this->useraccount->fetch($id);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
throw new RestException(404, 'User not found');
|
throw new RestException(404, 'User not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user'))
|
if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user')) {
|
||||||
{
|
|
||||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||||
}
|
}
|
||||||
$this->useraccount->oldcopy = clone $this->useraccount;
|
$this->useraccount->oldcopy = clone $this->useraccount;
|
||||||
@ -636,8 +613,7 @@ class Users extends DolibarrApi
|
|||||||
$canreadsalary = ((!empty($conf->salaries->enabled) && !empty(DolibarrApiAccess::$user->rights->salaries->read))
|
$canreadsalary = ((!empty($conf->salaries->enabled) && !empty(DolibarrApiAccess::$user->rights->salaries->read))
|
||||||
|| (!empty($conf->hrm->enabled) && !empty(DolibarrApiAccess::$user->rights->hrm->employee->read)));
|
|| (!empty($conf->hrm->enabled) && !empty(DolibarrApiAccess::$user->rights->hrm->employee->read)));
|
||||||
|
|
||||||
if (!$canreadsalary)
|
if (!$canreadsalary) {
|
||||||
{
|
|
||||||
unset($object->salary);
|
unset($object->salary);
|
||||||
unset($object->salaryextra);
|
unset($object->salaryextra);
|
||||||
unset($object->thm);
|
unset($object->thm);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user