FIX menu force entity = 0 if core module
This commit is contained in:
parent
dc144baa68
commit
898a4bad15
@ -49,6 +49,11 @@ class Menubase
|
|||||||
*/
|
*/
|
||||||
public $id;
|
public $id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var int Entity
|
||||||
|
*/
|
||||||
|
public $entity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string Menu handler
|
* @var string Menu handler
|
||||||
*/
|
*/
|
||||||
@ -185,6 +190,7 @@ class Menubase
|
|||||||
if (!isset($this->enabled)) {
|
if (!isset($this->enabled)) {
|
||||||
$this->enabled = '1';
|
$this->enabled = '1';
|
||||||
}
|
}
|
||||||
|
$this->entity = (isset($this->entity) ? (int) $this->entity : $conf->entity);
|
||||||
$this->menu_handler = trim((string) $this->menu_handler);
|
$this->menu_handler = trim((string) $this->menu_handler);
|
||||||
$this->module = trim((string) $this->module);
|
$this->module = trim((string) $this->module);
|
||||||
$this->type = trim((string) $this->type);
|
$this->type = trim((string) $this->type);
|
||||||
@ -246,7 +252,7 @@ class Menubase
|
|||||||
$sql .= " AND fk_menu = ".((int) $this->fk_menu);
|
$sql .= " AND fk_menu = ".((int) $this->fk_menu);
|
||||||
$sql .= " AND position = ".((int) $this->position);
|
$sql .= " AND position = ".((int) $this->position);
|
||||||
$sql .= " AND url = '".$this->db->escape($this->url)."'";
|
$sql .= " AND url = '".$this->db->escape($this->url)."'";
|
||||||
$sql .= " AND entity = ".$conf->entity;
|
$sql .= " AND entity IN (0, ".$conf->entity.")";
|
||||||
|
|
||||||
$result = $this->db->query($sql);
|
$result = $this->db->query($sql);
|
||||||
if ($result) {
|
if ($result) {
|
||||||
@ -275,7 +281,7 @@ class Menubase
|
|||||||
$sql .= "usertype";
|
$sql .= "usertype";
|
||||||
$sql .= ") VALUES (";
|
$sql .= ") VALUES (";
|
||||||
$sql .= " '".$this->db->escape($this->menu_handler)."',";
|
$sql .= " '".$this->db->escape($this->menu_handler)."',";
|
||||||
$sql .= " '".$this->db->escape($conf->entity)."',";
|
$sql .= " '".$this->db->escape($this->entity)."',";
|
||||||
$sql .= " '".$this->db->escape($this->module)."',";
|
$sql .= " '".$this->db->escape($this->module)."',";
|
||||||
$sql .= " '".$this->db->escape($this->type)."',";
|
$sql .= " '".$this->db->escape($this->type)."',";
|
||||||
$sql .= " ".($this->mainmenu ? "'".$this->db->escape($this->mainmenu)."'" : "''").","; // Can't be null
|
$sql .= " ".($this->mainmenu ? "'".$this->db->escape($this->mainmenu)."'" : "''").","; // Can't be null
|
||||||
|
|||||||
@ -1986,7 +1986,7 @@ class DolibarrModules // Can not be abstract, because we need to instantiate it
|
|||||||
public function insert_menus()
|
public function insert_menus()
|
||||||
{
|
{
|
||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
global $user;
|
global $conf, $user;
|
||||||
|
|
||||||
if (!is_array($this->menu) || empty($this->menu)) {
|
if (!is_array($this->menu) || empty($this->menu)) {
|
||||||
return 0;
|
return 0;
|
||||||
@ -1998,6 +1998,9 @@ class DolibarrModules // Can not be abstract, because we need to instantiate it
|
|||||||
|
|
||||||
$err = 0;
|
$err = 0;
|
||||||
|
|
||||||
|
// Common module
|
||||||
|
$entity = ((!empty($this->always_enabled) || !empty($this->core_enabled)) ? 0 : $conf->entity);
|
||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
foreach ($this->menu as $key => $value) {
|
foreach ($this->menu as $key => $value) {
|
||||||
@ -2049,6 +2052,7 @@ class DolibarrModules // Can not be abstract, because we need to instantiate it
|
|||||||
$menu->user = $this->menu[$key]['user'];
|
$menu->user = $this->menu[$key]['user'];
|
||||||
$menu->enabled = isset($this->menu[$key]['enabled']) ? $this->menu[$key]['enabled'] : 0;
|
$menu->enabled = isset($this->menu[$key]['enabled']) ? $this->menu[$key]['enabled'] : 0;
|
||||||
$menu->position = $this->menu[$key]['position'];
|
$menu->position = $this->menu[$key]['position'];
|
||||||
|
$menu->entity = $entity;
|
||||||
|
|
||||||
if (!$err) {
|
if (!$err) {
|
||||||
$result = $menu->create($user); // Save menu entry into table llx_menu
|
$result = $menu->create($user); // Save menu entry into table llx_menu
|
||||||
@ -2092,7 +2096,7 @@ class DolibarrModules // Can not be abstract, because we need to instantiate it
|
|||||||
|
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu";
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu";
|
||||||
$sql .= " WHERE module = '".$this->db->escape($module)."'";
|
$sql .= " WHERE module = '".$this->db->escape($module)."'";
|
||||||
$sql .= " AND entity = ".$conf->entity;
|
$sql .= " AND entity IN (0, ".$conf->entity.")";
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::delete_menus", LOG_DEBUG);
|
dol_syslog(get_class($this)."::delete_menus", LOG_DEBUG);
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user