Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend
This commit is contained in:
@@ -5,28 +5,28 @@ namespace Espo\Core\Utils;
|
||||
class Config
|
||||
{
|
||||
/**
|
||||
* Path of system config file
|
||||
*
|
||||
* @access private
|
||||
* @var string
|
||||
*/
|
||||
private $systemConfigPath = 'application/Espo/Core/defaults/systemConfig.php';
|
||||
* Path of default config file
|
||||
*
|
||||
* @access private
|
||||
* @var string
|
||||
*/
|
||||
private $defaultConfigPath = 'application/Espo/Core/defaults/config.php';
|
||||
|
||||
/**
|
||||
* Array of admin items
|
||||
*
|
||||
* @access protected
|
||||
* @var array
|
||||
*/
|
||||
protected $adminItems= array();
|
||||
* Array of admin items
|
||||
*
|
||||
* @access protected
|
||||
* @var array
|
||||
*/
|
||||
protected $adminItems = array();
|
||||
|
||||
|
||||
/**
|
||||
* Contains content of system config
|
||||
*
|
||||
* @access private
|
||||
* @var string
|
||||
*/
|
||||
* Contains content of default config
|
||||
*
|
||||
* @access private
|
||||
* @var string
|
||||
*/
|
||||
private $lastConfigObj;
|
||||
|
||||
private $fileManager;
|
||||
@@ -45,17 +45,17 @@ class Config
|
||||
|
||||
|
||||
/**
|
||||
* Get an option from system config
|
||||
*
|
||||
* @param string $name
|
||||
* @return string | array
|
||||
*/
|
||||
* Get an option from config
|
||||
*
|
||||
* @param string $name
|
||||
* @return string | array
|
||||
*/
|
||||
public function get($name)
|
||||
{
|
||||
$keys = explode('.', $name);
|
||||
|
||||
$lastBranch = $this->getConfig();
|
||||
foreach($keys as $keyName) {
|
||||
foreach ($keys as $keyName) {
|
||||
if (isset($lastBranch->$keyName) && is_object($lastBranch)) {
|
||||
$lastBranch = $lastBranch->$keyName;
|
||||
} else {
|
||||
@@ -68,20 +68,20 @@ class Config
|
||||
|
||||
|
||||
/**
|
||||
* Set an option to the system config
|
||||
*
|
||||
* @param string $name
|
||||
* @param string $value
|
||||
* @return bool
|
||||
*/
|
||||
* Set an option to the config
|
||||
*
|
||||
* @param string $name
|
||||
* @param string $value
|
||||
* @return bool
|
||||
*/
|
||||
public function set($name, $value='')
|
||||
{
|
||||
if (Json::isJSON($value)) {
|
||||
$value= Json::decode($value);
|
||||
}
|
||||
|
||||
$content= array($name => $value);
|
||||
$status= $this->getFileManager()->mergeContentPHP($content, $this->get('configPath'), '', true);
|
||||
$content = array($name => $value);
|
||||
$status = $this->getFileManager()->mergeContentPHP($content, $this->get('configPath'), '', true);
|
||||
$this->getConfig(true);
|
||||
|
||||
return $status;
|
||||
@@ -89,63 +89,63 @@ class Config
|
||||
|
||||
|
||||
/**
|
||||
* Set options from array
|
||||
*
|
||||
* @param array $values
|
||||
* @return bool
|
||||
*/
|
||||
* Set options from array
|
||||
*
|
||||
* @param array $values
|
||||
* @return bool
|
||||
*/
|
||||
public function setArray($values)
|
||||
{
|
||||
if (Json::isJSON($values)) {
|
||||
$values= Json::decode($values);
|
||||
$values = Json::decode($values);
|
||||
}
|
||||
|
||||
if (!is_array($values)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$status= $this->getFileManager()->mergeContentPHP($values, $this->get('configPath'), '', true);
|
||||
$status = $this->getFileManager()->mergeContentPHP($values, $this->get('configPath'), '', true);
|
||||
$this->getConfig(true);
|
||||
|
||||
return $status;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an Object of all configs
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
* Return an Object of all configs
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
function getConfig($reload=false)
|
||||
{
|
||||
if (!$reload && isset($this->lastConfigObj) && !empty($this->lastConfigObj)) {
|
||||
return $this->lastConfigObj;
|
||||
}
|
||||
|
||||
$systemConfig= $this->getFileManager()->getContent($this->systemConfigPath);
|
||||
$defaultConfig = $this->getFileManager()->getContent($this->defaultConfigPath);
|
||||
|
||||
$config= $this->getFileManager()->getContent($systemConfig['configPath']);
|
||||
$config = $this->getFileManager()->getContent($defaultConfig['configPath']);
|
||||
if (empty($config)) {
|
||||
$GLOBALS['log']->add('FATAL', 'Check syntax or permission of your '.$systemConfig['configPath']);
|
||||
$GLOBALS['log']->add('FATAL', 'Check syntax or permission of your '.$defaultConfig['configPath']);
|
||||
}
|
||||
|
||||
$this->lastConfigObj = Util::arrayToObject( Util::merge((array) $systemConfig, (array) $config) );
|
||||
$this->adminItems= $this->getRestrictItems();
|
||||
$this->lastConfigObj = Util::arrayToObject( Util::merge((array) $defaultConfig, (array) $config) );
|
||||
$this->adminItems = $this->getRestrictItems();
|
||||
|
||||
return $this->lastConfigObj;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get JSON config acording to restrictions for a user
|
||||
*
|
||||
* @param $isAdmin
|
||||
* @return object
|
||||
*/
|
||||
* Get JSON config acording to restrictions for a user
|
||||
*
|
||||
* @param $isAdmin
|
||||
* @return object
|
||||
*/
|
||||
public function getData($isAdmin=false, $encode=true)
|
||||
{
|
||||
$configObj = $this->getConfig();
|
||||
|
||||
$restrictedConfig= $configObj;
|
||||
$restrictedConfig = $configObj;
|
||||
foreach($this->getRestrictItems($isAdmin) as $name) {
|
||||
if (isset($restrictedConfig->$name)) {
|
||||
unset($restrictedConfig->$name);
|
||||
@@ -161,16 +161,16 @@ class Config
|
||||
|
||||
|
||||
/**
|
||||
* Set JSON data acording to restrictions for a user
|
||||
*
|
||||
* @param $isAdmin
|
||||
* @return bool
|
||||
*/
|
||||
* Set JSON data acording to restrictions for a user
|
||||
*
|
||||
* @param $isAdmin
|
||||
* @return bool
|
||||
*/
|
||||
//HERE
|
||||
public function setData($data, $isAdmin=false)
|
||||
{
|
||||
|
||||
$restrictItems= $this->getRestrictItems($isAdmin);
|
||||
$restrictItems = $this->getRestrictItems($isAdmin);
|
||||
|
||||
$values= array();
|
||||
foreach($data as $key => $item) {
|
||||
@@ -183,11 +183,11 @@ class Config
|
||||
}
|
||||
|
||||
/**
|
||||
* Get admin items
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
protected function getRestrictItems($onlySystemItems=false)
|
||||
* Get admin items
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
protected function getRestrictItems($onlySystemItems = false)
|
||||
{
|
||||
if ($onlySystemItems) {
|
||||
return ((array) $this->getConfig()->systemItems);
|
||||
@@ -202,12 +202,12 @@ class Config
|
||||
|
||||
|
||||
/**
|
||||
* Check if an item is allowed to get and save
|
||||
*
|
||||
* @param $name
|
||||
* @param $isAdmin
|
||||
* @return bool
|
||||
*/
|
||||
* Check if an item is allowed to get and save
|
||||
*
|
||||
* @param $name
|
||||
* @param $isAdmin
|
||||
* @return bool
|
||||
*/
|
||||
protected function isAllowed($name, $isAdmin=false)
|
||||
{
|
||||
if (in_array($name, $this->getRestrictItems($isAdmin))) {
|
||||
|
||||
Reference in New Issue
Block a user