diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php index ede2839aa0908961861122103f874500aa431b23..cba229454e3b344ea466676ffb3d1584cfb97b6f 100644 --- a/htdocs/projet/index.php +++ b/htdocs/projet/index.php @@ -107,7 +107,8 @@ else print "</table>"; print '</td><td width="70%" valign="top" class="notopnoleft">'; - +//$result = $projectstatic->getProjectsAuthorizedForUser($user); +//var_dump($result); print '<table class="noborder" width="100%">'; print '<tr class="liste_titre">'; @@ -122,7 +123,6 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on p.fk_soc = s.rowid"; $sql.= " WHERE p.entity = ".$conf->entity; if ($socid) $sql.= " AND s.rowid = ".$socid; $sql.= " GROUP BY s.nom, s.rowid"; -//$sql .= " ORDER BY $sortfield $sortorder " . $db->plimit($conf->liste_limit, $offset); $var=true; $resql = $db->query($sql); diff --git a/htdocs/projet/project.class.php b/htdocs/projet/project.class.php index 239443d8c2557d30658a405227ce7f703d1fa402..17944f907e513bd9b5dc1d0d90836cd2df5cc876 100644 --- a/htdocs/projet/project.class.php +++ b/htdocs/projet/project.class.php @@ -650,6 +650,51 @@ class Project extends CommonObject return $userAccess; } + + /** + * Return array of projects authorized for a user + * + * @param unknown_type $user + * @return unknown + */ + function getProjectsAuthorizedForUser($user) + { + global $conf; + + $projects = array(); + + $sql = "SELECT DISTINCT p.rowid, p.ref"; + $sql.= " FROM ".MAIN_DB_PREFIX."projet as p"; + $sql.= ", ".MAIN_DB_PREFIX."element_contact as ec"; + $sql.= ", ".MAIN_DB_PREFIX."c_type_contact as ctc"; + $sql.= " WHERE p.entity = ".$conf->entity; + $sql.= " AND ( p.public = 1"; + $sql.= " OR p.fk_user_creat = ".$user->id; + $sql.= " OR ( ec.element_id = p.rowid"; + $sql.= " AND ctc.rowid = ec.fk_c_type_contact"; + $sql.= " AND ctc.element = '".$this->element."'"; + $sql.= " AND ec.fk_socpeople = ".$user->id." ) )"; + + $resql = $this->db->query($sql); + if ($resql) + { + $num = $this->db->num_rows($resql); + $i = 0; + while ($i < $num) + { + $row = $this->db->fetch_row($resql); + $projects[$row[0]] = $row[1]; + $i++; + } + $this->db->free(); + } + else + { + dol_print_error($this->db); + } + + return $projects; + } } ?>