From 071dd8e758d75f01608474be925252e057177755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Tue, 10 Dec 2013 11:33:27 +0100 Subject: [PATCH] Make bookmarks module multicompany aware --- htdocs/bookmarks/bookmarks.lib.php | 1 + htdocs/bookmarks/class/bookmark.class.php | 9 ++++++++- htdocs/bookmarks/liste.php | 1 + htdocs/core/boxes/box_bookmarks.php | 3 ++- htdocs/install/mysql/tables/llx_bookmark.sql | 3 ++- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/htdocs/bookmarks/bookmarks.lib.php b/htdocs/bookmarks/bookmarks.lib.php index d8083eb9fee..872691d4ee1 100644 --- a/htdocs/bookmarks/bookmarks.lib.php +++ b/htdocs/bookmarks/bookmarks.lib.php @@ -67,6 +67,7 @@ function printBookmarksList($aDb, $aLangs) { $sql = "SELECT rowid, title, url, target FROM ".MAIN_DB_PREFIX."bookmark"; $sql.= " WHERE (fk_user = ".$user->id." OR fk_user is NULL OR fk_user = 0)"; + $sql.= " AND entity = ".$conf->entity; $sql.= " ORDER BY position"; if ($resql = $db->query($sql) ) { diff --git a/htdocs/bookmarks/class/bookmark.class.php b/htdocs/bookmarks/class/bookmark.class.php index 088afa10661..c88e2014665 100644 --- a/htdocs/bookmarks/class/bookmark.class.php +++ b/htdocs/bookmarks/class/bookmark.class.php @@ -57,10 +57,13 @@ class Bookmark */ function fetch($id) { + global $conf; + $sql = "SELECT rowid, fk_user, dateb as datec, url, target,"; $sql.= " title, position, favicon"; $sql.= " FROM ".MAIN_DB_PREFIX."bookmark"; $sql.= " WHERE rowid = ".$id; + $sql.= " AND entity = ".$conf->entity; dol_syslog("Bookmark::fetch sql=".$sql, LOG_DEBUG); $resql = $this->db->query($sql); @@ -96,6 +99,8 @@ class Bookmark */ function create() { + global $conf; + // Clean parameters $this->url=trim($this->url); $this->title=trim($this->title); @@ -106,13 +111,15 @@ class Bookmark $this->db->begin(); $sql = "INSERT INTO ".MAIN_DB_PREFIX."bookmark (fk_user,dateb,url,target"; - $sql.= " ,title,favicon,position"; + $sql.= ",title,favicon,position"; + $sql.= ",entity"; if ($this->fk_soc) $sql.=",fk_soc"; $sql.= ") VALUES ("; $sql.= ($this->fk_user > 0?"'".$this->fk_user."'":"0").","; $sql.= " ".$this->db->idate($now).","; $sql.= " '".$this->url."', '".$this->target."',"; $sql.= " '".$this->db->escape($this->title)."', '".$this->favicon."', '".$this->position."'"; + $sql.= ", '".$conf->entity."'"; if ($this->fk_soc) $sql.=",".$this->fk_soc; $sql.= ")"; diff --git a/htdocs/bookmarks/liste.php b/htdocs/bookmarks/liste.php index c322360fb4a..d826c8053d0 100644 --- a/htdocs/bookmarks/liste.php +++ b/htdocs/bookmarks/liste.php @@ -73,6 +73,7 @@ $sql = "SELECT b.fk_soc as rowid, b.dateb, b.rowid as bid, b.fk_user, b.url, b.t $sql.= " u.login, u.lastname, u.firstname"; $sql.= " FROM ".MAIN_DB_PREFIX."bookmark as b LEFT JOIN ".MAIN_DB_PREFIX."user as u ON b.fk_user=u.rowid"; $sql.= " WHERE 1=1"; +$sql.= " AND b.entity = ".$conf->entity; if (! $user->admin) $sql.= " AND (b.fk_user = ".$user->id." OR b.fk_user is NULL OR b.fk_user = 0)"; $sql.= $db->order($sortfield.", position",$sortorder); $sql.= $db->plimit($limit, $offset); diff --git a/htdocs/core/boxes/box_bookmarks.php b/htdocs/core/boxes/box_bookmarks.php index f841786c8b8..4f3726d8946 100644 --- a/htdocs/core/boxes/box_bookmarks.php +++ b/htdocs/core/boxes/box_bookmarks.php @@ -47,7 +47,7 @@ class box_bookmarks extends ModeleBoxes */ function loadBox($max=5) { - global $user, $langs, $db; + global $user, $langs, $db, $conf; $langs->load("boxes"); $this->max=$max; @@ -70,6 +70,7 @@ class box_bookmarks extends ModeleBoxes $sql = "SELECT b.title, b.url, b.target, b.favicon"; $sql.= " FROM ".MAIN_DB_PREFIX."bookmark as b"; $sql.= " WHERE fk_user = ".$user->id; + $sql.= " AND b.entity = ".$conf->entity; $sql.= $db->order("position","ASC"); $sql.= $db->plimit($max, 0); diff --git a/htdocs/install/mysql/tables/llx_bookmark.sql b/htdocs/install/mysql/tables/llx_bookmark.sql index ac5309dde83..00e1627a9b6 100644 --- a/htdocs/install/mysql/tables/llx_bookmark.sql +++ b/htdocs/install/mysql/tables/llx_bookmark.sql @@ -26,5 +26,6 @@ create table llx_bookmark target varchar(16), title varchar(64), favicon varchar(24), - position integer DEFAULT 0 + position integer DEFAULT 0, + entity integer DEFAULT 1 NOT NULL -- multicompany ID )ENGINE=innodb;